Faxtomail-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
March 2014
- 2 participants
- 12 discussions
12 Mar '14
Author: kmorin
Date: 2014-03-12 19:14:43 +0100 (Wed, 12 Mar 2014)
New Revision: 18
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/18
Log:
refs #4654 [ECRAN] Liste des mails / fax
refs #4655 [ECRAN] D?\195?\169tail d'un mail / fax
Modified:
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIModel.java
trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties
trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -14,12 +14,15 @@
import com.franciaflex.faxtomail.services.FaxToMailServiceSupport;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.topia.persistence.TopiaEntityVisitor;
import org.nuiton.topia.persistence.pager.TopiaPagerBean;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -29,6 +32,10 @@
private static final Log log = LogFactory.getLog(EmailService.class);
+ public Email getEmailById(String id) {
+ return getPersistenceContext().getEmailDao().findByTopiaId(id);
+ }
+
public Email saveEmail(Email email, FaxToMailUser user) {
Date now = getNow();
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
@@ -77,9 +84,10 @@
public List<Email> getEmailForFolder(MailFolder folder) {
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
- return new ArrayList<>(dao.forMailFolderEquals(folder)
+ List<Email> result = new ArrayList<>(dao.forMailFolderEquals(folder)
.setOrderByArguments(Email.PROPERTY_RECEPTION_DATE)
.findAll());
+ return result;
}
public List<Email> getEmailForFolderAndSubfolders(MailFolder folder) {
@@ -100,7 +108,10 @@
return folders;
}
- public Email addToOpeningHistory(Email email, FaxToMailUser user, Date date) {
+ public Email addToOpeningHistory(String emailId, FaxToMailUser user, Date date) {
+ EmailTopiaDao emailDao = getPersistenceContext().getEmailDao();
+ Email email = emailDao.findByTopiaId(emailId);
+
HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao();
History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.OPENING,
History.PROPERTY_FAX_TO_MAIL_USER, user,
@@ -112,14 +123,15 @@
email.setTakenBy(user);
}
- EmailTopiaDao emailDao = getPersistenceContext().getEmailDao();
email = emailDao.update(email);
getPersistenceContext().commit();
return email;
}
- public Email takeEmail(Email email, FaxToMailUser user) {
+ public Email takeEmail(String emailId, FaxToMailUser user) {
+ EmailTopiaDao emailDao = getPersistenceContext().getEmailDao();
+ Email email = emailDao.findByTopiaId(emailId);
email.setTakenBy(user);
HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao();
@@ -128,7 +140,6 @@
History.PROPERTY_MODIFICATION_DATE, new Date());
email.addHistory(history);
- EmailTopiaDao emailDao = getPersistenceContext().getEmailDao();
email = emailDao.update(email);
getPersistenceContext().commit();
return email;
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -353,7 +353,7 @@
if (opened) {
- getEmailService().addToOpeningHistory(email, user, now);
+ getEmailService().addToOpeningHistory(email.getTopiaId(), user, now);
email.setDemandType(types.get(random.nextInt(types.size())));
email.setPriority(priorities.get(random.nextInt(priorities.size())));
email.setRangeRow(rangeRows);
@@ -379,7 +379,7 @@
if (opened) {
- getEmailService().addToOpeningHistory(email, user, now);
+ getEmailService().addToOpeningHistory(email.getTopiaId(), user, now);
email.setDemandType(types.get(random.nextInt(types.size())));
email.setPriority(priorities.get(random.nextInt(priorities.size())));
email.setRangeRow(rangeRows);
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/FaxToMailUIContext.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -39,6 +39,7 @@
import com.franciaflex.faxtomail.services.service.ReferentielService;
import com.franciaflex.faxtomail.services.service.UserService;
import com.franciaflex.faxtomail.ui.swing.content.MainUI;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.UIMessageNotifier;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
@@ -215,7 +216,7 @@
protected MailFolder currentMailFolder;
- protected Email currentEmail;
+ protected DemandeUIModel currentEmail;
protected List<MailFolder> expandedFolders = new ArrayList<MailFolder>();
@@ -700,11 +701,11 @@
this.currentMailFolder = currentMailFolder;
}
- public Email getCurrentEmail() {
+ public DemandeUIModel getCurrentEmail() {
return currentEmail;
}
- public void setCurrentEmail(Email currentEmail) {
+ public void setCurrentEmail(DemandeUIModel currentEmail) {
this.currentEmail = currentEmail;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -4,6 +4,7 @@
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen;
+import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext;
import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUI;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler;
@@ -28,22 +29,30 @@
@Override
public void doAction() throws Exception {
+ DemandeUIModel model = getModel();
+ FaxToMailUIContext context = getContext();
+
+ Email persistedEmail = context.getEmailService().getEmailById(model.getTopiaId());
+
RangeTableModel rtm = (RangeTableModel) getUI().getRangeTable().getModel();
List<RangeRowModel> rows = rtm.getRows();
- Map<String, RangeRow> rangeRowsById = Maps.uniqueIndex(getModel().getRangeRow(), TopiaEntities.getTopiaIdFunction());
+ Map<String, RangeRow> rangeRowsById = Maps.uniqueIndex(model.getRangeRow(), TopiaEntities.getTopiaIdFunction());
+
for (RangeRowModel rangeRowModel : rows) {
- RangeRow rangeRow = rangeRowsById.get(rangeRowModel.getTopiaId());
- if (rangeRow == null) {
- getModel().addRangeRow(rangeRowModel.toEntity());
- } else {
- rangeRowModel.toEntity(rangeRow);
+ if (rangeRowModel.isValid()) {
+ RangeRow rangeRow = rangeRowsById.get(rangeRowModel.getTopiaId());
+ if (rangeRow == null) {
+ model.addRangeRow(rangeRowModel.toEntity());
+ } else {
+ rangeRowModel.toEntity(rangeRow);
+ }
}
}
- FaxToMailUser currentUser = getContext().getCurrentUser();
- Email currentEmail = getContext().getCurrentEmail();
- Email email = getModel().toEntity(currentEmail);
- getContext().getEmailService().saveEmail(email, currentUser);
+ FaxToMailUser currentUser = context.getCurrentUser();
+ Email email = model.toEntity(persistedEmail);
+
+ context.getEmailService().saveEmail(email, currentUser);
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SearchAction.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -1,10 +1,12 @@
package com.franciaflex.faxtomail.ui.swing.actions;
import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.content.search.SearchUI;
import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.search.SearchUIModel;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -21,7 +23,13 @@
@Override
public void doAction() throws Exception {
Email email = getModel().toEntity();
- List<Email> result = getContext().getEmailService().search(email);
+ List<Email> emails = getContext().getEmailService().search(email);
+ List<DemandeUIModel> result = new ArrayList<>();
+ for (Email mail : emails) {
+ DemandeUIModel demand = new DemandeUIModel();
+ demand.fromEntity(email);
+ result.add(demand);
+ }
getModel().setResults(result);
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -26,6 +26,7 @@
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen;
import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
import javax.swing.*;
@@ -51,13 +52,11 @@
public void postSuccessAction() {
super.postSuccessAction();
- Email currentEmail = getContext().getCurrentEmail();
+ DemandeUIModel currentEmail = getContext().getCurrentEmail();
FaxToMailUser takenBy = currentEmail.getTakenBy();
FaxToMailUser currentUser = getContext().getCurrentUser();
if (takenBy != null && !currentUser.equals(takenBy)) {
-// displayWarningMessage(t("faxtomail.alert.alreadyTakenBy.title"),
-// t("faxtomail.alert.alreadyTakenBy.message", decorate(takenBy)));
String htmlMessage = String.format(
AbstractApplicationUIHandler.CONFIRMATION_FORMAT,
t("faxtomail.alert.alreadyTakenBy.message", decorate(takenBy)),
@@ -79,7 +78,7 @@
break;
case JOptionPane.YES_OPTION:
- getContext().getEmailService().takeEmail(currentEmail, currentUser);
+ getContext().getEmailService().takeEmail(currentEmail.getTopiaId(), currentUser);
// TODO kmorin 201410305 how to update on screen
break;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUIHandler.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -29,6 +29,7 @@
import com.franciaflex.faxtomail.ui.swing.content.config.FaxToMailConfigUI;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUI;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUI;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.content.search.SearchUI;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
import com.franciaflex.faxtomail.ui.swing.util.CloseableUI;
@@ -338,7 +339,7 @@
case DEMANDE:
screenUI = new DemandeUI(ui);
- Email currentEmail = getContext().getCurrentEmail();
+ DemandeUIModel currentEmail = getContext().getCurrentEmail();
screenTitle = currentEmail.getObject();
icon = JAXXWidgetUtil.createActionIcon("email");
rightDecoration = ((DemandeUI) screenUI).getTopToolBar();
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-03-12 18:14:43 UTC (rev 18)
@@ -84,18 +84,17 @@
actionIcon: reply;
text: "faxtomail.demandeList.action.reply";
toolTipText: "faxtomail.demandeList.action.reply.tip";
- enabled: {model.isReplyEnabled()};
+ enabled: { model.isReplyEnabled() };
}
#addAttachmentMenu {
actionIcon: attachment;
text: "faxtomail.demandeList.action.attachment";
toolTipText: "faxtomail.demandeList.action.attachment.tip";
- enabled: {model.isAddAttachmentEnabled()};
+ enabled: { model.isAddAttachmentEnabled() };
}
#archiveMenu {
text: "faxtomail.demandeList.action.archive";
toolTipText: "faxtomail.demandeList.action.archive.tip";
- enabled: {model.isArchiveEnabled()};
}
\ No newline at end of file
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -103,7 +103,13 @@
MailFolder folder = (MailFolder) evt.getNewValue();
List<Email> emails = getContext().getEmailService().getEmailForFolder(folder);
log.info(emails.size() + " emails in folder " + folder.getName());
- model.setEmails(emails);
+ List<DemandeUIModel> demands = new ArrayList<DemandeUIModel>();
+ for (Email email : emails) {
+ DemandeUIModel demand = new DemandeUIModel();
+ demand.fromEntity(email);
+ demands.add(demand);
+ }
+ model.setEmails(demands);
}
});
@@ -117,18 +123,24 @@
// init table
final JXTable dataTable = getUI().getDataTable();
- final AbstractApplicationTableModel<Email> tableModel = initDemandeTable(dataTable);
+ final AbstractApplicationTableModel<DemandeUIModel> tableModel = initDemandeTable(dataTable);
getModel().addPropertyChangeListener(DemandeListUIModel.PROPERTY_EMAILS, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- List<Email> emails = (List<Email>) evt.getNewValue();
+ List<DemandeUIModel> emails = (List<DemandeUIModel>) evt.getNewValue();
tableModel.setRows(emails);
- int[] quantities = FaxToMailUIUtil.computeQuantities(emails);
+ int pfNb = 0;
+ int savNb = 0;
+ for (DemandeUIModel email : emails) {
+ pfNb += email.getPfNb();
+ savNb += email.getSavNb();
+ }
- getModel().setPfNb(quantities[0]);
- getModel().setSavNb(quantities[1]);
+ DemandeListUIModel model = getModel();
+ model.setPfNb(pfNb);
+ model.setSavNb(savNb);
}
});
@@ -144,7 +156,7 @@
getModel().setSelectedFolder(folder);
getContext().setCurrentMailFolder(folder);
- Email currentEmail = getContext().getCurrentEmail();
+ DemandeUIModel currentEmail = getContext().getCurrentEmail();
if (currentEmail != null) {
int row = tableModel.getRowIndex(currentEmail);
if (row > 0) {
@@ -155,7 +167,7 @@
});
MailFolder currentMailFolder = getContext().getCurrentMailFolder();
- Email currentEmail = getContext().getCurrentEmail();
+ DemandeUIModel currentEmail = getContext().getCurrentEmail();
if (currentMailFolder == null && currentEmail != null) {
currentMailFolder = currentEmail.getMailFolder();
@@ -218,10 +230,34 @@
super.beforeOpenPopup(rowIndex, columnIndex);
int selectedRowCount = getUI().getDataTable().getSelectedRowCount();
- getModel().setAddAttachmentEnabled(selectedRowCount == 1);
- getModel().setReplyEnabled(selectedRowCount == 1);
+ log.info(selectedRowCount == 1);
+
+ DemandeListUIModel model = getModel();
+ model.setAddAttachmentEnabled(selectedRowCount == 1);
+ model.setReplyEnabled(selectedRowCount == 1);
}
+ @Override
+ public void autoSelectRowInTable(MouseEvent e, JPopupMenu popup) {
+ boolean rightClick = SwingUtilities.isRightMouseButton(e);
+ if (rightClick) {
+ // get the coordinates of the mouse click
+ Point p = e.getPoint();
+
+ JXTable source = (JXTable) e.getSource();
+
+ int[] selectedRows = source.getSelectedRows();
+
+ // get the row index at this point
+ int rowIndex = source.rowAtPoint(p);
+ if (rowIndex == -1 || !ArrayUtils.contains(selectedRows, rowIndex)) {
+ source.clearSelection();
+ }
+ }
+
+ super.autoSelectRowInTable(e, popup);
+ }
+
public void autoSelectNodeInTree(MouseEvent e, JPopupMenu popup) {
boolean rightClick = SwingUtilities.isRightMouseButton(e);
@@ -239,7 +275,7 @@
// select row (could empty selection)
if (rowIndex == -1) {
- source.clearSelection();
+ source.clearSelection();
} else {
// set selection
source.setSelectionRow(rowIndex);
@@ -260,23 +296,24 @@
FaxToMailUser currentUser = getContext().getCurrentUser();
Date now = new Date();
- Email email = new EmailImpl();
-
+ List<History> histories = new ArrayList<History>();
+ DemandeUIModel email = new DemandeUIModel();
History history = new HistoryImpl();
history.setFaxToMailUser(currentUser);
history.setType(HistoryType.CREATION);
history.setModificationDate(now);
- email.addHistory(history);
+ histories.add(history);
history = new HistoryImpl();
history.setFaxToMailUser(currentUser);
history.setType(HistoryType.OPENING);
history.setModificationDate(now);
- email.addHistory(history);
+ histories.add(history);
email.setMailFolder(getModel().getSelectedFolder());
email.setReceptionDate(now);
email.setTakenBy(currentUser);
+ email.setHistory(histories);
openDemand(email);
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -41,10 +41,12 @@
public static final String PROPERTY_SELECTED_FOLDER = "selectedFolder";
public static final String PROPERTY_PF_NB = "pfNb";
public static final String PROPERTY_SAV_NB = "savNb";
+ public static final String PROPERTY_REPLY_ENABLED = "replyEnabled";
+ public static final String PROPERTY_ADD_ATTACHMENT_ENABLED = "addAttachmentEnabled";
protected List<MailFolder> folders;
- protected List<Email> emails;
+ protected List<DemandeUIModel> emails;
protected MailFolder selectedFolder;
@@ -52,8 +54,6 @@
protected boolean addAttachmentEnabled;
- protected boolean archiveEnabled;
-
protected int pfNb;
protected int savNb;
@@ -68,11 +68,11 @@
firePropertyChange(PROPERTY_FOLDERS, oldValue, folders);
}
- public List<Email> getEmails() {
+ public List<DemandeUIModel> getEmails() {
return emails;
}
- public void setEmails(List<Email> emails) {
+ public void setEmails(List<DemandeUIModel> emails) {
Object oldValue = getEmailNb();
this.emails = emails;
Object newValue = getEmailNb();
@@ -84,9 +84,9 @@
return emails == null ? 0 : emails.size();
}
- public void addEmail(Email email) {
+ public void addEmail(DemandeUIModel email) {
if (emails == null) {
- emails = new ArrayList<Email>();
+ emails = new ArrayList<DemandeUIModel>();
}
Object oldValue = getEmailNb();
emails.add(email);
@@ -110,7 +110,9 @@
}
public void setReplyEnabled(boolean replyEnabled) {
+ Object oldValue = isReplyEnabled();
this.replyEnabled = replyEnabled;
+ firePropertyChange(PROPERTY_REPLY_ENABLED, oldValue, replyEnabled);
}
public boolean isAddAttachmentEnabled() {
@@ -118,17 +120,11 @@
}
public void setAddAttachmentEnabled(boolean addAttachmentEnabled) {
+ Object oldValue = isAddAttachmentEnabled();
this.addAttachmentEnabled = addAttachmentEnabled;
+ firePropertyChange(PROPERTY_ADD_ATTACHMENT_ENABLED, oldValue, addAttachmentEnabled);
}
- public boolean isArchiveEnabled() {
- return archiveEnabled;
- }
-
- public void setArchiveEnabled(boolean archiveEnabled) {
- this.archiveEnabled = archiveEnabled;
- }
-
public int getPfNb() {
return pfNb;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-03-12 18:14:43 UTC (rev 18)
@@ -138,6 +138,10 @@
verticalAlignment: { SwingConstants.TOP };
}
+#mailBodyField {
+ editable: false;
+}
+
#takenByLabel {
text: "faxtomail.demande.takenBy.label";
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -37,8 +37,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.decorator.ColorHighlighter;
+import org.jdesktop.swingx.decorator.ComponentAdapter;
+import org.jdesktop.swingx.decorator.HighlightPredicate;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.jdesktop.swingx.table.TableColumnModelExt;
+import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import org.nuiton.jaxx.application.swing.table.MoveToNextEditableCellAction;
import org.nuiton.jaxx.application.swing.table.MoveToNextEditableRowAction;
import org.nuiton.jaxx.application.swing.table.MoveToPreviousEditableCellAction;
@@ -51,7 +55,17 @@
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableCellEditor;
-import java.awt.Dimension;
+import javax.swing.text.AbstractDocument;
+import javax.swing.text.AttributeSet;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Element;
+import javax.swing.text.LabelView;
+import javax.swing.text.StyleConstants;
+import javax.swing.text.View;
+import javax.swing.text.ViewFactory;
+import javax.swing.text.html.HTML;
+import javax.swing.text.html.HTMLEditorKit;
+import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeEvent;
@@ -59,6 +73,8 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import static org.nuiton.i18n.I18n.t;
@@ -85,8 +101,7 @@
super.beforeInit(ui);
- DemandeUIModel model = new DemandeUIModel();
- model.fromBean(getContext().getCurrentEmail());
+ DemandeUIModel model = getContext().getCurrentEmail();
listModelIsModify(model);
this.ui.setContextValue(model);
@@ -104,22 +119,26 @@
initBeanFilterableComboBox(ui.getPriorityComboBox(), referentielService.getAllPriority(), model.getPriority());
initBeanFilterableComboBox(ui.getEtatAttenteComboBox(), referentielService.getAllEtatAttente(), model.getEtatAttente());
-// HTMLEditorPane editor = ui.getMessageField();
-// HTMLEditorActionFactory.createFontSizeActionList();
-// HTMLEditorActionFactory.createInlineActionList();
-// HTMLEditorActionFactory.createBlockElementActionList();
+ JEditorPane editor = ui.getMailBodyField();
+ HTMLEditorKit htmlEditorKit = new HTMLEditorKit();
+ editor.setEditorKit(htmlEditorKit);
+// create some simple html as a string
+ String htmlString = "<html>\n"
+ + "<body>\n"
+ + "<script>document.getElementById('test').innerHTML = 'chaussette'</script>"
+ + "<h1 id='test'>Welcome!</h1>\n"
+ + "<h2>This is an H2 header</h2><br/>"
+ + "<p>This is some sample text</p>\n"
+ + "<p><a href=\"http://devdaily.com/blog/\">devdaily blog</a></p>\n"
+ + "<p><img src=\"http://jarnal.wikispaces.com/space/showlogo/1301230030/logo.png\"/></p>\n"
+ + "<p><test>ouaf ! une chaussette :P</test></p>\n"
+ + "</body>\n";
- // create some simple html as a string
-// String htmlString = "<html>\n"
-// + "<body>\n"
-// + "<h1>Welcome!</h1>\n"
-// + "<h2>This is an H2 header</h2>\n"
-// + "<p>This is some sample text</p>\n"
-// + "<p><a href=\"http://devdaily.com/blog/\">devdaily blog</a></p>\n"
-// + "</body>\n";
+ htmlString = htmlString.replaceAll("<img src=\"(.*?)\"(/>|>.*?</img>)", "[image : $1]");
+ htmlString = htmlString.replaceAll("<a href=\"(.*?)\">(.*?)</a>", "[$2 : $1]");
- // create a document, set it on the jeditorpane, then add the html
-// editor.setText(htmlString);
+// create a document, set it on the jeditorpane, then add the html
+ editor.setText(htmlString);
// init table
final JXTable table = ui.getRangeTable();
@@ -140,11 +159,13 @@
null,
table);
+ // init range model
final RangeTableModel rangeTableModel = new RangeTableModel(columnModel);
List<RangeRowModel> rangeRowModels = new ArrayList<RangeRowModel>();
for (RangeRow rangeRow : model.getRangeRow()) {
RangeRowModel rangeRowModel = new RangeRowModel();
rangeRowModel.fromEntity(rangeRow);
+ rangeRowModel.setValid(isRangeRowValid(rangeRowModel));
rangeRowModels.add(rangeRowModel);
}
rangeTableModel.setRows(rangeRowModels);
@@ -153,14 +174,19 @@
model.setPfNb(quantities[0]);
model.setSavNb(quantities[1]);
+ // add listener to update row validity and quantity totals
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
protected PropertyChangeListener listener = new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
+
+ RangeRowModel row = (RangeRowModel) evt.getSource();
+ row.setValid(isRangeRowValid(row));
+
String propertyName = evt.getPropertyName();
- log.info(propertyName);
- if (RangeRow.PROPERTY_PRODUCT_QUANTITY.equals(propertyName)
+ if (RangeRowModel.PROPERTY_VALID.equals(propertyName)
+ || RangeRow.PROPERTY_PRODUCT_QUANTITY.equals(propertyName)
|| RangeRow.PROPERTY_SAV_QUANTITY.equals(propertyName)) {
List<RangeRowModel> rangeRows = rangeTableModel.getRows();
@@ -169,6 +195,7 @@
model.setPfNb(quantities[0]);
model.setSavNb(quantities[1]);
}
+
}
};
@@ -248,6 +275,22 @@
};
table.addKeyListener(keyAdapter);
+ HighlightPredicate rowIsInvalidPredicate = new HighlightPredicate() {
+ @Override
+ public boolean isHighlighted(Component renderer, ComponentAdapter adapter) {
+ boolean result = false;
+ if (adapter.isEditable()) {
+ AbstractApplicationTableModel model = (AbstractApplicationTableModel) table.getModel();
+ int viewRow = adapter.row;
+ int modelRow = adapter.convertRowIndexToModel(viewRow);
+ RangeRowModel row = (RangeRowModel) model.getEntry(modelRow);
+ result = !row.isValid();
+ }
+ return result;
+ }
+ };
+ Color color = new Color(255, 51, 51);
+ table.addHighlighter(new ColorHighlighter(rowIsInvalidPredicate, color, null, color.darker(), null));
SwingValidator validator = this.ui.getValidator();
listenValidatorValid(validator, model);
@@ -289,6 +332,12 @@
return ui.getValidator();
}
+ protected boolean isRangeRowValid(RangeRowModel rangeRow) {
+ return (rangeRow.getProductQuantity() != null && rangeRow.getProductQuantity() > 0
+ || rangeRow.getSavQuantity() != null && rangeRow.getSavQuantity() > 0)
+ && rangeRow.getRange() != null;
+ }
+
public void transmitDemande() {
MailFolderChooserUI dialogContent = new MailFolderChooserUI(ui);
dialogContent.setModel(getModel());
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -43,6 +43,8 @@
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
@@ -80,15 +82,55 @@
public DemandeUIModel() {
super(fromBeanBinder, toBeanBinder);
+ addPropertyChangeListener(Email.PROPERTY_HISTORY, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ findFirstOpeningHistory();
+ findLastModificationHistory();
+ }
+ });
+
+ addPropertyChangeListener(Email.PROPERTY_RANGE_ROW, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Collection<RangeRow> rangeRows = (Collection<RangeRow>) evt.getNewValue();
+ int pfNb = 0;
+ int savNb = 0;
+ if (rangeRows != null) {
+ for (RangeRow rangeRow : rangeRows) {
+ Integer productQuantity = rangeRow.getProductQuantity();
+ if (productQuantity != null) {
+ pfNb += productQuantity;
+ }
+
+ Integer savQuantity = rangeRow.getSavQuantity();
+ if (savQuantity != null) {
+ savNb += savQuantity;
+ }
+ }
+ }
+ setPfNb(pfNb);
+ setSavNb(savNb);
+ }
+ });
}
- @Override
- public void fromEntity(Email entity) {
- super.fromEntity(entity);
- firstOpeningHistory = null;
- lastModificationHistory = null;
+ public Boolean getFax() {
+ return editObject.getFax();
}
+ public void setFax(Boolean fax) {
+ editObject.setFax(fax);
+ }
+
+ public String getTopiaId() {
+ return editObject.getTopiaId();
+ }
+
+ public void setTopiaId(String id) {
+ editObject.setTopiaId(id);
+ }
+
public void setSender(String sender) {
Object oldValue = getSender();
editObject.setSender(sender);
@@ -259,9 +301,6 @@
}
public History getFirstOpeningHistory() {
- if (firstOpeningHistory == null) {
- findFirstOpeningHistory();
- }
return firstOpeningHistory;
}
@@ -276,9 +315,6 @@
}
public History getLastModificationHistory() {
- if (lastModificationHistory == null) {
- findLastModificationHistory();
- }
return lastModificationHistory;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -41,6 +41,9 @@
}
public void setProductQuantity(Integer productQuantity) {
+ if (productQuantity == null) {
+ productQuantity = 0;
+ }
Object oldValue = getProductQuantity();
editObject.setProductQuantity(productQuantity);
firePropertyChange(RangeRow.PROPERTY_PRODUCT_QUANTITY, oldValue, productQuantity);
@@ -51,6 +54,9 @@
}
public void setSavQuantity(Integer savQuantity) {
+ if (savQuantity == null) {
+ savQuantity = 0;
+ }
Object oldValue = getSavQuantity();
editObject.setSavQuantity(savQuantity);
firePropertyChange(RangeRow.PROPERTY_SAV_QUANTITY, oldValue, savQuantity);
@@ -82,4 +88,5 @@
protected RangeRow newEntity() {
return new RangeRowImpl();
}
+
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -21,22 +21,22 @@
public static final ColumnIdentifier<RangeRow> RANGE_COLUMN = ColumnIdentifier.newId(
RangeRow.PROPERTY_RANGE,
n("faxtomail.rangeRows.table.header.range"),
- n("faxtomail.rangeRows.table.header.range"));
+ n("faxtomail.rangeRows.table.header.range.tip"));
public static final ColumnIdentifier<RangeRow> COMMAND_NUMBER_COLUMN = ColumnIdentifier.newId(
RangeRow.PROPERTY_COMMAND_NUMBER,
- n("faxtomail.rangeRows.table.header.command_number"),
- n("faxtomail.rangeRows.table.header.command_number"));
+ n("faxtomail.rangeRows.table.header.commandNumber"),
+ n("faxtomail.rangeRows.table.header.commandNumber.tip"));
public static final ColumnIdentifier<RangeRow> PRODUCT_QUANTITY_COLUMN = ColumnIdentifier.newId(
RangeRow.PROPERTY_PRODUCT_QUANTITY,
- n("faxtomail.rangeRows.table.header.product_column"),
- n("faxtomail.rangeRows.table.header.product_column"));
+ n("faxtomail.rangeRows.table.header.productColumn"),
+ n("faxtomail.rangeRows.table.header.productColumn.tip"));
public static final ColumnIdentifier<RangeRow> SAV_QUANTITY_COLUMN = ColumnIdentifier.newId(
RangeRow.PROPERTY_SAV_QUANTITY,
- n("faxtomail.rangeRows.table.header.sav_quantity"),
- n("faxtomail.rangeRows.table.header.sav_quantity"));
+ n("faxtomail.rangeRows.table.header.savQuantity"),
+ n("faxtomail.rangeRows.table.header.savQuantity.tip"));
public RangeTableModel(TableColumnModelExt columnModel) {
super(columnModel, true, true);
@@ -45,6 +45,11 @@
@Override
public RangeRowModel createNewRow() {
- return new RangeRowModel();
+ RangeRowModel row = new RangeRowModel();
+ row.setProductQuantity(0);
+ row.setSavQuantity(0);
+ row.setValid(false);
+ return row;
}
+
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -27,6 +27,7 @@
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeListAction;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIModel;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailDemandListHandler;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
import com.franciaflex.faxtomail.ui.swing.util.CloseableUI;
@@ -122,12 +123,12 @@
null);
JXTable dataTable = getUI().getDataTable();
- final AbstractApplicationTableModel<Email> tableModel = initDemandeTable(dataTable);
+ final AbstractApplicationTableModel<DemandeUIModel> tableModel = initDemandeTable(dataTable);
getModel().addPropertyChangeListener(SearchUIModel.PROPERTY_RESULTS, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
- List<Email> emails = (List<Email>) evt.getNewValue();
+ List<DemandeUIModel> emails = (List<DemandeUIModel>) evt.getNewValue();
tableModel.setRows(emails);
showInformationMessage(t("faxtomail.search.resultNb", emails.size()));
}
@@ -171,7 +172,7 @@
JXTable dataTable = ui.getDataTable();
int rowIndex = dataTable.getSelectedRow();
rowIndex = dataTable.convertRowIndexToModel(rowIndex);
- Email selectedEmail = ((DemandeTableModel) dataTable.getModel()).getEntry(rowIndex);
+ DemandeUIModel selectedEmail = ((DemandeTableModel) dataTable.getModel()).getEntry(rowIndex);
getContext().setCurrentEmail(selectedEmail);
getContext().setCurrentMailFolder(selectedEmail.getMailFolder());
getContext().getActionEngine().runAction(new ShowDemandeListAction(getContext().getMainUI().getHandler()));
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -34,6 +34,7 @@
import com.franciaflex.faxtomail.persistence.entities.MailFolder;
import com.franciaflex.faxtomail.persistence.entities.Priority;
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -69,7 +70,7 @@
protected Date minPrintingDate;
protected Date maxPrintingDate;
- protected List<Email> results;
+ protected List<DemandeUIModel> results;
protected static Binder<SearchUIModel, Email> toBeanBinder =
BinderFactory.newBinder(SearchUIModel.class,
@@ -253,11 +254,11 @@
this.maxPrintingDate = maxPrintingDate;
}
- public List<Email> getResults() {
+ public List<DemandeUIModel> getResults() {
return results;
}
- public void setResults(List<Email> results) {
+ public void setResults(List<DemandeUIModel> results) {
this.results = results;
firePropertyChanged(PROPERTY_RESULTS, null, results);
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -5,10 +5,17 @@
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.HasLabel;
import com.franciaflex.faxtomail.persistence.entities.Priority;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentCellEditor;
import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentCellRenderer;
+import com.google.common.base.Function;
+import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.decorator.ComponentAdapter;
import org.jdesktop.swingx.decorator.Highlighter;
@@ -17,13 +24,18 @@
import org.nuiton.decorator.Decorator;
import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
+import javax.swing.*;
import javax.swing.event.ChangeListener;
+import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
+import java.util.List;
/**
* @author Kevin Morin (Code Lutin)
@@ -31,7 +43,9 @@
*/
public abstract class AbstractFaxToMailDemandListHandler<M, UI extends FaxToMailUI<M, ?>> extends AbstractFaxToMailUIHandler<M, UI> {
- public AbstractApplicationTableModel<Email> initDemandeTable(JXTable table) {
+ private static final Log log = LogFactory.getLog(AbstractFaxToMailDemandListHandler.class);
+
+ public AbstractApplicationTableModel<DemandeUIModel> initDemandeTable(JXTable table) {
TableColumnModelExt columnModel = new DefaultTableColumnModelExt();
Company franciaflex = getContext().getCurrentCompany();
@@ -48,6 +62,8 @@
Email.PROPERTY_RECIPIENT,
Email.PROPERTY_DEMAND_STATUS,
Email.PROPERTY_ETAT_ATTENTE,
+ DemandeUIModel.PROPERTY_PF_NB,
+ DemandeUIModel.PROPERTY_SAV_NB,
Email.PROPERTY_ATTACHMENT
}, ',');
}
@@ -73,6 +89,23 @@
tableCellRenderer = newTableCellRender(Date.class);
break;
+ case DemandeUIModel.PROPERTY_PF_NB:
+ tableCellRenderer = new QuantityTableCellRenderer(new Function<RangeRow, Integer>() {
+ @Override
+ public Integer apply(RangeRow input) {
+ return input.getProductQuantity();
+ }
+ });
+ break;
+ case DemandeUIModel.PROPERTY_SAV_NB:
+ tableCellRenderer = new QuantityTableCellRenderer(new Function<RangeRow, Integer>() {
+ @Override
+ public Integer apply(RangeRow input) {
+ return input.getSavQuantity();
+ }
+ });
+ break;
+
case Email.PROPERTY_DEMAND_STATUS:
case Email.PROPERTY_DEMAND_TYPE:
case Email.PROPERTY_ETAT_ATTENTE:
@@ -94,7 +127,7 @@
}
}
- final AbstractApplicationTableModel<Email> tableModel = new DemandeTableModel(columnModel);
+ final AbstractApplicationTableModel<DemandeUIModel> tableModel = new DemandeTableModel(columnModel);
table.setModel(tableModel);
table.setColumnModel(columnModel);
table.getTableHeader().setReorderingAllowed(false);
@@ -104,7 +137,7 @@
public Component highlight(Component renderer, ComponentAdapter adapter) {
int viewRow = adapter.row;
int modelRow = adapter.convertRowIndexToModel(viewRow);
- Email row = tableModel.getEntry(modelRow);
+ DemandeUIModel row = tableModel.getEntry(modelRow);
boolean highlight = row.getTakenBy() == null;
if (highlight) {
Font font = renderer.getFont();
@@ -135,8 +168,12 @@
int rowIndex = table.getSelectedRow();
rowIndex = table.convertRowIndexToModel(rowIndex);
- Email selectedEmail = tableModel.getEntry(rowIndex);
- selectedEmail = getContext().getEmailService().addToOpeningHistory(selectedEmail, getContext().getCurrentUser(), new Date());
+ DemandeUIModel selectedEmail = tableModel.getEntry(rowIndex);
+ FaxToMailUIContext context = getContext();
+ Email email = context.getEmailService().addToOpeningHistory(selectedEmail.getTopiaId(),
+ context.getCurrentUser(),
+ new Date());
+ selectedEmail.fromEntity(email);
openDemand(selectedEmail);
}
}
@@ -145,8 +182,45 @@
return tableModel;
}
- protected void openDemand(Email selectedEmail) {
- getContext().setCurrentEmail(selectedEmail);
- getContext().getActionEngine().runAction(new ShowDemandeAction(getContext().getMainUI().getHandler()));
+ protected void openDemand(DemandeUIModel selectedEmail) {
+ FaxToMailUIContext context = getContext();
+ context.setCurrentEmail(selectedEmail);
+ context.getActionEngine().runAction(new ShowDemandeAction(context.getMainUI().getHandler()));
}
+
+ public class QuantityTableCellRenderer extends DefaultTableCellRenderer {
+
+ protected Function<RangeRow, Integer> getQuantityFunction;
+
+ public QuantityTableCellRenderer(Function<RangeRow, Integer> getQuantityFunction) {
+ this.getQuantityFunction = getQuantityFunction;
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasfocus, int row, int column) {
+ super.getTableCellRendererComponent(table, value, isSelected, hasfocus, row, column);
+
+ AbstractApplicationTableModel<DemandeUIModel> tableModel = (AbstractApplicationTableModel<DemandeUIModel>) table.getModel();
+ int rowInModel = table.convertRowIndexToModel(row);
+ DemandeUIModel demande = tableModel.getEntry(rowInModel);
+
+ String tooltipText = null;
+
+ List<String> ranges = new ArrayList<String>();
+ Collection<RangeRow> rangeRows = demande.getRangeRow();
+ for (RangeRow rangeRow : rangeRows) {
+ Integer qty = getQuantityFunction.apply(rangeRow);
+ if (qty != null && qty > 0) {
+ ranges.add(rangeRow.getRange().getLabel() + " : " + qty);
+ }
+ }
+
+ if (!ranges.isEmpty()) {
+ tooltipText = "<html><body>" + StringUtils.join(ranges, "<br/>") + "</body></html>";
+ }
+ setToolTipText(tooltipText);
+
+ return this;
+ }
+ }
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -24,6 +24,7 @@
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.EmailImpl;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.table.TableColumnModelExt;
@@ -41,7 +42,7 @@
* @author kmorin <kmorin(a)codelutin.com>
* @since x.x
*/
-public class DemandeTableModel extends AbstractApplicationTableModel<Email> {
+public class DemandeTableModel extends AbstractApplicationTableModel<DemandeUIModel> {
private static final Log log =
LogFactory.getLog(DemandeTableModel.class);
@@ -107,14 +108,8 @@
n("faxtomail.demandeList.table.header.user"),
n("faxtomail.demandeList.table.header.user.tip")));
- put(Email.PROPERTY_MAIL_FOLDER,
- ColumnIdentifier.<Email>newReadOnlyId(
- Email.PROPERTY_MAIL_FOLDER,
- n("faxtomail.demandeList.table.header.folder"),
- n("faxtomail.demandeList.table.header.folder.tip")));
-
put(Email.PROPERTY_PRIORITY,
- ColumnIdentifier.<Email>newReadOnlyId(
+ ColumnIdentifier.<Email>newId(
Email.PROPERTY_PRIORITY,
n("faxtomail.demandeList.table.header.priority"),
n("faxtomail.demandeList.table.header.priority.tip")));
@@ -125,14 +120,20 @@
n("faxtomail.demandeList.table.header.projectReference"),
n("faxtomail.demandeList.table.header.projectReference.tip")));
- put(Email.PROPERTY_RANGE_ROW,
+ put(DemandeUIModel.PROPERTY_PF_NB,
ColumnIdentifier.<Email>newReadOnlyId(
- Email.PROPERTY_RANGE_ROW,
- n("faxtomail.demandeList.table.header.range"),
- n("faxtomail.demandeList.table.header.range.tip")));
+ DemandeUIModel.PROPERTY_PF_NB,
+ n("faxtomail.demandeList.table.header.pfNb"),
+ n("faxtomail.demandeList.table.header.pfNb.tip")));
+ put(DemandeUIModel.PROPERTY_SAV_NB,
+ ColumnIdentifier.<Email>newReadOnlyId(
+ DemandeUIModel.PROPERTY_SAV_NB,
+ n("faxtomail.demandeList.table.header.savNb"),
+ n("faxtomail.demandeList.table.header.savNb.tip")));
+
put(Email.PROPERTY_ATTACHMENT,
- ColumnIdentifier.<Email>newReadOnlyId(
+ ColumnIdentifier.<Email>newId(
Email.PROPERTY_ATTACHMENT,
n("faxtomail.demandeList.table.header.attachment"),
n("faxtomail.demandeList.table.header.attachment.tip")));
@@ -147,7 +148,12 @@
}
@Override
- public Email createNewRow() {
- return new EmailImpl();
+ public DemandeUIModel createNewRow() {
+ return new DemandeUIModel();
}
+
+ @Override
+ protected void onRowsChanged(List<DemandeUIModel> data) {
+ super.onRowsChanged(data);
+ }
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -28,6 +28,7 @@
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.JAXXUtil;
@@ -133,41 +134,20 @@
return result;
}
- public static int[] computeQuantities(List<Email> emails) {
- int pfNb = 0;
- int savNb = 0;
- for (Email email : emails) {
- Collection<RangeRow> rangeRows = email.getRangeRow();
- if (rangeRows != null) {
- for (RangeRow rangeRow : rangeRows) {
- Integer productQuantity = rangeRow.getProductQuantity();
- if (productQuantity != null) {
- pfNb += productQuantity;
- }
-
- Integer savQuantity = rangeRow.getSavQuantity();
- if (savQuantity != null) {
- savNb += savQuantity;
- }
- }
- }
- }
- return new int[] { pfNb, savNb };
- }
-
- //TODO kmorin 20140306 remove this
public static int[] computeQuantities(Collection<RangeRowModel> rangeRows) {
int pfNb = 0;
int savNb = 0;
for (RangeRowModel rangeRow : rangeRows) {
- Integer productQuantity = rangeRow.getProductQuantity();
- if (productQuantity != null) {
- pfNb += productQuantity;
- }
+ if (rangeRow.isValid()) {
+ Integer productQuantity = rangeRow.getProductQuantity();
+ if (productQuantity != null) {
+ pfNb += productQuantity;
+ }
- Integer savQuantity = rangeRow.getSavQuantity();
- if (savQuantity != null) {
- savNb += savQuantity;
+ Integer savQuantity = rangeRow.getSavQuantity();
+ if (savQuantity != null) {
+ savNb += savQuantity;
+ }
}
}
return new int[] { pfNb, savNb };
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -2,6 +2,7 @@
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.History;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
import com.franciaflex.faxtomail.ui.swing.util.AbstractToolbarPopupHandler;
import jaxx.runtime.JAXXUtil;
@@ -25,7 +26,7 @@
public void beforeInit(HistoryListUI ui) {
super.beforeInit(ui);
- Email currentEmail = getContext().getCurrentEmail();
+ DemandeUIModel currentEmail = getContext().getCurrentEmail();
HistoryListUIModel model = new HistoryListUIModel();
model.fromBean(currentEmail);
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIModel.java 2014-03-12 18:14:43 UTC (rev 18)
@@ -3,6 +3,7 @@
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.EmailImpl;
import com.franciaflex.faxtomail.persistence.entities.History;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
@@ -13,14 +14,14 @@
* @author Kevin Morin (Code Lutin)
* @since x.x
*/
-public class HistoryListUIModel extends AbstractFaxToMailBeanUIModel<Email, HistoryListUIModel> {
+public class HistoryListUIModel extends AbstractFaxToMailBeanUIModel<DemandeUIModel, HistoryListUIModel> {
- protected static Binder<HistoryListUIModel, Email> toBeanBinder =
+ protected static Binder<HistoryListUIModel, DemandeUIModel> toBeanBinder =
BinderFactory.newBinder(HistoryListUIModel.class,
- Email.class);
+ DemandeUIModel.class);
- protected static Binder<Email, HistoryListUIModel> fromBeanBinder =
- BinderFactory.newBinder(Email.class, HistoryListUIModel.class);
+ protected static Binder<DemandeUIModel, HistoryListUIModel> fromBeanBinder =
+ BinderFactory.newBinder(DemandeUIModel.class, HistoryListUIModel.class);
protected final Email editObject = new EmailImpl();
@@ -49,7 +50,7 @@
}
@Override
- protected Email newEntity() {
- return new EmailImpl();
+ protected DemandeUIModel newEntity() {
+ return new DemandeUIModel();
}
}
Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties
===================================================================
--- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties 2014-03-12 18:14:43 UTC (rev 18)
@@ -175,6 +175,8 @@
faxtomail.demandeList.table.header.folder.tip=
faxtomail.demandeList.table.header.object=
faxtomail.demandeList.table.header.object.tip=
+faxtomail.demandeList.table.header.pfNb=
+faxtomail.demandeList.table.header.pfNb.tip=
faxtomail.demandeList.table.header.priority=
faxtomail.demandeList.table.header.priority.tip=
faxtomail.demandeList.table.header.projectReference=
@@ -187,6 +189,8 @@
faxtomail.demandeList.table.header.receptionEmailAddress.tip=
faxtomail.demandeList.table.header.recipient=
faxtomail.demandeList.table.header.recipient.tip=
+faxtomail.demandeList.table.header.savNb=
+faxtomail.demandeList.table.header.savNb.tip=
faxtomail.demandeList.table.header.savNumber=
faxtomail.demandeList.table.header.sender=
faxtomail.demandeList.table.header.sender.tip=
@@ -239,9 +243,16 @@
faxtomail.property.set.error=
faxtomail.quantitiesByRange.button.text=
faxtomail.quantitiesByRange.title=
+faxtomail.rangeRows.table.header.commandNumber=
+faxtomail.rangeRows.table.header.commandNumber.tip=
faxtomail.rangeRows.table.header.command_number=
+faxtomail.rangeRows.table.header.productColumn=
+faxtomail.rangeRows.table.header.productColumn.tip=
faxtomail.rangeRows.table.header.product_column=
faxtomail.rangeRows.table.header.range=
+faxtomail.rangeRows.table.header.range.tip=
+faxtomail.rangeRows.table.header.savQuantity=
+faxtomail.rangeRows.table.header.savQuantity.tip=
faxtomail.rangeRows.table.header.sav_quantity=
faxtomail.reply.action.cancel=
faxtomail.reply.action.cancel.mnemonic=
Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties
===================================================================
--- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-03-10 09:32:30 UTC (rev 17)
+++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-03-12 18:14:43 UTC (rev 18)
@@ -79,20 +79,20 @@
faxtomail.demandeList.table.header.client.tip=Client
faxtomail.demandeList.table.header.ediCodeNumber=Code EDI
faxtomail.demandeList.table.header.ediCodeNumber.tip=Code EDI
-faxtomail.demandeList.table.header.folder=Dossier
-faxtomail.demandeList.table.header.folder.tip=Dossier
faxtomail.demandeList.table.header.object=Objet
faxtomail.demandeList.table.header.object.tip=Objet
+faxtomail.demandeList.table.header.pfNb=Qté produits
+faxtomail.demandeList.table.header.pfNb.tip=Quantité de produits
faxtomail.demandeList.table.header.priority=P
faxtomail.demandeList.table.header.priority.tip=Priorité
faxtomail.demandeList.table.header.projectReference=Ref chantier
faxtomail.demandeList.table.header.projectReference.tip=Référence chantier
-faxtomail.demandeList.table.header.range=Gamme
-faxtomail.demandeList.table.header.range.tip=Gamme
faxtomail.demandeList.table.header.receptionDate=Date de réception
faxtomail.demandeList.table.header.receptionDate.tip=Date de réception
faxtomail.demandeList.table.header.recipient=Destinataire
faxtomail.demandeList.table.header.recipient.tip=Addresse email ou numéro de fax du destinataire
+faxtomail.demandeList.table.header.savNb=Qté SAV
+faxtomail.demandeList.table.header.savNb.tip=Quantité de SAV
faxtomail.demandeList.table.header.sender=Émetteur
faxtomail.demandeList.table.header.sender.tip=Addresse email ou numéro de fax de l'émetteur
faxtomail.demandeList.table.header.status=Statut
@@ -127,10 +127,14 @@
faxtomail.main.title.nodb=
faxtomail.quantitiesByRange.button.text=OK
faxtomail.quantitiesByRange.title=Quantités par gamme
-faxtomail.rangeRows.table.header.command_number=N° commande / devis
-faxtomail.rangeRows.table.header.product_column=Qté produits
+faxtomail.rangeRows.table.header.commandNumber=N° commande / devis
+faxtomail.rangeRows.table.header.commandNumber.tip=N° commande / devis
+faxtomail.rangeRows.table.header.productColumn=Qté produits
+faxtomail.rangeRows.table.header.productColumn.tip=Quantité de produits
faxtomail.rangeRows.table.header.range=Gamme
-faxtomail.rangeRows.table.header.sav_quantity=Qté SAV
+faxtomail.rangeRows.table.header.range.tip=Gamme
+faxtomail.rangeRows.table.header.savQuantity=Qté SAV
+faxtomail.rangeRows.table.header.savQuantity.tip=Quantité de SAV
faxtomail.reply.action.cancel=Annuler
faxtomail.reply.action.cancel.tip=Annuler et fermer la popup
faxtomail.reply.action.validate=Valider
1
0
10 Mar '14
Author: kmorin
Date: 2014-03-10 10:32:30 +0100 (Mon, 10 Mar 2014)
New Revision: 17
Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/17
Log:
refs #4231 Faire les UI de tous les ?\195?\169crans
Added:
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ComputeQuantitiesByRangeAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java
trunk/faxtomail-ui-swing/src/main/resources/icons/action-compute.png
trunk/faxtomail-ui-swing/src/main/resources/icons/action-delete.png
trunk/faxtomail-ui-swing/src/main/resources/icons/action-edit-attachment.png
trunk/faxtomail-ui-swing/src/main/resources/icons/action-import.png
trunk/faxtomail-ui-swing/src/main/resources/icons/action-new-demand.png
trunk/faxtomail-ui-swing/src/main/resources/icons/action-open-file.png
Removed:
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIModel.java
Modified:
trunk/faxtomail-persistence/pom.xml
trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/HistoryType.java
trunk/faxtomail-persistence/src/main/resources/faxtomail.properties
trunk/faxtomail-persistence/src/main/xmi/faxtomail.zargo
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorService.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceSupport.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java
trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java
trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_en_GB.properties
trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_fr_FR.properties
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ReplyAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailBeanUIModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentCellRenderer.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentEditorUI.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentItem.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.css
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.jaxx
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItemModel.java
trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java
trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties
trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties
trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java
Modified: trunk/faxtomail-persistence/pom.xml
===================================================================
--- trunk/faxtomail-persistence/pom.xml 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-persistence/pom.xml 2014-03-10 09:32:30 UTC (rev 17)
@@ -144,6 +144,7 @@
<artifactId>eugene-maven-plugin</artifactId>
<executions>
<execution>
+ <id>generate-entities</id>
<phase>generate-sources</phase>
<configuration>
<inputs>zargo</inputs>
Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/HistoryType.java
===================================================================
--- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/HistoryType.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/HistoryType.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -6,6 +6,7 @@
*/
public enum HistoryType {
+ CREATION,
OPENING,
MODIFICATION
}
Modified: trunk/faxtomail-persistence/src/main/resources/faxtomail.properties
===================================================================
--- trunk/faxtomail-persistence/src/main/resources/faxtomail.properties 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-persistence/src/main/resources/faxtomail.properties 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,26 +1,3 @@
-###
-# #%L
-# Extranet ENC-AHI :: Persistence
-# $Id: extranet-enc-ahi.properties 827 2013-12-04 15:30:35Z bleny $
-# $HeadURL: http://svn.forge.codelutin.com/svn/extranet-enc-ahi/trunk/extranet-persiste… $
-# %%
-# Copyright (C) 2013 Ministère des Affaires sociales et de la Santé
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Lesser Public License for more details.
-#
-# You should have received a copy of the GNU General Lesser Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/lgpl-3.0.html>.
-# #L%
-###
hibernate.connection.driver_class=org.h2.Driver
hibernate.connection.url=jdbc:h2:file:/tmp/faxtomail/h2data
hibernate.connection.username=sa
Modified: trunk/faxtomail-persistence/src/main/xmi/faxtomail.zargo
===================================================================
(Binary files differ)
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorService.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/DecoratorService.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.franciaflex.faxtomail.persistence.entities.Attachment;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
import com.franciaflex.faxtomail.persistence.entities.HasLabel;
import org.apache.commons.logging.LogFactory;
@@ -32,6 +33,7 @@
import java.io.File;
import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
import static org.nuiton.i18n.I18n.n;
@@ -47,6 +49,8 @@
public static final String SEPARATOR = "#";
+ public static final String DATE = "date";
+
/** Delegate decorator provider. */
protected DecoratorProvider decoratorProvider;
@@ -98,10 +102,22 @@
if (bean == null) {
return "";
}
- return DateFormat.getDateTimeInstance().format(bean);
+ return DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(bean);
}
});
+ registerDecorator(DATE, new Decorator<Date>(Date.class) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String toString(Object bean) {
+ if (bean == null) {
+ return "";
+ }
+ return DateFormat.getDateInstance(DateFormat.MEDIUM).format(bean);
+ }
+ });
registerMultiJXPathDecorator(HasLabel.class, "${label}$s", SEPARATOR, " - ");
+ registerMultiJXPathDecorator(Attachment.class, "${file}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(FaxToMailUser.class, "${trigraph}$s#${firstName}$s#${lastName}$s", SEPARATOR, " ");
}
};
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceSupport.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceSupport.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/FaxToMailServiceSupport.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -65,6 +65,10 @@
return serviceContext.newService(serviceClass);
}
+ public DecoratorService getDecoratorService() {
+ return newService(DecoratorService.class);
+ }
+
public CompanyService getCompanyService() {
return newService(CompanyService.class);
}
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -30,6 +30,9 @@
private static final Log log = LogFactory.getLog(EmailService.class);
public Email saveEmail(Email email, FaxToMailUser user) {
+ Date now = getNow();
+ EmailTopiaDao dao = getPersistenceContext().getEmailDao();
+ HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao();
if (email.getAttachment() != null) {
AttachmentTopiaDao attachmentDao = getPersistenceContext().getAttachmentDao();
@@ -53,13 +56,19 @@
}
}
- HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao();
+ if (!email.isPersisted()) {
+ if (email.getHistory() != null) {
+ historyDao.createAll(email.getHistory());
+ }
+
+ email = dao.create(email);
+ }
+
History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.MODIFICATION,
History.PROPERTY_FAX_TO_MAIL_USER, user,
- History.PROPERTY_MODIFICATION_DATE, new Date());
+ History.PROPERTY_MODIFICATION_DATE, now);
email.addHistory(history);
- EmailTopiaDao dao = getPersistenceContext().getEmailDao();
Email result = dao.update(email);
getPersistenceContext().commit();
@@ -68,9 +77,29 @@
public List<Email> getEmailForFolder(MailFolder folder) {
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
- return new ArrayList<>(dao.forMailFolderEquals(folder).findAll());
+ return new ArrayList<>(dao.forMailFolderEquals(folder)
+ .setOrderByArguments(Email.PROPERTY_RECEPTION_DATE)
+ .findAll());
}
+ public List<Email> getEmailForFolderAndSubfolders(MailFolder folder) {
+ EmailTopiaDao dao = getPersistenceContext().getEmailDao();
+ List<MailFolder> folders = new ArrayList<>();
+ folders.addAll(getChildrenRecursively(folder));
+ return new ArrayList<>(dao.forMailFolderIn(folders)
+ .findAll());
+ }
+
+ protected List<MailFolder> getChildrenRecursively(MailFolder folder) {
+ List<MailFolder> folders = new ArrayList<>();
+ folders.add(folder);
+ Collection<MailFolder> children = folder.getChildren();
+ for (MailFolder child : children) {
+ folders.addAll(getChildrenRecursively(child));
+ }
+ return folders;
+ }
+
public Email addToOpeningHistory(Email email, FaxToMailUser user, Date date) {
HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao();
History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.OPENING,
@@ -87,15 +116,29 @@
email = emailDao.update(email);
getPersistenceContext().commit();
- log.info("history " + email.getHistory().size());
return email;
}
+ public Email takeEmail(Email email, FaxToMailUser user) {
+ email.setTakenBy(user);
+
+ HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao();
+ History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.MODIFICATION,
+ History.PROPERTY_FAX_TO_MAIL_USER, user,
+ History.PROPERTY_MODIFICATION_DATE, new Date());
+ email.addHistory(history);
+
+ EmailTopiaDao emailDao = getPersistenceContext().getEmailDao();
+ email = emailDao.update(email);
+ getPersistenceContext().commit();
+ return email;
+ }
+
public List<Email> search(Email emailLike) {
EmailTopiaDao dao = getPersistenceContext().getEmailDao();
List<Email> result = new ArrayList<>(dao.newQueryBuilder()
.addContainsText(Email.PROPERTY_OBJECT, emailLike.getObject())
- .addContainsText(Email.PROPERTY_SENDER_EMAIL_ADDRESS, emailLike.getSenderEmailAddress())
+ .addContainsText(Email.PROPERTY_SENDER, emailLike.getSender())
.addContainsText(Email.PROPERTY_CLIENT_CODE, emailLike.getClientCode())
.addContainsText(Email.PROPERTY_EDI_CODE_NUMBER, emailLike.getEdiCodeNumber())
.addContainsText(Email.PROPERTY_PROJECT_REFERENCE, emailLike.getProjectReference())
Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java
===================================================================
--- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/InitFaxToMailService.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -52,11 +52,13 @@
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.persistence.entities.RangeRowTopiaDao;
import com.franciaflex.faxtomail.persistence.entities.RangeTopiaDao;
+import com.franciaflex.faxtomail.services.DecoratorService;
import com.franciaflex.faxtomail.services.FaxToMailServiceSupport;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.decorator.Decorator;
import org.nuiton.jaxx.application.ApplicationTechnicalException;
import java.io.File;
@@ -65,10 +67,13 @@
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Random;
+import static org.nuiton.i18n.I18n.t;
+
public class InitFaxToMailService extends FaxToMailServiceSupport {
private static final Log log = LogFactory.getLog(InitFaxToMailService.class);
@@ -76,7 +81,7 @@
public void init() {
if (log.isInfoEnabled()) {
- log.info("extranet initialization started");
+ log.info("faxtomail initialization started");
}
checkStorage();
@@ -92,7 +97,7 @@
// XWork2ValidatorUtil.setSharedValueStack(null);
if (log.isInfoEnabled()) {
- log.info("extranet initialization done");
+ log.info("faxtomail initialization done");
}
}
@@ -138,10 +143,12 @@
if (count == 0) {
List<Client> clients;
try {
- File clientFile = new File(ClassLoader.getSystemResource("fx_clients.csv").toURI());
+// File clientFile = new File(ClassLoader.getSystemResource("fx_clients.csv").toURI());
+ File clientFile = new File("/home/kmorin/Projects/faxToMail/faxtomail-service/src/main/resources/fx_clients.csv");
clients = getReferentielService().importClients(clientFile);
- } catch(IOException | URISyntaxException e) {
+ } catch(Exception e) {
+ log.error("error", e);
return;
}
@@ -186,7 +193,6 @@
PriorityTopiaDao priorityDao = getPersistenceContext().getPriorityDao();
List<Priority> priorities = Lists.newArrayList(
- priorityDao.create(Priority.PROPERTY_LABEL, "-"),
priorityDao.create(Priority.PROPERTY_LABEL, "!"),
priorityDao.create(Priority.PROPERTY_LABEL, "F")
);
@@ -309,9 +315,6 @@
MailFolder folder,
FaxToMailUser user) {
- History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.MODIFICATION,
- History.PROPERTY_MODIFICATION_DATE, new Date());
-
List<RangeRow> rangeRows = new ArrayList<>();
for (int j = 0 ; j < random.nextInt(4) + 1 ; j++) {
RangeRow rangeRow = rangeRowDao.create(RangeRow.PROPERTY_RANGE, ranges.get(random.nextInt(ranges.size())),
@@ -322,28 +325,66 @@
}
Client client = clients.get(random.nextInt(clients.size()));
- String senderEmail = client.getEmailAddress();
- if (senderEmail == null && client.getFaxNumber() != null) {
- senderEmail = client.getFaxNumber().replace(" ", "") + "@franciaflex.fax";
+ String sender = client.getEmailAddress();
+ boolean fax = false;
+ if (sender == null && client.getFaxNumber() != null) {
+ sender = client.getFaxNumber();
+ fax = true;
}
boolean opened = random.nextBoolean();
- Email email = emailDao.create(Email.PROPERTY_SENDER_EMAIL_ADDRESS, senderEmail,
+
+ Decorator<Date> dateDecorator = getDecoratorService().getDecoratorByType(Date.class, DecoratorService.DATE);
+
+ Date now = new Date();
+ History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.CREATION,
+ History.PROPERTY_MODIFICATION_DATE, now);
+ String projectRef = t("faxtomail.email.projectReference.default", dateDecorator.toString(now));
+
+ Email email = emailDao.create(Email.PROPERTY_SENDER, sender,
+ Email.PROPERTY_FAX, fax,
Email.PROPERTY_CLIENT_CODE, client.getCode(),
- Email.PROPERTY_OBJECT, client.getCaracteristic1() + " / " + client.getCode() + " / " + client.getName() + " / " + client.getFaxNumber() + " / " +
- SimpleDateFormat.getDateTimeInstance().format(new Date()),
- Email.PROPERTY_RECEPTION_DATE, new Date(),
+ Email.PROPERTY_PROJECT_REFERENCE, projectRef,
+ Email.PROPERTY_OBJECT, client.getCaracteristic1() + " / " + client.getCode() + " / " + client.getName() + " / " + client.getFaxNumber() + " / " + dateDecorator.toString(now),
+ Email.PROPERTY_RECEPTION_DATE, now,
Email.PROPERTY_MAIL_FOLDER, folder,
- Email.PROPERTY_DEMAND_TYPE, types.get(random.nextInt(types.size())),
Email.PROPERTY_DEMAND_STATUS, statuses.get(opened ? 1 : 0),
- Email.PROPERTY_PRIORITY, priorities.get(0),
- Email.PROPERTY_RANGE_ROW, rangeRows,
Email.PROPERTY_HISTORY, Lists.newArrayList(history));
if (opened) {
- getEmailService().addToOpeningHistory(email, user, new Date());
+ getEmailService().addToOpeningHistory(email, user, now);
+ email.setDemandType(types.get(random.nextInt(types.size())));
+ email.setPriority(priorities.get(random.nextInt(priorities.size())));
+ email.setRangeRow(rangeRows);
+ getEmailService().saveEmail(email, user);
}
+
+ Calendar cal = Calendar.getInstance();
+ cal.add(Calendar.DAY_OF_MONTH, -1);
+ Date yesterday = cal.getTime();
+ history = historyDao.create(History.PROPERTY_TYPE, HistoryType.CREATION,
+ History.PROPERTY_MODIFICATION_DATE, yesterday);
+ projectRef = t("faxtomail.email.projectReference.default", dateDecorator.toString(yesterday));
+
+ email = emailDao.create(Email.PROPERTY_SENDER, sender,
+ Email.PROPERTY_FAX, fax,
+ Email.PROPERTY_CLIENT_CODE, client.getCode(),
+ Email.PROPERTY_PROJECT_REFERENCE, projectRef,
+ Email.PROPERTY_OBJECT, client.getCaracteristic1() + " / " + client.getCode() + " / " + client.getName() + " / " + client.getFaxNumber() + " / " + dateDecorator.toString(yesterday),
+ Email.PROPERTY_RECEPTION_DATE, yesterday,
+ Email.PROPERTY_MAIL_FOLDER, folder,
+ Email.PROPERTY_DEMAND_STATUS, statuses.get(opened ? 1 : 0),
+ Email.PROPERTY_HISTORY, Lists.newArrayList(history));
+
+
+ if (opened) {
+ getEmailService().addToOpeningHistory(email, user, now);
+ email.setDemandType(types.get(random.nextInt(types.size())));
+ email.setPriority(priorities.get(random.nextInt(priorities.size())));
+ email.setRangeRow(rangeRows);
+ getEmailService().saveEmail(email, user);
+ }
}
}
Modified: trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_en_GB.properties
===================================================================
--- trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_en_GB.properties 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_en_GB.properties 2014-03-10 09:32:30 UTC (rev 17)
@@ -7,6 +7,7 @@
faxtomail.config.option.tmp.directory.description=
faxtomail.config.option.version.description=
faxtomail.config.service=
+faxtomail.email.projectReference.default=
faxtomail.service.compressZipFile.error=
faxtomail.service.config.deleteTempDirectory.error=
faxtomail.service.mkDir.error=
Modified: trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_fr_FR.properties
===================================================================
--- trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_fr_FR.properties 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-service/src/main/resources/i18n/faxtomail-service_fr_FR.properties 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,66 +1 @@
-faxtomail.config.option.basedir.description=
-faxtomail.config.option.csv.separator.description=
-faxtomail.config.option.data.directory.description=
-faxtomail.config.option.inceptionYear.description=
-faxtomail.config.option.organizationName.description=
-faxtomail.config.option.site.url.description=
-faxtomail.config.option.tmp.directory.description=
-faxtomail.config.option.version.description=
-faxtomail.config.service=
-faxtomail.service.compressZipFile.error=
-faxtomail.service.config.deleteTempDirectory.error=
-faxtomail.service.mkDir.error=
-faxtomail.service.referential.import.clients.error=
-faxtomail.validator.error.email.clientCode.required=
-faxtomail.validator.error.email.demandType.required=
-faxtomail.validator.error.email.projectReference.required=
-tutti.config.option.basedir.description=
-tutti.config.option.csv.separator.description=
-tutti.config.option.inceptionYear.description=
-tutti.config.option.organizationName.description=
-tutti.config.option.site.url.description=
-tutti.config.option.tmp.directory.description=
-tutti.config.option.version.description=
-tutti.property.attachment=
-tutti.property.caracteristic=
-tutti.property.country=
-tutti.property.cruise=
-tutti.property.date=
-tutti.property.department=
-tutti.property.firstName=
-tutti.property.fishingOperation=
-tutti.property.fishingOperationLocation=
-tutti.property.fishingOperationNumber=
-tutti.property.fractionName=
-tutti.property.gear=
-tutti.property.gearShootingStartDate=
-tutti.property.genusSpecies=
-tutti.property.internationalRegistrationCode=
-tutti.property.label=
-tutti.property.lastName=
-tutti.property.marineLitterCategory=
-tutti.property.matrixName=
-tutti.property.methodName=
-tutti.property.multirigAggregation=
-tutti.property.name=
-tutti.property.parameterName=
-tutti.property.person=
-tutti.property.program=
-tutti.property.protocol=
-tutti.property.rankOrder=
-tutti.property.refTaxCode=
-tutti.property.sortedUnsortedCategory=
-tutti.property.species=
-tutti.property.stationNumber=
-tutti.property.strata=
-tutti.property.surveyCode=
-tutti.property.tuttiLocation=
-tutti.property.user=
-tutti.property.vessel=
-tutti.property.zone=
-tutti.propety.no.species.speciesCode=
-tutti.propety.no.vessel.name=
-tutti.propety.no.zone=
-tutti.propety.vessel.nation.registrationCode=
-tutti.service.compressZipFile.error=
-tutti.service.context.serviceInstanciation.error=
+faxtomail.email.projectReference.default=Votre demande du %s
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ComputeQuantitiesByRangeAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ComputeQuantitiesByRangeAction.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ComputeQuantitiesByRangeAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,75 @@
+package com.franciaflex.faxtomail.ui.swing.actions;
+
+import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.persistence.entities.MailFolder;
+import com.franciaflex.faxtomail.persistence.entities.Range;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.persistence.entities.RangeRowImpl;
+import com.franciaflex.faxtomail.ui.swing.content.demande.QuantitiesByRangeUI;
+import com.franciaflex.faxtomail.ui.swing.content.demande.QuantitiesByRangeUIHandler;
+import com.franciaflex.faxtomail.ui.swing.content.demande.QuantitiesByRangeUIModel;
+import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.awt.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.nuiton.i18n.I18n.t;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class ComputeQuantitiesByRangeAction extends AbstractFaxToMailAction<QuantitiesByRangeUIModel, QuantitiesByRangeUI, QuantitiesByRangeUIHandler> {
+
+ private static final Log log = LogFactory.getLog(ComputeQuantitiesByRangeAction.class);
+
+ public ComputeQuantitiesByRangeAction(QuantitiesByRangeUIHandler handler) {
+ super(handler, false);
+ }
+
+ @Override
+ public void doAction() throws Exception {
+ Map<Range, RangeRowModel> quantitiesByRange = new HashMap<Range, RangeRowModel>();
+ MailFolder folder = getModel().getRootFolder();
+ List<Email> emails = getContext().getEmailService().getEmailForFolderAndSubfolders(folder);
+
+ for (Email email : emails) {
+ Collection<RangeRow> rangeRows = email.getRangeRow();
+ if (rangeRows != null) {
+ for (RangeRow rangeRow : rangeRows) {
+ Range range = rangeRow.getRange();
+ RangeRowModel row = quantitiesByRange.get(range);
+ if (row == null) {
+ row = new RangeRowModel();
+ row.fromEntity(rangeRow);
+ quantitiesByRange.put(range, row);
+
+ } else {
+ Integer productQuantity = rangeRow.getProductQuantity();
+ if (productQuantity != null) {
+ row.setProductQuantity(row.getProductQuantity() + productQuantity);
+ }
+
+ Integer savQuantity = rangeRow.getSavQuantity();
+ if (savQuantity != null) {
+ row.setSavQuantity(row.getSavQuantity() + savQuantity);
+ }
+ }
+
+ }
+ }
+ }
+ getModel().setRangeRows(quantitiesByRange.values());
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+ handler.openDialog(getUI(), t("faxtomail.quantitiesByRange.title"), new Dimension(350, 300));
+ }
+}
\ No newline at end of file
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ReplyAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ReplyAction.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ReplyAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,8 +1,8 @@
package com.franciaflex.faxtomail.ui.swing.actions;
-import com.franciaflex.faxtomail.ui.swing.content.demande.ReplyFormUI;
-import com.franciaflex.faxtomail.ui.swing.content.demande.ReplyFormUIHandler;
-import com.franciaflex.faxtomail.ui.swing.content.demande.ReplyFormUIModel;
+import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI;
+import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIHandler;
+import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -2,42 +2,48 @@
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen;
import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUI;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler;
import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
+import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel;
+import com.franciaflex.faxtomail.ui.swing.content.demande.RangeTableModel;
+import com.google.common.collect.Maps;
+import org.nuiton.topia.persistence.TopiaEntities;
+import java.util.List;
+import java.util.Map;
+
/**
* @author Kevin Morin (Code Lutin)
* @since x.x
*/
-public class SaveDemandeAction extends ShowDemandeListAction {
+public class SaveDemandeAction extends AbstractFaxToMailAction<DemandeUIModel, DemandeUI, DemandeUIHandler> {
- protected DemandeUIModel demandeModel;
-
- public SaveDemandeAction(MainUIHandler handler) {
- super(handler);
- }
-
public SaveDemandeAction(DemandeUIHandler handler) {
- super(handler.getContext().getMainUI().getHandler());
+ super(handler, false);
}
- public DemandeUIModel getDemandeModel() {
- return demandeModel;
- }
-
- public void setDemandeModel(DemandeUIModel demandeModel) {
- this.demandeModel = demandeModel;
- }
-
@Override
public void doAction() throws Exception {
+ RangeTableModel rtm = (RangeTableModel) getUI().getRangeTable().getModel();
+ List<RangeRowModel> rows = rtm.getRows();
+ Map<String, RangeRow> rangeRowsById = Maps.uniqueIndex(getModel().getRangeRow(), TopiaEntities.getTopiaIdFunction());
+ for (RangeRowModel rangeRowModel : rows) {
+ RangeRow rangeRow = rangeRowsById.get(rangeRowModel.getTopiaId());
+ if (rangeRow == null) {
+ getModel().addRangeRow(rangeRowModel.toEntity());
+ } else {
+ rangeRowModel.toEntity(rangeRow);
+ }
+ }
+
FaxToMailUser currentUser = getContext().getCurrentUser();
Email currentEmail = getContext().getCurrentEmail();
- Email email = demandeModel.toEntity(currentEmail);
+ Email email = getModel().toEntity(currentEmail);
getContext().getEmailService().saveEmail(email, currentUser);
-
- super.doAction();
}
}
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/SaveDemandeAndExitAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,22 @@
+package com.franciaflex.faxtomail.ui.swing.actions;
+
+import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIHandler;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class SaveDemandeAndExitAction extends SaveDemandeAction {
+
+ public SaveDemandeAndExitAction(DemandeUIHandler handler) {
+ super(handler);
+ }
+
+ @Override
+ public void postSuccessAction() {
+ super.postSuccessAction();
+
+ getContext().setScreen(FaxToMailScreen.LIST);
+ }
+}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -23,8 +23,10 @@
*/
import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
import com.franciaflex.faxtomail.ui.swing.FaxToMailScreen;
import com.franciaflex.faxtomail.ui.swing.content.MainUIHandler;
+import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
import javax.swing.*;
@@ -50,9 +52,37 @@
super.postSuccessAction();
Email currentEmail = getContext().getCurrentEmail();
- if (!getContext().getCurrentUser().equals(currentEmail.getTakenBy())) {
- displayWarningMessage(t("faxtomail.alert.alreadyTakenBy.title"),
- t("faxtomail.alert.alreadyTakenBy.message", decorate(currentEmail.getTakenBy())));
+ FaxToMailUser takenBy = currentEmail.getTakenBy();
+ FaxToMailUser currentUser = getContext().getCurrentUser();
+
+ if (takenBy != null && !currentUser.equals(takenBy)) {
+// displayWarningMessage(t("faxtomail.alert.alreadyTakenBy.title"),
+// t("faxtomail.alert.alreadyTakenBy.message", decorate(takenBy)));
+ String htmlMessage = String.format(
+ AbstractApplicationUIHandler.CONFIRMATION_FORMAT,
+ t("faxtomail.alert.alreadyTakenBy.message", decorate(takenBy)),
+ t("faxtomail.alert.alreadyTakenBy.help"));
+
+ int result = JOptionPane.showConfirmDialog(getHandler().getTopestUI(),
+ htmlMessage,
+ t("faxtomail.alert.alreadyTakenBy.title"),
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE);
+
+ switch (result) {
+ case JOptionPane.CANCEL_OPTION:
+ getContext().setScreen(FaxToMailScreen.LIST);
+ break;
+
+ case JOptionPane.NO_OPTION:
+ // TODO kmorin 201410305 how to set the email in readonly
+ break;
+
+ case JOptionPane.YES_OPTION:
+ getContext().getEmailService().takeEmail(currentEmail, currentUser);
+ // TODO kmorin 201410305 how to update on screen
+ break;
+ }
}
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/TransmitAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -16,8 +16,9 @@
@Override
public void doAction() throws Exception {
- SaveDemandeAction action = getContext().getActionFactory().createLogicAction(getContext().getMainUI().getHandler(), SaveDemandeAction.class);
- action.setDemandeModel(getModel());
- getContext().getActionEngine().runAction(action);
+ //TODO kmorin 20140306
+// SaveDemandeAction action = getContext().getActionFactory().createLogicAction(getContext().getMainUI().getHandler(), SaveDemandeAction.class);
+// action.setDemandeModel(getModel());
+// getContext().getActionEngine().runAction(action);
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/MainUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -37,14 +37,12 @@
text: "faxtomail.main.menu.file";
toolTipText: "faxtomail.main.menu.file.tip";
toolTipText: "faxtomail.main.menu.file.tip";
- i18nMnemonic: "faxtomail.main.menu.file.mnemonic";
}
#menuFileDemandeList {
actionIcon: list;
text: "faxtomail.main.action.demandeList";
toolTipText: "faxtomail.main.action.demandeList.tip";
- i18nMnemonic: "faxtomail.main.action.demandeList.mnemonic";
enabled: true;//{model.getScreen() != TuttiScreen.LIST};
_applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeListAction.class};
}
@@ -53,7 +51,6 @@
actionIcon: search;
text: "faxtomail.main.action.recherche";
toolTipText: "faxtomail.main.action.recherche.tip";
- i18nMnemonic: "faxtomail.main.action.recherche.mnemonic";
enabled: true;
_applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.ShowRechercheAction.class};
}
@@ -72,7 +69,6 @@
actionIcon: exit;
text: "faxtomail.main.action.exit";
toolTipText: "faxtomail.main.action.exit.tip";
- i18nMnemonic: "faxtomail.main.action.exit.mnemonic";
_applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.CloseApplicationAction.class};
_help: {"faxtomail.main.menu.action.exit.help"};
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -19,12 +19,37 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
+.horizontal-separator {
+ text: " | ";
+}
+
#navigationTree {
font-size: "11";
rootVisible: false;
showsRootHandles: true;
}
+#computeQuantitiesByRangeMenu {
+ actionIcon: compute;
+ text: "faxtomail.demandeList.action.computeQuantitiesByRange";
+ toolTipText: "faxtomail.demandeList.action.computeQuantitiesByRange.tip";
+}
+
+#newDemandMenu {
+ actionIcon: new-demand;
+ text: "faxtomail.demandeList.action.newDemand";
+ toolTipText: "faxtomail.demandeList.action.newDemand.tip";
+}
+
+#demandNbLabel {
+ text: "faxtomail.demandeList.demandNbLabel";
+ font-style: "italic";
+}
+
+#demandNbField {
+ text: { String.valueOf(model.getEmailNb()) };
+}
+
#pfNbLabel {
text: "faxtomail.demandeList.pfNbLabel";
font-style: "italic";
@@ -44,22 +69,21 @@
}
#dataTable {
- editable: false;
+ editable: true;
autoCreateRowSorter: true;
+ sortable: false;
}
#printMenu {
actionIcon: print;
text: "faxtomail.demandeList.action.print";
toolTipText: "faxtomail.demandeList.action.print.tip";
- i18nMnemonic: "faxtomail.demandeList.action.print.mnemonic";
}
#replyMenu {
actionIcon: reply;
text: "faxtomail.demandeList.action.reply";
toolTipText: "faxtomail.demandeList.action.reply.tip";
- i18nMnemonic: "faxtomail.demandeList.action.reply.mnemonic";
enabled: {model.isReplyEnabled()};
}
@@ -67,6 +91,11 @@
actionIcon: attachment;
text: "faxtomail.demandeList.action.attachment";
toolTipText: "faxtomail.demandeList.action.attachment.tip";
- i18nMnemonic: "faxtomail.demandeList.action.attachment.mnemonic";
enabled: {model.isAddAttachmentEnabled()};
+}
+
+#archiveMenu {
+ text: "faxtomail.demandeList.action.archive";
+ toolTipText: "faxtomail.demandeList.action.archive.tip";
+ enabled: {model.isArchiveEnabled()};
}
\ No newline at end of file
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -50,6 +50,13 @@
Liste des éléments globale (de tous les dossiers accessibles).
-->
+ <JPopupMenu id='treePopup'>
+ <JMenuItem id='computeQuantitiesByRangeMenu'
+ onActionPerformed='handler.computeQuantitiesByRange()'/>
+ <JMenuItem id='newDemandMenu'
+ onActionPerformed='handler.newDemand()'/>
+ </JPopupMenu>
+
<JPopupMenu id='tablePopup'>
<JMenuItem id='printMenu'
onActionPerformed='handler.print()'/>
@@ -57,17 +64,24 @@
onActionPerformed='handler.reply()'/>
<JMenuItem id='addAttachmentMenu'
onActionPerformed='handler.addAttachment()'/>
+ <JMenuItem id='archiveMenu'
+ onActionPerformed='handler.archive()'/>
</JPopupMenu>
<JSplitPane constraints='BorderLayout.CENTER'>
<JScrollPane>
- <JTree id="navigationTree"/>
+ <JTree id="navigationTree"
+ onMouseClicked='handler.autoSelectNodeInTree(event, treePopup)'/>
</JScrollPane>
<JPanel layout='{new BorderLayout()}'>
<JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.NORTH'>
+ <JLabel id="demandNbLabel"/>
+ <JLabel id="demandNbField"/>
+ <JLabel styleClass="horizontal-separator"/>
<JLabel id="pfNbLabel"/>
<JLabel id="pfNbField"/>
+ <JLabel styleClass="horizontal-separator"/>
<JLabel id="savNbLabel"/>
<JLabel id="savNbField"/>
</JPanel>
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -24,8 +24,15 @@
import com.franciaflex.faxtomail.persistence.entities.Company;
import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.persistence.entities.EmailImpl;
+import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser;
+import com.franciaflex.faxtomail.persistence.entities.History;
+import com.franciaflex.faxtomail.persistence.entities.HistoryImpl;
+import com.franciaflex.faxtomail.persistence.entities.HistoryType;
import com.franciaflex.faxtomail.persistence.entities.MailFolder;
+import com.franciaflex.faxtomail.persistence.entities.Range;
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.ui.swing.actions.ComputeQuantitiesByRangeAction;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailDemandListHandler;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
@@ -34,6 +41,7 @@
import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil;
import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode;
import jaxx.runtime.validator.swing.SwingValidator;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -61,9 +69,12 @@
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static org.nuiton.i18n.I18n.t;
+
/**
* Handler of UI {@link com.franciaflex.faxtomail.ui.swing.content.demande.DemandeListUIHandler}.
*
@@ -91,6 +102,7 @@
DemandeListUIModel model = (DemandeListUIModel) evt.getSource();
MailFolder folder = (MailFolder) evt.getNewValue();
List<Email> emails = getContext().getEmailService().getEmailForFolder(folder);
+ log.info(emails.size() + " emails in folder " + folder.getName());
model.setEmails(emails);
}
});
@@ -113,24 +125,10 @@
List<Email> emails = (List<Email>) evt.getNewValue();
tableModel.setRows(emails);
- int pfNb = 0;
- int savNb = 0;
- for (Email email: emails) {
- Collection<RangeRow> rangeRows = email.getRangeRow();
- for (RangeRow rangeRow : rangeRows) {
- Integer productQuantity = rangeRow.getProductQuantity();
- if (productQuantity != null) {
- pfNb += productQuantity;
- }
+ int[] quantities = FaxToMailUIUtil.computeQuantities(emails);
- Integer savQuantity = rangeRow.getSavQuantity();
- if (savQuantity != null) {
- savNb += savQuantity;
- }
- }
- }
- getModel().setPfNb(pfNb);
- getModel().setSavNb(savNb);
+ getModel().setPfNb(quantities[0]);
+ getModel().setSavNb(quantities[1]);
}
});
@@ -224,15 +222,82 @@
getModel().setReplyEnabled(selectedRowCount == 1);
}
+ public void autoSelectNodeInTree(MouseEvent e, JPopupMenu popup) {
+
+ boolean rightClick = SwingUtilities.isRightMouseButton(e);
+
+ if (rightClick) {
+
+ JTree source = (JTree) e.getSource();
+
+ // get the row index at this point
+ int rowIndex = source.getClosestRowForLocation(e.getX(), e.getY());
+
+ if (log.isDebugEnabled()) {
+ log.debug("At point [" + e.getPoint() + "] found Row " + rowIndex);
+ }
+
+ // select row (could empty selection)
+ if (rowIndex == -1) {
+ source.clearSelection();
+ } else {
+ // set selection
+ source.setSelectionRow(rowIndex);
+ }
+
+ // on right click show popup
+ popup.show(source, e.getX(), e.getY());
+ }
+ }
+
+ public void computeQuantitiesByRange() {
+ QuantitiesByRangeUI dialogContent = new QuantitiesByRangeUI(ui);
+ getContext().getActionEngine().runAction(new ComputeQuantitiesByRangeAction(dialogContent.getHandler()));
+// openDialog(dialogContent, t("faxtomail.chooseMailFolder.title"), new Dimension(350, 500));
+ }
+
+ public void newDemand() {
+ FaxToMailUser currentUser = getContext().getCurrentUser();
+ Date now = new Date();
+
+ Email email = new EmailImpl();
+
+ History history = new HistoryImpl();
+ history.setFaxToMailUser(currentUser);
+ history.setType(HistoryType.CREATION);
+ history.setModificationDate(now);
+ email.addHistory(history);
+
+ history = new HistoryImpl();
+ history.setFaxToMailUser(currentUser);
+ history.setType(HistoryType.OPENING);
+ history.setModificationDate(now);
+ email.addHistory(history);
+
+ email.setMailFolder(getModel().getSelectedFolder());
+ email.setReceptionDate(now);
+ email.setTakenBy(currentUser);
+ openDemand(email);
+ }
+
public void print() {
+ //TODO
log.debug("print");
}
public void reply() {
+ //TODO
log.debug("reply");
}
public void addAttachment() {
+ //TODO
log.debug("addAttachment");
}
+
+ public void archive() {
+ //TODO
+ log.debug("archive");
+ }
+
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -26,6 +26,7 @@
import com.franciaflex.faxtomail.persistence.entities.MailFolder;
import org.jdesktop.beans.AbstractSerializableBean;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -36,6 +37,7 @@
public static final String PROPERTY_FOLDERS = "folders";
public static final String PROPERTY_EMAILS = "emails";
+ public static final String PROPERTY_EMAIL_NB = "emailNb";
public static final String PROPERTY_SELECTED_FOLDER = "selectedFolder";
public static final String PROPERTY_PF_NB = "pfNb";
public static final String PROPERTY_SAV_NB = "savNb";
@@ -50,6 +52,8 @@
protected boolean addAttachmentEnabled;
+ protected boolean archiveEnabled;
+
protected int pfNb;
protected int savNb;
@@ -69,11 +73,28 @@
}
public void setEmails(List<Email> emails) {
- Object oldValue = getEmails();
+ Object oldValue = getEmailNb();
this.emails = emails;
- firePropertyChange(PROPERTY_EMAILS, oldValue, emails);
+ Object newValue = getEmailNb();
+ firePropertyChange(PROPERTY_EMAILS, null, emails);
+ firePropertyChange(PROPERTY_EMAIL_NB, oldValue, newValue);
}
+ public int getEmailNb() {
+ return emails == null ? 0 : emails.size();
+ }
+
+ public void addEmail(Email email) {
+ if (emails == null) {
+ emails = new ArrayList<Email>();
+ }
+ Object oldValue = getEmailNb();
+ emails.add(email);
+ Object newValue = getEmailNb();
+ firePropertyChange(PROPERTY_EMAILS, null, emails);
+ firePropertyChange(PROPERTY_EMAIL_NB, oldValue, newValue);
+ }
+
public MailFolder getSelectedFolder() {
return selectedFolder;
}
@@ -100,6 +121,14 @@
this.addAttachmentEnabled = addAttachmentEnabled;
}
+ public boolean isArchiveEnabled() {
+ return archiveEnabled;
+ }
+
+ public void setArchiveEnabled(boolean archiveEnabled) {
+ this.archiveEnabled = archiveEnabled;
+ }
+
public int getPfNb() {
return pfNb;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -53,7 +53,7 @@
}
#receivedDateField {
- text: { SimpleDateFormat.getDateTimeInstance().format(model.getReceptionDate()) };
+ text: { handler.decorate(model.getReceptionDate()) };
}
#senderLabel {
@@ -61,7 +61,7 @@
}
#senderField {
- text: { model.getSenderEmailAddress() };
+ text: { model.getSender() };
}
#clientLabel {
@@ -89,7 +89,6 @@
#ediCodeNumberField {
text: { model.getEdiCodeNumber() };
- editable: false;
}
#priorityLabel {
@@ -99,6 +98,7 @@
#priorityComboBox {
property: priority;
selectedItem: { model.getPriority() };
+ showReset: true;
}
#statusLabel {
@@ -133,12 +133,17 @@
verticalAlignment: { SwingConstants.TOP };
}
+#mailBodyLabel {
+ text: "faxtomail.demande.mailBody.label";
+ verticalAlignment: { SwingConstants.TOP };
+}
+
#takenByLabel {
text: "faxtomail.demande.takenBy.label";
}
#takenByField {
- text: { handler.decorateUser(model.getTakenBy()) };
+ text: { handler.decorateUser(model.getTakenBy(), false) };
}
#firstOpenedLabel {
@@ -150,7 +155,7 @@
}
#firstOpenedByField {
- text: { handler.decorateUser(model.getFirstOpeningUser()) };
+ text: { handler.decorateUser(model.getFirstOpeningUser(), false) };
}
#firstOpeningDateLabel {
@@ -158,7 +163,7 @@
}
#firstOpeningDateField {
- text: { SimpleDateFormat.getDateTimeInstance().format(model.getFirstOpeningDate()) };
+ text: { handler.decorate(model.getFirstOpeningDate()) };
}
#lastModifiedLabel {
@@ -170,7 +175,7 @@
}
#lastModifiedByField {
- text: { handler.decorateUser(model.getLastModificationUser()) };
+ text: { handler.decorateUser(model.getLastModificationUser(), true) };
}
#lastModificationDateLabel {
@@ -178,50 +183,67 @@
}
#lastModificationDateField {
- text: { SimpleDateFormat.getDateTimeInstance().format(model.getLastModificationDate()) };
+ text: { handler.decorate(model.getLastModificationDate()) };
}
+.horizontal-separator {
+ text: " | ";
+}
+
+#pfNbLabel {
+ text: "faxtomail.demandeList.pfNbLabel";
+ font-style: "italic";
+}
+
+#pfNbField {
+ text: { String.valueOf(model.getPfNb()) };
+}
+
+#savNbLabel {
+ text: "faxtomail.demandeList.savNbLabel";
+ font-style: "italic";
+}
+
+#savNbField {
+ text: { String.valueOf(model.getSavNb()) };
+}
+
#rangeTable {
selectionMode: { ListSelectionModel.SINGLE_SELECTION };
}
#backButton {
text: "faxtomail.demande.back.button.label";
- i18nMnemonic : "faxtomail.demande.back.button.mnemonic";
actionIcon: cancel;
_applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeListAction.class };
}
#saveButton {
text: "faxtomail.demande.save.button.label";
- i18nMnemonic : "faxtomail.demande.save.button.mnemonic";
actionIcon: save;
enabled: { model.isValid() };
+ _applicationAction: { com.franciaflex.faxtomail.ui.swing.actions.SaveDemandeAndExitAction.class };
}
#transmitButton {
text: "faxtomail.demande.transmit.button.label";
- i18nMnemonic : "faxtomail.demande.transmit.button.mnemonic";
actionIcon: transmit;
enabled: { model.isValid() };
}
#printButton {
text: "faxtomail.demande.print.button.label";
- i18nMnemonic : "faxtomail.demande.print.button.mnemonic";
actionIcon: print;
enabled: { model.isValid() };
}
#archiveButton {
text: "faxtomail.demande.archive.button.label";
- i18nMnemonic : "faxtomail.demande.archive.button.mnemonic";
enabled: { model.isValid() };
}
#replyButton {
text: "faxtomail.demande.reply.button.label";
- i18nMnemonic : "faxtomail.demande.reply.button.mnemonic";
actionIcon: reply;
enabled: { model.isValid() };
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -45,6 +45,8 @@
javax.swing.ListSelectionModel
javax.swing.SwingConstants
+ java.awt.FlowLayout
+
java.text.SimpleDateFormat
java.util.Date
</import>
@@ -74,9 +76,9 @@
</JToolBar>
<JSplitPane constraints='BorderLayout.CENTER'
- orientation="{JSplitPane.VERTICAL_SPLIT}">
+ orientation="{JSplitPane.HORIZONTAL_SPLIT}">
- <JSplitPane orientation="{JSplitPane.HORIZONTAL_SPLIT}">
+ <JSplitPane orientation="{JSplitPane.VERTICAL_SPLIT}">
<JScrollPane>
@@ -127,11 +129,12 @@
</row>
<row>
<cell>
- <JLabel id='ediCodeNumberLabel'/>
+ <JLabel id='priorityLabel'/>
</cell>
<cell weightx='1'>
- <JTextField id='ediCodeNumberField'
- onKeyReleased='handler.setText(event, "ediCodeNumber")'/>
+ <BeanFilterableComboBox id='priorityComboBox'
+ constructorParams='this'
+ genericType="Priority"/>
</cell>
</row>
<row>
@@ -145,12 +148,12 @@
</row>
<row>
<cell>
- <JLabel id='priorityLabel'/>
+ <JLabel id='etatAttenteLabel'/>
</cell>
<cell weightx='1'>
- <BeanFilterableComboBox id='priorityComboBox'
+ <BeanFilterableComboBox id='etatAttenteComboBox'
constructorParams='this'
- genericType="Priority"/>
+ genericType="EtatAttente"/>
</cell>
</row>
<row>
@@ -163,12 +166,11 @@
</row>
<row>
<cell>
- <JLabel id='etatAttenteLabel'/>
+ <JLabel id='ediCodeNumberLabel'/>
</cell>
<cell weightx='1'>
- <BeanFilterableComboBox id='etatAttenteComboBox'
- constructorParams='this'
- genericType="EtatAttente"/>
+ <JTextField id='ediCodeNumberField'
+ onKeyReleased='handler.setText(event, "ediCodeNumber")'/>
</cell>
</row>
@@ -238,26 +240,45 @@
</JScrollPane>
<JPanel layout="{new BorderLayout()}">
+ <JPanel layout="{new FlowLayout(FlowLayout.LEADING)}" constraints='BorderLayout.NORTH'>
+ <JLabel id="pfNbLabel"/>
+ <JLabel id="pfNbField"/>
+ <JLabel styleClass="horizontal-separator"/>
+ <JLabel id="savNbLabel"/>
+ <JLabel id="savNbField"/>
+ </JPanel>
+ <JScrollPane constraints="BorderLayout.CENTER">
+ <JXTable id='rangeTable'/>
+ </JScrollPane>
+ </JPanel>
+
+ </JSplitPane>
+
+ <JSplitPane orientation="{JSplitPane.VERTICAL_SPLIT}">
+ <JPanel layout="{new BorderLayout()}">
+ <JLabel id='mailBodyLabel'
+ constraints="BorderLayout.NORTH"/>
+ <JScrollPane id='mailBodyPane'
+ constraints="BorderLayout.CENTER">
+ <JEditorPane id='mailBodyField'/>
+ </JScrollPane>
+ </JPanel>
+ <JPanel layout="{new BorderLayout()}">
<JLabel id='messageLabel'
constraints="BorderLayout.NORTH"/>
- <JScrollPane id='commentPane'
+ <JScrollPane id='messagePane'
constraints="BorderLayout.CENTER">
<JEditorPane id='messageField'/>
</JScrollPane>
</JPanel>
-
</JSplitPane>
- <JScrollPane>
- <JXTable id='rangeTable'/>
- </JScrollPane>
-
</JSplitPane>
<JPanel layout='{new GridLayout(1,0)}'
constraints='BorderLayout.SOUTH'>
<JButton id="backButton"/>
- <JButton id="saveButton" onActionPerformed="handler.saveDemande()"/>
+ <JButton id="saveButton"/>
<JButton id="transmitButton" onActionPerformed="handler.transmitDemande()"/>
<JButton id="printButton"/>
<JButton id="archiveButton"/>
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -23,52 +23,42 @@
*/
-import com.franciaflex.faxtomail.persistence.entities.Client;
-import com.franciaflex.faxtomail.persistence.entities.Company;
-import com.franciaflex.faxtomail.persistence.entities.Email;
-import com.franciaflex.faxtomail.persistence.entities.MailFolder;
import com.franciaflex.faxtomail.persistence.entities.Range;
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.services.service.ReferentielService;
import com.franciaflex.faxtomail.ui.swing.actions.SaveDemandeAction;
-import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
-import com.franciaflex.faxtomail.ui.swing.content.search.SearchUI;
+import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUI;
+import com.franciaflex.faxtomail.ui.swing.content.reply.ReplyFormUIModel;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
import com.franciaflex.faxtomail.ui.swing.util.CloseableUI;
-import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI;
+import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil;
+import com.google.common.collect.Maps;
import jaxx.runtime.validator.swing.SwingValidator;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.jdesktop.swingx.table.TableColumnModelExt;
-import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import org.nuiton.jaxx.application.swing.table.MoveToNextEditableCellAction;
import org.nuiton.jaxx.application.swing.table.MoveToNextEditableRowAction;
import org.nuiton.jaxx.application.swing.table.MoveToPreviousEditableCellAction;
import org.nuiton.jaxx.application.swing.table.MoveToPreviousEditableRowAction;
+import org.nuiton.topia.persistence.TopiaEntities;
import javax.swing.*;
-import javax.swing.event.ChangeListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableCellEditor;
-import javax.swing.text.Document;
-import javax.swing.text.html.HTMLEditorKit;
-import javax.swing.text.html.StyleSheet;
-
-import java.awt.*;
+import java.awt.Dimension;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
import java.util.List;
+import java.util.Map;
import static org.nuiton.i18n.I18n.t;
@@ -90,8 +80,6 @@
*/
// private final PersistenceService persistenceService;
- protected RangeTableModel rangeTableModel;
-
@Override
public void beforeInit(DemandeUI ui) {
@@ -99,7 +87,6 @@
DemandeUIModel model = new DemandeUIModel();
model.fromBean(getContext().getCurrentEmail());
-
listModelIsModify(model);
this.ui.setContextValue(model);
@@ -153,8 +140,57 @@
null,
table);
- rangeTableModel = new RangeTableModel(columnModel);
- rangeTableModel.setRows(new ArrayList<RangeRow>(model.getRangeRow()));
+ final RangeTableModel rangeTableModel = new RangeTableModel(columnModel);
+ List<RangeRowModel> rangeRowModels = new ArrayList<RangeRowModel>();
+ for (RangeRow rangeRow : model.getRangeRow()) {
+ RangeRowModel rangeRowModel = new RangeRowModel();
+ rangeRowModel.fromEntity(rangeRow);
+ rangeRowModels.add(rangeRowModel);
+ }
+ rangeTableModel.setRows(rangeRowModels);
+
+ int[] quantities = FaxToMailUIUtil.computeQuantities(rangeRowModels);
+ model.setPfNb(quantities[0]);
+ model.setSavNb(quantities[1]);
+
+ table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+
+ protected PropertyChangeListener listener = new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ String propertyName = evt.getPropertyName();
+ log.info(propertyName);
+ if (RangeRow.PROPERTY_PRODUCT_QUANTITY.equals(propertyName)
+ || RangeRow.PROPERTY_SAV_QUANTITY.equals(propertyName)) {
+
+ List<RangeRowModel> rangeRows = rangeTableModel.getRows();
+ int[] quantities = FaxToMailUIUtil.computeQuantities(rangeRows);
+ DemandeUIModel model = getModel();
+ model.setPfNb(quantities[0]);
+ model.setSavNb(quantities[1]);
+ }
+ }
+ };
+
+ protected RangeRowModel currentRow;
+
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+ ListSelectionModel source = (ListSelectionModel) e.getSource();
+ if (currentRow != null) {
+ currentRow.removePropertyChangeListener(listener);
+ }
+
+ if (source.isSelectionEmpty()) {
+ currentRow = null;
+ } else {
+ int rowIndex = source.getLeadSelectionIndex();
+ currentRow = rangeTableModel.getEntry(rowIndex);
+ currentRow.addPropertyChangeListener(listener);
+ }
+ }
+ });
+
table.setModel(rangeTableModel);
table.setColumnModel(columnModel);
table.getTableHeader().setReorderingAllowed(false);
@@ -213,45 +249,6 @@
table.addKeyListener(keyAdapter);
-// Highlighter highlighter = new Highlighter() {
-// @Override
-// public Component highlight(Component renderer, ComponentAdapter adapter) {
-// int viewRow = adapter.row;
-// int modelRow = adapter.convertRowIndexToModel(viewRow);
-// Email row = (Email) tableModel.getEntry(modelRow);
-// boolean highlight = row.getTakenBy() == null;
-// if (highlight) {
-// Font font = renderer.getFont();
-// renderer.setFont(font.deriveFont(Font.BOLD));
-// }
-// return renderer;
-// }
-//
-// @Override
-// public void addChangeListener(ChangeListener l) {
-// }
-//
-// @Override
-// public void removeChangeListener(ChangeListener l) {
-// }
-//
-// @Override
-// public ChangeListener[] getChangeListeners() {
-// return new ChangeListener[0];
-// }
-// };
-// table.addHighlighter(highlighter);
-
- rangeTableModel.addTableModelListener(new TableModelListener() {
- @Override
- public void tableChanged(TableModelEvent e) {
- if (e.getType() == TableModelEvent.INSERT) {
- RangeRow row = rangeTableModel.getEntry(e.getFirstRow());
- getModel().addRangeRow(row);
- }
- }
- });
-
SwingValidator validator = this.ui.getValidator();
listenValidatorValid(validator, model);
@@ -273,20 +270,18 @@
log.debug("closing: " + ui);
}
clearValidators();
-
}
@Override
public boolean quitUI() {
-// boolean result = quitScreen(
-// getModel().isValid(),
-// getModel().isModify(),
-// _("tutti.editCruise.askCancelEditBeforeLeaving.cancelSaveCruise"),
-// _("tutti.editCruise.askSaveBeforeLeaving.saveCruise"),
-// ui.getSaveButton().getAction()
-// );
-// return result;
- return true;
+ boolean result = quitScreen(
+ getModel().isValid(),
+ getModel().isModify(),
+ t("faxtomail.demande.askCancelEditBeforeLeaving.cancelSave"),
+ t("faxtomail.demande.askSaveBeforeLeaving.save"),
+ getContext().getActionFactory().createUIAction(this, SaveDemandeAction.class)
+ );
+ return result;
}
@Override
@@ -294,12 +289,6 @@
return ui.getValidator();
}
- public void saveDemande() {
- SaveDemandeAction action = getContext().getActionFactory().createLogicAction(this, SaveDemandeAction.class);
- action.setDemandeModel(getModel());
- getContext().getActionEngine().runAction(action);
- }
-
public void transmitDemande() {
MailFolderChooserUI dialogContent = new MailFolderChooserUI(ui);
dialogContent.setModel(getModel());
@@ -311,7 +300,7 @@
ReplyFormUIModel model = dialogContent.getModel();
String client = getModel().getClientCode();
model.setObject(client == null ? null : client);
- model.setTo(getModel().getSenderEmailAddress());
+ model.setTo(getModel().getSender());
openFrame(dialogContent, t("faxtomail.reply.title", getModel().getObject()), new Dimension(800, 600));
}
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -36,6 +36,7 @@
import com.franciaflex.faxtomail.persistence.entities.Priority;
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel;
+import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil;
import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentModelAware;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -57,12 +58,19 @@
private static final Log log = LogFactory.getLog(DemandeUIModel.class);
+ public static final String PROPERTY_PF_NB = "pfNb";
+ public static final String PROPERTY_SAV_NB = "savNb";
+
protected final Email editObject = new EmailImpl();
protected History firstOpeningHistory;
protected History lastModificationHistory;
+ protected int pfNb;
+
+ protected int savNb;
+
protected static Binder<DemandeUIModel, Email> toBeanBinder =
BinderFactory.newBinder(DemandeUIModel.class,
Email.class);
@@ -74,11 +82,6 @@
super(fromBeanBinder, toBeanBinder);
}
- public Email toEntity(Email email) {
- toBeanBinder.copy((DemandeUIModel) this, email);
- return email;
- }
-
@Override
public void fromEntity(Email entity) {
super.fromEntity(entity);
@@ -86,36 +89,30 @@
lastModificationHistory = null;
}
- public void setSenderEmailAddress(String senderEmailAddress) {
- Object oldValue = getSenderEmailAddress();
- editObject.setSenderEmailAddress(senderEmailAddress);
- firePropertyChanged(Email.PROPERTY_SENDER_EMAIL_ADDRESS, oldValue, senderEmailAddress);
+ public void setSender(String sender) {
+ Object oldValue = getSender();
+ editObject.setSender(sender);
+ firePropertyChanged(Email.PROPERTY_SENDER, oldValue, sender);
}
- public String getSenderEmailAddress() {
- return editObject.getSenderEmailAddress();
+ public String getSender() {
+ String sender = editObject.getSender();
+ if (sender == null) {
+ sender = t("faxtomail.demande.sender.manualCreation");
+ }
+ return sender;
}
- public void setSenderFaxNumber(String senderFaxNumber) {
- Object oldValue = getSenderFaxNumber();
- editObject.setSenderFaxNumber(senderFaxNumber);
- firePropertyChanged(Email.PROPERTY_SENDER_FAX_NUMBER, oldValue, senderFaxNumber);
+ public void setRecipient(String recipient) {
+ Object oldValue = getRecipient();
+ editObject.setRecipient(recipient);
+ firePropertyChanged(Email.PROPERTY_RECIPIENT, oldValue, recipient);
}
- public String getSenderFaxNumber() {
- return editObject.getSenderFaxNumber();
+ public String getRecipient() {
+ return editObject.getRecipient();
}
- public void setReceptionEmailAddress(String receptionEmailAddress) {
- Object oldValue = getReceptionEmailAddress();
- editObject.setReceptionEmailAddress(receptionEmailAddress);
- firePropertyChanged(Email.PROPERTY_RECEPTION_EMAIL_ADDRESS, oldValue, receptionEmailAddress);
- }
-
- public String getReceptionEmailAddress() {
- return editObject.getReceptionEmailAddress();
- }
-
public void setObject(String object) {
Object oldValue = getObject();
editObject.setObject(object);
@@ -229,11 +226,14 @@
public void findFirstOpeningHistory() {
History result = null;
Date date = null;
- for (History history : getHistory()) {
- if (HistoryType.OPENING.equals(history.getType())) {
- if (date == null || date.after(history.getModificationDate())) {
- date = history.getModificationDate();
- result = history;
+ Collection<History> histories = getHistory();
+ if (histories != null) {
+ for (History history : histories) {
+ if (HistoryType.OPENING.equals(history.getType())) {
+ if (date == null || date.after(history.getModificationDate())) {
+ date = history.getModificationDate();
+ result = history;
+ }
}
}
}
@@ -243,11 +243,15 @@
public void findLastModificationHistory() {
History result = null;
Date date = null;
- for (History history : getHistory()) {
- if (HistoryType.MODIFICATION.equals(history.getType())) {
- if (date == null || date.before(history.getModificationDate())) {
- date = history.getModificationDate();
- result = history;
+ Collection<History> histories = getHistory();
+ if (histories != null) {
+ for (History history : histories) {
+ if (HistoryType.MODIFICATION.equals(history.getType())
+ || HistoryType.CREATION.equals(history.getType())) {
+ if (date == null || date.before(history.getModificationDate())) {
+ date = history.getModificationDate();
+ result = history;
+ }
}
}
}
@@ -262,11 +266,13 @@
}
public FaxToMailUser getFirstOpeningUser() {
- return getFirstOpeningHistory().getFaxToMailUser();
+ History history = getFirstOpeningHistory();
+ return history != null ? history.getFaxToMailUser() : null;
}
public Date getFirstOpeningDate() {
- return getFirstOpeningHistory().getModificationDate();
+ History history = getFirstOpeningHistory();
+ return history != null ? history.getModificationDate() : null;
}
public History getLastModificationHistory() {
@@ -277,11 +283,13 @@
}
public FaxToMailUser getLastModificationUser() {
- return getLastModificationHistory().getFaxToMailUser();
+ History history = getLastModificationHistory();
+ return history != null ? history.getFaxToMailUser() : null;
}
public Date getLastModificationDate() {
- return getLastModificationHistory().getModificationDate();
+ History history = getLastModificationHistory();
+ return history != null ? history.getModificationDate() : null;
}
@Override
@@ -332,6 +340,9 @@
}
public void setRangeRow(Collection<RangeRow> rangeRow) {
+ if (rangeRow == null) {
+ rangeRow = new ArrayList<RangeRow>();
+ }
editObject.setRangeRow(rangeRow);
firePropertyChange(Email.PROPERTY_RANGE_ROW, null, getRangeRow());
}
@@ -344,6 +355,26 @@
editObject.setMailFolder(mailFolder);
}
+ public int getPfNb() {
+ return pfNb;
+ }
+
+ public void setPfNb(int pfNb) {
+ Object oldValue = getPfNb();
+ this.pfNb = pfNb;
+ firePropertyChange(PROPERTY_PF_NB, oldValue, pfNb);
+ }
+
+ public int getSavNb() {
+ return savNb;
+ }
+
+ public void setSavNb(int savNb) {
+ Object oldValue = getSavNb();
+ this.savNb = savNb;
+ firePropertyChange(PROPERTY_SAV_NB, oldValue, savNb);
+ }
+
@Override
protected Email newEntity() {
return new EmailImpl();
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,20 +0,0 @@
-#navigationTree {
- font-size: "11";
- rootVisible: false;
- showsRootHandles: true;
-}
-
-#cancelButton {
- actionIcon: cancel;
- text: "faxtomail.chooseMailFolder.action.cancel";
- toolTipText: "faxtomail.chooseMailFolder.action.cancel.tip";
- i18nMnemonic: "faxtomail.chooseMailFolder.action.cancel.mnemonic";
-}
-
-#validateButton {
- actionIcon: validate;
- text: "faxtomail.chooseMailFolder.action.validate";
- toolTipText: "faxtomail.chooseMailFolder.action.validate.tip";
- i18nMnemonic: "faxtomail.chooseMailFolder.action.validate.mnemonic";
- _applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.TransmitAction.class};
-}
\ No newline at end of file
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,18 @@
+#navigationTree {
+ font-size: "11";
+ rootVisible: false;
+ showsRootHandles: true;
+}
+
+#cancelButton {
+ actionIcon: cancel;
+ text: "faxtomail.chooseMailFolder.action.cancel";
+ toolTipText: "faxtomail.chooseMailFolder.action.cancel.tip";
+}
+
+#validateButton {
+ actionIcon: validate;
+ text: "faxtomail.chooseMailFolder.action.validate";
+ toolTipText: "faxtomail.chooseMailFolder.action.validate.tip";
+ _applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.TransmitAction.class};
+}
\ No newline at end of file
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,30 +0,0 @@
-<JPanel id='mailFolderChooser' layout='{new BorderLayout()}'
- implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<DemandeUIModel, MailFolderChooserUIHandler>'>
-
- <import>
- com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI
- com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil
-
- javax.swing.tree.DefaultTreeModel
- </import>
-
- <script><![CDATA[
-
- public MailFolderChooserUI(FaxToMailUI parentUI) {
- FaxToMailUIUtil.setParentUI(this, parentUI);
- }
-
- ]]></script>
-
- <DemandeUIModel id='model' javaBean='null'/>
-
- <JScrollPane constraints='BorderLayout.CENTER'>
- <JTree id="navigationTree"/>
- </JScrollPane>
-
- <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
- <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='validateButton'/>
- </JPanel>
-
-</JPanel>
\ No newline at end of file
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,30 @@
+<JPanel id='mailFolderChooser' layout='{new BorderLayout()}'
+ implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<DemandeUIModel, MailFolderChooserUIHandler>'>
+
+ <import>
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil
+
+ javax.swing.tree.DefaultTreeModel
+ </import>
+
+ <script><![CDATA[
+
+ public MailFolderChooserUI(FaxToMailUI parentUI) {
+ FaxToMailUIUtil.setParentUI(this, parentUI);
+ }
+
+ ]]></script>
+
+ <DemandeUIModel id='model' javaBean='null'/>
+
+ <JScrollPane constraints='BorderLayout.CENTER'>
+ <JTree id="navigationTree"/>
+ </JScrollPane>
+
+ <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
+ <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='validateButton'/>
+ </JPanel>
+
+</JPanel>
\ No newline at end of file
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,86 +0,0 @@
-package com.franciaflex.faxtomail.ui.swing.content.demande;
-
-import com.franciaflex.faxtomail.persistence.entities.Company;
-import com.franciaflex.faxtomail.persistence.entities.MailFolder;
-import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
-import com.franciaflex.faxtomail.ui.swing.util.Cancelable;
-import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil;
-import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode;
-import jaxx.runtime.validator.swing.SwingValidator;
-
-import javax.swing.*;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Kevin Morin (Code Lutin)
- * @since x.x
- */
-public class MailFolderChooserUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, MailFolderChooserUI> implements Cancelable {
-
- @Override
- public void afterInit(MailFolderChooserUI mailFolderChooserUI) {
- initUI(mailFolderChooserUI);
-
- // init tree
- Company franciaflex = getContext().getCurrentCompany();
- Collection<MailFolder> folders = franciaflex.getMailFolder();
- JTree navigationTree = ui.getNavigationTree();
- Map<MailFolder, DefaultMutableTreeNode> nodesByFolder =
- FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, folders);
-
- navigationTree.addTreeSelectionListener(new TreeSelectionListener() {
- @Override
- public void valueChanged(TreeSelectionEvent e) {
- FolderTreeNode folderNode = (FolderTreeNode) e.getPath().getLastPathComponent();
- MailFolder folder = folderNode.getMailFolder();
- getModel().setMailFolder(folder);
- }
- });
- }
-
- @Override
- public void onCloseUI() {
- }
-
- @Override
- public SwingValidator<DemandeUIModel> getValidator() {
- return null;
- }
-
- @Override
- public void cancel() {
- closeDialog();
- }
-
- @Override
- protected JComponent getComponentToFocus() {
- return ui.getNavigationTree();
- }
-
- /**
- * Creates the tree nodes and returns a map of the nodes by folder
- * @param parent the node parent
- * @param folder the folder to add to the tree
- * @return the map of the nodes by folder
- */
- protected Map<MailFolder, DefaultMutableTreeNode> createFolderTree(DefaultMutableTreeNode parent, MailFolder folder) {
- Map<MailFolder, DefaultMutableTreeNode> result = new HashMap<MailFolder, DefaultMutableTreeNode>();
-
- DefaultMutableTreeNode node = new FolderTreeNode(folder);
- result.put(folder, node);
-
- parent.add(node);
- if (folder.isChildrenNotEmpty()) {
- for (MailFolder child : folder.getChildren()) {
- result.putAll(createFolderTree(node, child));
- }
- }
- return result;
- }
-
-}
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/MailFolderChooserUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,88 @@
+package com.franciaflex.faxtomail.ui.swing.content.demande;
+
+import com.franciaflex.faxtomail.persistence.entities.Company;
+import com.franciaflex.faxtomail.persistence.entities.MailFolder;
+import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel;
+import com.franciaflex.faxtomail.ui.swing.content.demande.MailFolderChooserUI;
+import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
+import com.franciaflex.faxtomail.ui.swing.util.Cancelable;
+import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil;
+import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode;
+import jaxx.runtime.validator.swing.SwingValidator;
+
+import javax.swing.*;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.tree.DefaultMutableTreeNode;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class MailFolderChooserUIHandler extends AbstractFaxToMailUIHandler<DemandeUIModel, MailFolderChooserUI> implements Cancelable {
+
+ @Override
+ public void afterInit(MailFolderChooserUI mailFolderChooserUI) {
+ initUI(mailFolderChooserUI);
+
+ // init tree
+ Company franciaflex = getContext().getCurrentCompany();
+ Collection<MailFolder> folders = franciaflex.getMailFolder();
+ JTree navigationTree = ui.getNavigationTree();
+ Map<MailFolder, DefaultMutableTreeNode> nodesByFolder =
+ FaxToMailUIUtil.initFolderTree(getContext(), navigationTree, folders);
+
+ navigationTree.addTreeSelectionListener(new TreeSelectionListener() {
+ @Override
+ public void valueChanged(TreeSelectionEvent e) {
+ FolderTreeNode folderNode = (FolderTreeNode) e.getPath().getLastPathComponent();
+ MailFolder folder = folderNode.getMailFolder();
+ getModel().setMailFolder(folder);
+ }
+ });
+ }
+
+ @Override
+ public void onCloseUI() {
+ }
+
+ @Override
+ public SwingValidator<DemandeUIModel> getValidator() {
+ return null;
+ }
+
+ @Override
+ public void cancel() {
+ closeDialog();
+ }
+
+ @Override
+ protected JComponent getComponentToFocus() {
+ return ui.getNavigationTree();
+ }
+
+ /**
+ * Creates the tree nodes and returns a map of the nodes by folder
+ * @param parent the node parent
+ * @param folder the folder to add to the tree
+ * @return the map of the nodes by folder
+ */
+ protected Map<MailFolder, DefaultMutableTreeNode> createFolderTree(DefaultMutableTreeNode parent, MailFolder folder) {
+ Map<MailFolder, DefaultMutableTreeNode> result = new HashMap<MailFolder, DefaultMutableTreeNode>();
+
+ DefaultMutableTreeNode node = new FolderTreeNode(folder);
+ result.put(folder, node);
+
+ parent.add(node);
+ if (folder.isChildrenNotEmpty()) {
+ for (MailFolder child : folder.getChildren()) {
+ result.putAll(createFolderTree(node, child));
+ }
+ }
+ return result;
+ }
+
+}
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.css (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,7 @@
+#rangeTable {
+ editable: false;
+}
+
+#okButton {
+ text: "faxtomail.quantitiesByRange.button.text";
+}
\ No newline at end of file
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.jaxx (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,30 @@
+<JPanel id='quantitiesByRangeUI' layout='{new BorderLayout()}'
+ implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<QuantitiesByRangeUIModel, QuantitiesByRangeUIHandler>'>
+
+ <import>
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil
+
+ org.jdesktop.swingx.JXTable
+ </import>
+
+ <script><![CDATA[
+
+ public QuantitiesByRangeUI(FaxToMailUI parentUI) {
+ FaxToMailUIUtil.setParentUI(this, parentUI);
+ }
+
+ ]]></script>
+
+ <QuantitiesByRangeUIModel id='model'
+ initializer='getContextValue(QuantitiesByRangeUIModel.class)'/>
+
+ <JScrollPane constraints='BorderLayout.CENTER'>
+ <JXTable id='rangeTable'/>
+ </JScrollPane>
+
+ <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
+ <JButton id='okButton' onActionPerformed='handler.cancel()'/>
+ </JPanel>
+
+</JPanel>
\ No newline at end of file
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIHandler.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,92 @@
+package com.franciaflex.faxtomail.ui.swing.content.demande;
+
+import com.franciaflex.faxtomail.persistence.entities.Range;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
+import jaxx.runtime.validator.swing.SwingValidator;
+import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+import org.jdesktop.swingx.table.TableColumnModelExt;
+import org.nuiton.jaxx.application.swing.util.Cancelable;
+
+import javax.swing.*;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.List;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class QuantitiesByRangeUIHandler extends AbstractFaxToMailUIHandler<QuantitiesByRangeUIModel, QuantitiesByRangeUI> implements Cancelable {
+
+ protected RangeTableModel rangeTableModel;
+
+ @Override
+ public void beforeInit(QuantitiesByRangeUI ui) {
+ super.beforeInit(ui);
+
+ QuantitiesByRangeUIModel dialogModel = new QuantitiesByRangeUIModel();
+ dialogModel.setRootFolder(getContext().getCurrentMailFolder());
+ this.ui.setContextValue(dialogModel);
+ }
+
+ @Override
+ public void afterInit(QuantitiesByRangeUI quantitiesByRangeUI) {
+ initUI(quantitiesByRangeUI);
+
+ final JXTable table = ui.getRangeTable();
+
+ TableColumnModelExt columnModel = new DefaultTableColumnModelExt();
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Range.class),
+ RangeTableModel.RANGE_COLUMN);
+ addIntegerColumnToModel(columnModel,
+ RangeTableModel.PRODUCT_QUANTITY_COLUMN,
+ null,
+ table);
+ addIntegerColumnToModel(columnModel,
+ RangeTableModel.SAV_QUANTITY_COLUMN,
+ null,
+ table);
+
+ rangeTableModel = new RangeTableModel(columnModel);
+ rangeTableModel.setRows(getModel().getRangeRows());
+ table.setModel(rangeTableModel);
+ table.setColumnModel(columnModel);
+ table.getTableHeader().setReorderingAllowed(false);
+
+ getModel().addPropertyChangeListener(QuantitiesByRangeUIModel.PROPERTY_RANGE_ROWS,
+ new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ setRangeRows((List<RangeRowModel>) evt.getNewValue());
+ }
+ });
+ }
+
+ @Override
+ public SwingValidator<QuantitiesByRangeUIModel> getValidator() {
+ return null;
+ }
+
+ @Override
+ protected JComponent getComponentToFocus() {
+ return null;
+ }
+
+ @Override
+ public void onCloseUI() {
+
+ }
+
+ @Override
+ public void cancel() {
+ closeDialog();
+ }
+
+ public void setRangeRows(List<RangeRowModel> rows) {
+ rangeTableModel.setRows(rows);
+ }
+}
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIModel.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/QuantitiesByRangeUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,43 @@
+package com.franciaflex.faxtomail.ui.swing.content.demande;
+
+import com.franciaflex.faxtomail.persistence.entities.MailFolder;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel;
+import org.jdesktop.beans.AbstractSerializableBean;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class QuantitiesByRangeUIModel extends AbstractSerializableBean {
+
+ public static final String PROPERTY_ROOT_FOLDER = "rootFolder";
+ public static final String PROPERTY_RANGE_ROWS = "rangeRows";
+
+ protected MailFolder rootFolder;
+
+ protected List<RangeRowModel> rangeRows = new ArrayList<RangeRowModel>();
+
+ public MailFolder getRootFolder() {
+ return rootFolder;
+ }
+
+ public void setRootFolder(MailFolder rootFolder) {
+ Object oldValue = getRootFolder();
+ this.rootFolder = rootFolder;
+ firePropertyChange(PROPERTY_ROOT_FOLDER, oldValue, rootFolder);
+ }
+
+ public List<RangeRowModel> getRangeRows() {
+ return rangeRows;
+ }
+
+ public void setRangeRows(Collection<RangeRowModel> rangeRows) {
+ this.rangeRows = new ArrayList<RangeRowModel>(rangeRows);
+ firePropertyChange(PROPERTY_RANGE_ROWS, null, this.rangeRows);
+ }
+}
Added: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeRowModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,85 @@
+package com.franciaflex.faxtomail.ui.swing.content.demande;
+
+import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.persistence.entities.EmailImpl;
+import com.franciaflex.faxtomail.persistence.entities.History;
+import com.franciaflex.faxtomail.persistence.entities.Range;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
+import com.franciaflex.faxtomail.persistence.entities.RangeRowImpl;
+import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailBeanUIModel;
+import org.nuiton.util.beans.Binder;
+import org.nuiton.util.beans.BinderFactory;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class RangeRowModel extends AbstractFaxToMailBeanUIModel<RangeRow, RangeRowModel> {
+
+ protected final RangeRow editObject = new RangeRowImpl();
+
+ protected static Binder<RangeRowModel, RangeRow> toBeanBinder =
+ BinderFactory.newBinder(RangeRowModel.class,
+ RangeRow.class);
+
+ protected static Binder<RangeRow, RangeRowModel> fromBeanBinder =
+ BinderFactory.newBinder(RangeRow.class, RangeRowModel.class);
+
+
+ public RangeRowModel() {
+ super(fromBeanBinder, toBeanBinder);
+ }
+
+ public void setCommandNumber(String commandNumber) {
+ Object oldValue = getCommandNumber();
+ editObject.setCommandNumber(commandNumber);
+ firePropertyChange(RangeRow.PROPERTY_COMMAND_NUMBER, oldValue, commandNumber);
+ }
+
+ public String getCommandNumber() {
+ return editObject.getCommandNumber();
+ }
+
+ public void setProductQuantity(Integer productQuantity) {
+ Object oldValue = getProductQuantity();
+ editObject.setProductQuantity(productQuantity);
+ firePropertyChange(RangeRow.PROPERTY_PRODUCT_QUANTITY, oldValue, productQuantity);
+ }
+
+ public Integer getProductQuantity() {
+ return editObject.getProductQuantity();
+ }
+
+ public void setSavQuantity(Integer savQuantity) {
+ Object oldValue = getSavQuantity();
+ editObject.setSavQuantity(savQuantity);
+ firePropertyChange(RangeRow.PROPERTY_SAV_QUANTITY, oldValue, savQuantity);
+ }
+
+ public Integer getSavQuantity() {
+ return editObject.getSavQuantity();
+ }
+
+ public void setRange(Range range) {
+ Object oldValue = getRange();
+ editObject.setRange(range);
+ firePropertyChange(RangeRow.PROPERTY_RANGE, oldValue, range);
+ }
+
+ public Range getRange() {
+ return editObject.getRange();
+ }
+
+ public String getTopiaId() {
+ return editObject.getTopiaId();
+ }
+
+ public void setTopiaId(String id) {
+ editObject.setTopiaId(id);
+ }
+
+ @Override
+ protected RangeRow newEntity() {
+ return new RangeRowImpl();
+ }
+}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/RangeTableModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -2,17 +2,21 @@
import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.persistence.entities.RangeRowImpl;
+import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.table.TableColumnModelExt;
import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
import static org.nuiton.i18n.I18n.n;
/**
* @author Kevin Morin (Code Lutin)
* @since x.x
*/
-public class RangeTableModel extends AbstractApplicationTableModel<RangeRow> {
+public class RangeTableModel extends AbstractApplicationTableModel<RangeRowModel> {
public static final ColumnIdentifier<RangeRow> RANGE_COLUMN = ColumnIdentifier.newId(
RangeRow.PROPERTY_RANGE,
@@ -40,7 +44,7 @@
}
@Override
- public RangeRow createNewRow() {
- return new RangeRowImpl();
+ public RangeRowModel createNewRow() {
+ return new RangeRowModel();
}
}
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,42 +0,0 @@
-#fromLabel {
- text: "faxtomail.reply.from";
-}
-
-#toLabel {
- text: "faxtomail.reply.to";
-}
-
-#toField {
- text: {model.getTo()};
-}
-
-#objectLabel {
- text: "faxtomail.reply.object";
-}
-
-#objectField {
- text: {model.getObject()};
-}
-
-#attachmentCheckbox {
- text: "faxtomail.reply.attachment";
-}
-
-#attachmentButton {
- enabled: {attachmentCheckbox.isSelected()};
-}
-
-#cancelButton {
- actionIcon: cancel;
- text: "faxtomail.reply.action.cancel";
- toolTipText: "faxtomail.reply.action.cancel.tip";
- i18nMnemonic: "faxtomail.reply.action.cancel.mnemonic";
-}
-
-#validateButton {
- actionIcon: validate;
- text: "faxtomail.reply.action.validate";
- toolTipText: "faxtomail.reply.action.validate.tip";
- i18nMnemonic: "faxtomail.reply.action.validate.mnemonic";
- _applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.ReplyAction.class};
-}
\ No newline at end of file
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.jaxx 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,105 +0,0 @@
-<!--
- #%L
- FaxToMail :: UI
- %%
- Copyright (C) 2014 Franciaflex
- %%
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public
- License along with this program. If not, see
- <http://www.gnu.org/licenses/gpl-3.0.html>.
- #L%
- -->
-<JPanel id='replyPanel' layout='{new BorderLayout()}'
- implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<ReplyFormUIModel, ReplyFormUIHandler>'>
-
- <import>
- com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext
- com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI
- com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil
- com.franciaflex.faxtomail.ui.swing.util.attachment.ButtonAttachment
-
- com.franciaflex.faxtomail.persistence.entities.Email
- com.franciaflex.faxtomail.persistence.entities.DemandType
- com.franciaflex.faxtomail.persistence.entities.DemandStatus
- com.franciaflex.faxtomail.persistence.entities.Range
- com.franciaflex.faxtomail.persistence.entities.Priority
-
- jaxx.runtime.swing.editor.bean.BeanFilterableComboBox
-
- org.jdesktop.swingx.JXDatePicker
- org.jdesktop.swingx.JXTitledPanel
-
- java.text.SimpleDateFormat
- java.util.Date
- </import>
-
- <script><![CDATA[
-
- public ReplyFormUI(FaxToMailUI parentUI) {
- FaxToMailUIUtil.setParentUI(this, parentUI);
- }
-
- ]]></script>
-
- <ReplyFormUIModel id='model'
- initializer='getContextValue(ReplyFormUIModel.class)'/>
-
- <Table constraints='BorderLayout.CENTER'
- fill='both'>
- <row>
- <cell>
- <JLabel id="fromLabel"/>
- </cell>
- <cell weightx='1'>
- <JTextField id="fromField"/>
- </cell>
- </row>
- <row>
- <cell>
- <JLabel id="toLabel"/>
- </cell>
- <cell weightx='1'>
- <JTextField id="toField"/>
- </cell>
- </row>
- <row>
- <cell>
- <JLabel id="objectLabel"/>
- </cell>
- <cell weightx='1'>
- <JTextField id="objectField"/>
- </cell>
- </row>
- <row>
- <cell columns='2'>
- <JPanel layout='{new BorderLayout()}'>
- <JCheckBox id="attachmentCheckbox" constraints="BorderLayout.CENTER"/>
- <ButtonAttachment id="attachmentButton"
- constructorParams="model"
- constraints="BorderLayout.EAST"/>
- </JPanel>
- </cell>
- </row>
- <row weighty='1'>
- <cell columns='2'>
- <JEditorPane id="message" />
- </cell>
- </row>
- </Table>
-
- <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
- <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
- <JButton id='validateButton'/>
- </JPanel>
-
-</JPanel>
\ No newline at end of file
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,54 +0,0 @@
-package com.franciaflex.faxtomail.ui.swing.content.demande;
-
-import com.franciaflex.faxtomail.ui.swing.actions.ReplyAction;
-import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
-import com.franciaflex.faxtomail.ui.swing.util.Cancelable;
-import jaxx.runtime.validator.swing.SwingValidator;
-
-import javax.swing.*;
-import javax.swing.text.html.HTMLEditorKit;
-
-/**
- * @author Kevin Morin (Code Lutin)
- * @since x.x
- */
-public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIModel, ReplyFormUI> implements Cancelable {
-
- @Override
- public void beforeInit(ReplyFormUI ui) {
-
- super.beforeInit(ui);
-
- ReplyFormUIModel model = new ReplyFormUIModel();
-
- this.ui.setContextValue(model);
- }
-
- @Override
- public void afterInit(ReplyFormUI replyFormUIModel) {
- initUI(ui);
-
- JEditorPane editor = ui.getMessage();
- editor.setEditorKitForContentType("text/html", new HTMLEditorKit());
- editor.setContentType("text/html");
- }
-
- @Override
- public void cancel() {
- getParentContainer(JFrame.class).setVisible(false);
- }
-
- @Override
- public void onCloseUI() {
- }
-
- @Override
- public SwingValidator<ReplyFormUIModel> getValidator() {
- return null;
- }
-
- @Override
- protected JComponent getComponentToFocus() {
- return null;
- }
-}
Deleted: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,90 +0,0 @@
-package com.franciaflex.faxtomail.ui.swing.content.demande;
-
-import com.franciaflex.faxtomail.persistence.entities.Attachment;
-import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentModelAware;
-import org.jdesktop.beans.AbstractSerializableBean;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- * @author Kevin Morin (Code Lutin)
- * @since x.x
- */
-public class ReplyFormUIModel extends AbstractSerializableBean implements AttachmentModelAware {
-
- public static final String PROPERTY_TO = "to";
- public static final String PROPERTY_FROM = "from";
- public static final String PROPERTY_OBJECT = "object";
- public static final String PROPERTY_MESSAGE = "message";
-
- protected String to;
- protected String from;
- protected String object;
- protected String message;
- protected List<Attachment> attachments = new ArrayList<Attachment>();
-
- public String getTo() {
- return to;
- }
-
- public void setTo(String to) {
- Object oldValue = getTo();
- this.to = to;
- firePropertyChange(PROPERTY_TO, oldValue, to);
- }
-
- public String getFrom() {
- return from;
- }
-
- public void setFrom(String from) {
- Object oldValue = getFrom();
- this.from = from;
- firePropertyChange(PROPERTY_FROM, oldValue, from);
- }
-
- public String getObject() {
- return object;
- }
-
- public void setObject(String object) {
- Object oldValue = getObject();
- this.object = object;
- firePropertyChange(PROPERTY_OBJECT, oldValue, object);
- }
-
- public String getMessage() {
- return message;
- }
-
- public void setMessage(String message) {
- Object oldValue = getMessage();
- this.message = message;
- firePropertyChange(PROPERTY_MESSAGE, oldValue, message);
- }
-
- @Override
- public Collection<Attachment> getAttachment() {
- return attachments;
- }
-
- @Override
- public void addAllAttachment(Collection<Attachment> attachments) {
- this.attachments.addAll(attachments);
- firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void addAttachment(Attachment attachment) {
- attachments.add(attachment);
- firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, null, getAttachment());
- }
-
- @Override
- public void removeAttachment(Attachment attachment) {
- attachments.remove(attachment);
- firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, null, getAttachment());
- }
-}
Copied: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.css (from rev 16, trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.css)
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.css (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,40 @@
+#fromLabel {
+ text: "faxtomail.reply.from";
+}
+
+#toLabel {
+ text: "faxtomail.reply.to";
+}
+
+#toField {
+ text: {model.getTo()};
+}
+
+#objectLabel {
+ text: "faxtomail.reply.object";
+}
+
+#objectField {
+ text: {model.getObject()};
+}
+
+#attachmentCheckbox {
+ text: "faxtomail.reply.attachment";
+}
+
+#attachmentButton {
+ enabled: {attachmentCheckbox.isSelected()};
+}
+
+#cancelButton {
+ actionIcon: cancel;
+ text: "faxtomail.reply.action.cancel";
+ toolTipText: "faxtomail.reply.action.cancel.tip";
+}
+
+#validateButton {
+ actionIcon: validate;
+ text: "faxtomail.reply.action.validate";
+ toolTipText: "faxtomail.reply.action.validate.tip";
+ _applicationAction: {com.franciaflex.faxtomail.ui.swing.actions.ReplyAction.class};
+}
\ No newline at end of file
Copied: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.jaxx (from rev 16, trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUI.jaxx)
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.jaxx (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUI.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,100 @@
+<!--
+ #%L
+ FaxToMail :: UI
+ %%
+ Copyright (C) 2014 Franciaflex
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+<JPanel id='replyPanel' layout='{new BorderLayout()}'
+ implements='com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI<ReplyFormUIModel, ReplyFormUIHandler>'>
+
+ <import>
+ com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUI
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil
+ com.franciaflex.faxtomail.ui.swing.util.attachment.ButtonAttachment
+
+ com.franciaflex.faxtomail.persistence.entities.Email
+ com.franciaflex.faxtomail.persistence.entities.DemandType
+ com.franciaflex.faxtomail.persistence.entities.DemandStatus
+ com.franciaflex.faxtomail.persistence.entities.Range
+ com.franciaflex.faxtomail.persistence.entities.Priority
+
+ java.text.SimpleDateFormat
+ java.util.Date
+ </import>
+
+ <script><![CDATA[
+
+ public ReplyFormUI(FaxToMailUI parentUI) {
+ FaxToMailUIUtil.setParentUI(this, parentUI);
+ }
+
+ ]]></script>
+
+ <ReplyFormUIModel id='model'
+ initializer='getContextValue(ReplyFormUIModel.class)'/>
+
+ <Table constraints='BorderLayout.CENTER'
+ fill='both'>
+ <row>
+ <cell>
+ <JLabel id="fromLabel"/>
+ </cell>
+ <cell weightx='1'>
+ <JTextField id="fromField"/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel id="toLabel"/>
+ </cell>
+ <cell weightx='1'>
+ <JTextField id="toField"/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel id="objectLabel"/>
+ </cell>
+ <cell weightx='1'>
+ <JTextField id="objectField"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='2'>
+ <JPanel layout='{new BorderLayout()}'>
+ <JCheckBox id="attachmentCheckbox" constraints="BorderLayout.CENTER"/>
+ <ButtonAttachment id="attachmentButton"
+ constructorParams="model"
+ constraints="BorderLayout.EAST"/>
+ </JPanel>
+ </cell>
+ </row>
+ <row weighty='1'>
+ <cell columns='2'>
+ <JEditorPane id="message" />
+ </cell>
+ </row>
+ </Table>
+
+ <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'>
+ <JButton id='cancelButton' onActionPerformed='handler.cancel()'/>
+ <JButton id='validateButton'/>
+ </JPanel>
+
+</JPanel>
\ No newline at end of file
Copied: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java (from rev 12, trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIHandler.java)
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,53 @@
+package com.franciaflex.faxtomail.ui.swing.content.reply;
+
+import com.franciaflex.faxtomail.ui.swing.util.AbstractFaxToMailUIHandler;
+import com.franciaflex.faxtomail.ui.swing.util.Cancelable;
+import jaxx.runtime.validator.swing.SwingValidator;
+
+import javax.swing.*;
+import javax.swing.text.html.HTMLEditorKit;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class ReplyFormUIHandler extends AbstractFaxToMailUIHandler<ReplyFormUIModel, ReplyFormUI> implements Cancelable {
+
+ @Override
+ public void beforeInit(ReplyFormUI ui) {
+
+ super.beforeInit(ui);
+
+ ReplyFormUIModel model = new ReplyFormUIModel();
+
+ this.ui.setContextValue(model);
+ }
+
+ @Override
+ public void afterInit(ReplyFormUI replyFormUIModel) {
+ initUI(ui);
+
+ JEditorPane editor = ui.getMessage();
+ editor.setEditorKitForContentType("text/html", new HTMLEditorKit());
+ editor.setContentType("text/html");
+ }
+
+ @Override
+ public void cancel() {
+ getParentContainer(JFrame.class).setVisible(false);
+ }
+
+ @Override
+ public void onCloseUI() {
+ }
+
+ @Override
+ public SwingValidator<ReplyFormUIModel> getValidator() {
+ return null;
+ }
+
+ @Override
+ protected JComponent getComponentToFocus() {
+ return null;
+ }
+}
Copied: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java (from rev 12, trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/ReplyFormUIModel.java)
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java (rev 0)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -0,0 +1,90 @@
+package com.franciaflex.faxtomail.ui.swing.content.reply;
+
+import com.franciaflex.faxtomail.persistence.entities.Attachment;
+import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentModelAware;
+import org.jdesktop.beans.AbstractSerializableBean;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author Kevin Morin (Code Lutin)
+ * @since x.x
+ */
+public class ReplyFormUIModel extends AbstractSerializableBean implements AttachmentModelAware {
+
+ public static final String PROPERTY_TO = "to";
+ public static final String PROPERTY_FROM = "from";
+ public static final String PROPERTY_OBJECT = "object";
+ public static final String PROPERTY_MESSAGE = "message";
+
+ protected String to;
+ protected String from;
+ protected String object;
+ protected String message;
+ protected List<Attachment> attachments = new ArrayList<Attachment>();
+
+ public String getTo() {
+ return to;
+ }
+
+ public void setTo(String to) {
+ Object oldValue = getTo();
+ this.to = to;
+ firePropertyChange(PROPERTY_TO, oldValue, to);
+ }
+
+ public String getFrom() {
+ return from;
+ }
+
+ public void setFrom(String from) {
+ Object oldValue = getFrom();
+ this.from = from;
+ firePropertyChange(PROPERTY_FROM, oldValue, from);
+ }
+
+ public String getObject() {
+ return object;
+ }
+
+ public void setObject(String object) {
+ Object oldValue = getObject();
+ this.object = object;
+ firePropertyChange(PROPERTY_OBJECT, oldValue, object);
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ Object oldValue = getMessage();
+ this.message = message;
+ firePropertyChange(PROPERTY_MESSAGE, oldValue, message);
+ }
+
+ @Override
+ public Collection<Attachment> getAttachment() {
+ return attachments;
+ }
+
+ @Override
+ public void addAllAttachment(Collection<Attachment> attachments) {
+ this.attachments.addAll(attachments);
+ firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void addAttachment(Attachment attachment) {
+ attachments.add(attachment);
+ firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+
+ @Override
+ public void removeAttachment(Attachment attachment) {
+ attachments.remove(attachment);
+ firePropertyChange(AttachmentModelAware.PROPERTY_ATTACHMENT, null, getAttachment());
+ }
+}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -41,7 +41,6 @@
actionIcon: list;
text: "faxtomail.search.action.gotoFolder";
toolTipText: "faxtomail.search.action.gotoFolder.tip";
- i18nMnemonic: "faxtomail.search.action.gotoFolder.mnemonic";
}
#modifiedByLabel {
@@ -101,7 +100,7 @@
}
#senderField {
- text: {model.getSenderEmailAddress()};
+ text: {model.getSender()};
}
#clientLabel {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -87,24 +87,24 @@
super.fromEntity(entity);
}
- public void setSenderEmailAddress(String senderEmailAddress) {
- Object oldValue = getSenderEmailAddress();
- editObject.setSenderEmailAddress(senderEmailAddress);
- firePropertyChanged(Email.PROPERTY_SENDER_EMAIL_ADDRESS, oldValue, senderEmailAddress);
+ public void setSender(String sender) {
+ Object oldValue = getSender();
+ editObject.setSender(sender);
+ firePropertyChanged(Email.PROPERTY_SENDER, oldValue, sender);
}
- public String getSenderEmailAddress() {
- return editObject.getSenderEmailAddress();
+ public String getSender() {
+ return editObject.getSender();
}
- public void setReceptionEmailAddress(String receptionEmailAddress) {
- Object oldValue = getReceptionEmailAddress();
- editObject.setReceptionEmailAddress(receptionEmailAddress);
- firePropertyChanged(Email.PROPERTY_RECEPTION_EMAIL_ADDRESS, oldValue, receptionEmailAddress);
+ public void setRecipient(String recipient) {
+ Object oldValue = getRecipient();
+ editObject.setRecipient(recipient);
+ firePropertyChanged(Email.PROPERTY_RECIPIENT, oldValue, recipient);
}
- public String getReceptionEmailAddress() {
- return editObject.getReceptionEmailAddress();
+ public String getRecipient() {
+ return editObject.getRecipient();
}
public void setObject(String object) {
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailBeanUIModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailBeanUIModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailBeanUIModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -22,6 +22,7 @@
* #L%
*/
+import com.franciaflex.faxtomail.persistence.entities.Email;
import org.jdesktop.beans.AbstractSerializableBean;
import org.nuiton.jaxx.application.listener.PropagatePropertyChangeListener;
import org.nuiton.util.CollectionUtil;
@@ -70,6 +71,11 @@
return toBean();
}
+ public E toEntity(E entity) {
+ toBeanBinder.copy((B) this, entity);
+ return entity;
+ }
+
public final void fromBean(E bean) {
fromBeanBinder.copy(bean, (B) this);
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailDemandListHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,17 +1,25 @@
package com.franciaflex.faxtomail.ui.swing.util;
+import com.franciaflex.faxtomail.persistence.entities.Attachment;
import com.franciaflex.faxtomail.persistence.entities.Company;
import com.franciaflex.faxtomail.persistence.entities.Email;
+import com.franciaflex.faxtomail.persistence.entities.HasLabel;
+import com.franciaflex.faxtomail.persistence.entities.Priority;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
+import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentCellEditor;
+import com.franciaflex.faxtomail.ui.swing.util.attachment.AttachmentCellRenderer;
import org.apache.commons.lang3.StringUtils;
import org.jdesktop.swingx.JXTable;
import org.jdesktop.swingx.decorator.ComponentAdapter;
import org.jdesktop.swingx.decorator.Highlighter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
import org.jdesktop.swingx.table.TableColumnModelExt;
+import org.nuiton.decorator.Decorator;
import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import javax.swing.event.ChangeListener;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
@@ -30,16 +38,60 @@
String columns = franciaflex.getConfiguration().getTableColumns();
if (columns == null) {
columns = StringUtils.join(new String[]{
- Email.PROPERTY_OBJECT, Email.PROPERTY_RECEPTION_DATE, Email.PROPERTY_SENDER_EMAIL_ADDRESS
+ Email.PROPERTY_PRIORITY,
+ Email.PROPERTY_DEMAND_TYPE,
+ Email.PROPERTY_OBJECT,
+ Email.PROPERTY_CLIENT_CODE,
+ Email.PROPERTY_SENDER,
+ Email.PROPERTY_PROJECT_REFERENCE,
+ Email.PROPERTY_RECEPTION_DATE,
+ Email.PROPERTY_RECIPIENT,
+ Email.PROPERTY_DEMAND_STATUS,
+ Email.PROPERTY_ETAT_ATTENTE,
+ Email.PROPERTY_ATTACHMENT
}, ',');
}
String[] columnNames = columns.split(",");
for (String columnName : columnNames) {
- addColumnToModel(columnModel,
- null,
- Email.PROPERTY_RECEPTION_DATE.equals(columnName) ? newTableCellRender(Date.class): null,
- DemandeTableModel.COLUMN_IDENTIFIERS.get(columnName))
- .setSortable(true);
+
+ if (Email.PROPERTY_PRIORITY.equals(columnName)) {
+ addComboDataColumnToModel(columnModel,
+ DemandeTableModel.COLUMN_IDENTIFIERS.get(columnName),
+ getDecorator(Priority.class, null),
+ getContext().getReferentielService().getAllPriority());
+
+ } else if (Email.PROPERTY_ATTACHMENT.equals(columnName)) {
+ addColumnToModel(columnModel,
+ AttachmentCellEditor.newEditor(ui),
+ AttachmentCellRenderer.newRender(getDecorator(Attachment.class, null)),
+ DemandeTableModel.COLUMN_IDENTIFIERS.get(columnName));
+
+ } else {
+ TableCellRenderer tableCellRenderer;
+ switch (columnName) {
+ case Email.PROPERTY_RECEPTION_DATE:
+ tableCellRenderer = newTableCellRender(Date.class);
+ break;
+
+ case Email.PROPERTY_DEMAND_STATUS:
+ case Email.PROPERTY_DEMAND_TYPE:
+ case Email.PROPERTY_ETAT_ATTENTE:
+ tableCellRenderer = newTableCellRender(HasLabel.class);
+ break;
+
+ default:
+ tableCellRenderer = newTableCellRender(new Decorator<Object>(Object.class) {
+ @Override
+ public String toString(Object bean) {
+ return bean == null ? "" : bean.toString();
+ }
+ });
+ }
+ addColumnToModel(columnModel,
+ null,
+ tableCellRenderer,
+ DemandeTableModel.COLUMN_IDENTIFIERS.get(columnName));
+ }
}
final AbstractApplicationTableModel<Email> tableModel = new DemandeTableModel(columnModel);
@@ -85,13 +137,16 @@
Email selectedEmail = tableModel.getEntry(rowIndex);
selectedEmail = getContext().getEmailService().addToOpeningHistory(selectedEmail, getContext().getCurrentUser(), new Date());
-
- getContext().setCurrentEmail(selectedEmail);
- getContext().getActionEngine().runAction(new ShowDemandeAction(getContext().getMainUI().getHandler()));
+ openDemand(selectedEmail);
}
}
});
return tableModel;
}
+
+ protected void openDemand(Email selectedEmail) {
+ getContext().setCurrentEmail(selectedEmail);
+ getContext().getActionEngine().runAction(new ShowDemandeAction(getContext().getMainUI().getHandler()));
+ }
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/AbstractFaxToMailUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -128,8 +128,8 @@
return super.decorate(s);
}
- public String decorateUser(FaxToMailUser user) {
- if (user == null) {
+ public String decorateUser(FaxToMailUser user, boolean systemIfNull) {
+ if (user == null && systemIfNull) {
return t("faxtomail.systemUser");
}
return decorate(user);
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/DemandeTableModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -30,7 +30,9 @@
import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import static org.nuiton.i18n.I18n.n;
@@ -45,89 +47,103 @@
LogFactory.getLog(DemandeTableModel.class);
public static final Map<String, ColumnIdentifier<Email>> COLUMN_IDENTIFIERS = new HashMap<String, ColumnIdentifier<Email>>() {{
- put(Email.PROPERTY_SENDER_EMAIL_ADDRESS,
+ put(Email.PROPERTY_SENDER,
ColumnIdentifier.<Email>newReadOnlyId(
- Email.PROPERTY_SENDER_EMAIL_ADDRESS,
- n("faxtomail.demandeList.table.header.senderEmail"),
- n("faxtomail.demandeList.table.header.senderEmail")));
+ Email.PROPERTY_SENDER,
+ n("faxtomail.demandeList.table.header.sender"),
+ n("faxtomail.demandeList.table.header.sender.tip")));
put(Email.PROPERTY_OBJECT,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_OBJECT,
n("faxtomail.demandeList.table.header.object"),
- n("faxtomail.demandeList.table.header.object")));
+ n("faxtomail.demandeList.table.header.object.tip")));
put(Email.PROPERTY_RECEPTION_DATE,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_RECEPTION_DATE,
n("faxtomail.demandeList.table.header.receptionDate"),
- n("faxtomail.demandeList.table.header.receptionDate")));
+ n("faxtomail.demandeList.table.header.receptionDate.tip")));
+ put(Email.PROPERTY_RECIPIENT,
+ ColumnIdentifier.<Email>newReadOnlyId(
+ Email.PROPERTY_RECIPIENT,
+ n("faxtomail.demandeList.table.header.recipient"),
+ n("faxtomail.demandeList.table.header.recipient.tip")));
+
put(Email.PROPERTY_CLIENT_CODE,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_CLIENT_CODE,
n("faxtomail.demandeList.table.header.client"),
- n("faxtomail.demandeList.table.header.client")));
+ n("faxtomail.demandeList.table.header.client.tip")));
put(Email.PROPERTY_DEMAND_STATUS,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_DEMAND_STATUS,
n("faxtomail.demandeList.table.header.status"),
- n("faxtomail.demandeList.table.header.status")));
+ n("faxtomail.demandeList.table.header.status.tip")));
put(Email.PROPERTY_DEMAND_TYPE,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_DEMAND_TYPE,
n("faxtomail.demandeList.table.header.type"),
- n("faxtomail.demandeList.table.header.type")));
+ n("faxtomail.demandeList.table.header.type.tip")));
put(Email.PROPERTY_EDI_CODE_NUMBER,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_EDI_CODE_NUMBER,
n("faxtomail.demandeList.table.header.ediCodeNumber"),
- n("faxtomail.demandeList.table.header.ediCodeNumber")));
+ n("faxtomail.demandeList.table.header.ediCodeNumber.tip")));
put(Email.PROPERTY_ETAT_ATTENTE,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_ETAT_ATTENTE,
n("faxtomail.demandeList.table.header.waitingState"),
- n("faxtomail.demandeList.table.header.waitingState")));
+ n("faxtomail.demandeList.table.header.waitingState.tip")));
put(Email.PROPERTY_TAKEN_BY,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_TAKEN_BY,
n("faxtomail.demandeList.table.header.user"),
- n("faxtomail.demandeList.table.header.user")));
+ n("faxtomail.demandeList.table.header.user.tip")));
put(Email.PROPERTY_MAIL_FOLDER,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_MAIL_FOLDER,
n("faxtomail.demandeList.table.header.folder"),
- n("faxtomail.demandeList.table.header.folder")));
+ n("faxtomail.demandeList.table.header.folder.tip")));
put(Email.PROPERTY_PRIORITY,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_PRIORITY,
n("faxtomail.demandeList.table.header.priority"),
- n("faxtomail.demandeList.table.header.priority")));
+ n("faxtomail.demandeList.table.header.priority.tip")));
put(Email.PROPERTY_PROJECT_REFERENCE,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_PROJECT_REFERENCE,
n("faxtomail.demandeList.table.header.projectReference"),
- n("faxtomail.demandeList.table.header.projectReference")));
+ n("faxtomail.demandeList.table.header.projectReference.tip")));
put(Email.PROPERTY_RANGE_ROW,
ColumnIdentifier.<Email>newReadOnlyId(
Email.PROPERTY_RANGE_ROW,
n("faxtomail.demandeList.table.header.range"),
- n("faxtomail.demandeList.table.header.range")));
+ n("faxtomail.demandeList.table.header.range.tip")));
+ put(Email.PROPERTY_ATTACHMENT,
+ ColumnIdentifier.<Email>newReadOnlyId(
+ Email.PROPERTY_ATTACHMENT,
+ n("faxtomail.demandeList.table.header.attachment"),
+ n("faxtomail.demandeList.table.header.attachment.tip")));
+
}};
public DemandeTableModel(TableColumnModelExt columnModel) {
super(columnModel, false, false);
- setNoneEditableCols();
+ List<ColumnIdentifier> nonEditableColumns = new ArrayList<ColumnIdentifier>(COLUMN_IDENTIFIERS.values());
+ nonEditableColumns.remove(COLUMN_IDENTIFIERS.get(Email.PROPERTY_PRIORITY));
+ setNoneEditableCols(nonEditableColumns.toArray(new ColumnIdentifier[nonEditableColumns.size()]));
}
@Override
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -25,8 +25,10 @@
import com.franciaflex.faxtomail.persistence.entities.Company;
import com.franciaflex.faxtomail.persistence.entities.Email;
import com.franciaflex.faxtomail.persistence.entities.MailFolder;
+import com.franciaflex.faxtomail.persistence.entities.RangeRow;
import com.franciaflex.faxtomail.ui.swing.FaxToMailUIContext;
import com.franciaflex.faxtomail.ui.swing.actions.ShowDemandeAction;
+import com.franciaflex.faxtomail.ui.swing.content.demande.RangeRowModel;
import jaxx.runtime.JAXXObject;
import jaxx.runtime.JAXXUtil;
import org.apache.commons.lang3.StringUtils;
@@ -50,6 +52,8 @@
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
@@ -129,4 +133,43 @@
return result;
}
+ public static int[] computeQuantities(List<Email> emails) {
+ int pfNb = 0;
+ int savNb = 0;
+ for (Email email : emails) {
+ Collection<RangeRow> rangeRows = email.getRangeRow();
+ if (rangeRows != null) {
+ for (RangeRow rangeRow : rangeRows) {
+ Integer productQuantity = rangeRow.getProductQuantity();
+ if (productQuantity != null) {
+ pfNb += productQuantity;
+ }
+
+ Integer savQuantity = rangeRow.getSavQuantity();
+ if (savQuantity != null) {
+ savNb += savQuantity;
+ }
+ }
+ }
+ }
+ return new int[] { pfNb, savNb };
+ }
+
+ //TODO kmorin 20140306 remove this
+ public static int[] computeQuantities(Collection<RangeRowModel> rangeRows) {
+ int pfNb = 0;
+ int savNb = 0;
+ for (RangeRowModel rangeRow : rangeRows) {
+ Integer productQuantity = rangeRow.getProductQuantity();
+ if (productQuantity != null) {
+ pfNb += productQuantity;
+ }
+
+ Integer savQuantity = rangeRow.getSavQuantity();
+ if (savQuantity != null) {
+ savNb += savQuantity;
+ }
+ }
+ return new int[] { pfNb, savNb };
+ }
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentCellRenderer.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentCellRenderer.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentCellRenderer.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -30,10 +30,10 @@
private final Decorator<Attachment> decorator;
- private Font defaulfFont;
+// private Font defaulfFont;
+//
+// private Font selectedFont;
- private Font selectedFont;
-
public static AttachmentCellRenderer newRender(Decorator<Attachment> decorator) {
return new AttachmentCellRenderer(decorator);
}
@@ -58,10 +58,7 @@
int row,
int column) {
- if (defaulfFont == null) {
- defaulfFont = UIManager.getFont("Table.font");
- selectedFont = defaulfFont.deriveFont(Font.BOLD);
- }
+ super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
List<Attachment> attachments = (List<Attachment>) value;
@@ -82,20 +79,20 @@
// use html to display the tooltip on several lines
toolTipTextValue = sb.substring(5);
}
- String textValue = ButtonAttachment.getButtonText(attachments);
+ String textValue = t("faxtomail.attachmentCellRenderer.text", attachments != null ? attachments.size() : 0);
boolean editable = table.isCellEditable(row, column);
toolTipTextValue = String.format(TEXT_PATTERN, toolTipTextValue);
setEnabled(editable);
setText(textValue);
setToolTipText(toolTipTextValue);
- setBackground(null);
- setForeground(Color.BLACK);
+// setBackground(null);
+// setForeground(Color.BLACK);
- if (isSelected) {
- setFont(selectedFont);
- } else {
- setFont(defaulfFont);
- }
+// if (isSelected) {
+// setFont(selectedFont);
+// } else {
+// setFont(defaulfFont);
+// }
return this;
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentEditorUI.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentEditorUI.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentEditorUI.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -20,6 +20,5 @@
#addButton {
actionIcon: add;
toolTipText: "faxtomail.attachmentEditor.action.add.tip";
- i18nMnemonic: "faxtomail.attachmentEditor.action.add.mnemonic";
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentItem.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentItem.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/attachment/AttachmentItem.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -10,17 +10,14 @@
#openAttachmentButton {
actionIcon: "open-file";
toolTipText: "faxtomail.attachmentEditor.action.open.tip";
- i18nMnemonic: "faxtomail.attachmentEditor.action.open.mnemonic";
}
#saveAttachmentButton {
actionIcon: "import";
toolTipText: "faxtomail.attachmentEditor.action.save.tip";
- i18nMnemonic: "faxtomail.attachmentEditor.action.save.mnemonic";
}
#removeAttachmentButton {
actionIcon: "delete";
toolTipText: "faxtomail.attachmentEditor.action.remove.tip";
- i18nMnemonic: "faxtomail.attachmentEditor.action.remove.mnemonic";
}
\ No newline at end of file
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.css
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.css 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.css 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,5 +1,5 @@
#type {
- text : { model.getTypeAsString() };
+ text : { JAXXUtil.getStringValue(model.getType()) };
font-weight: "bold";
}
@@ -9,7 +9,7 @@
}
#user {
- text : { model.getFaxToMailUserAsString() };
+ text : { handler.decorateUser(model.getFaxToMailUser(), true) };
}
#dateLabel {
@@ -18,5 +18,5 @@
}
#date {
- text : { model.getModificationDateAsString() };
+ text : { handler.decorate(model.getModificationDate()) };
}
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.jaxx
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.jaxx 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItem.jaxx 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,6 +1,8 @@
<JPanel id='historyItemPanel' layout="{new GridLayout(0,1)}">
<import>
+ com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil
+
com.franciaflex.faxtomail.persistence.entities.History
java.awt.FlowLayout
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItemModel.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItemModel.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryItemModel.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -32,14 +32,6 @@
fromEntity(history);
}
- public String getTypeAsString() {
- HistoryType type = editObject.getType();
- if (type == null) {
- return null;
- }
- return type.toString();
- }
-
public HistoryType getType() {
return editObject.getType();
}
@@ -47,17 +39,9 @@
public void setType(HistoryType type) {
Object oldValue = editObject.getType();
editObject.setType(type);
- firePropertyChanged(History.PROPERTY_TYPE + "AsString", oldValue, type);
+ firePropertyChanged(History.PROPERTY_TYPE, oldValue, type);
}
- public String getModificationDateAsString() {
- Date date = editObject.getModificationDate();
- if (date == null) {
- return null;
- }
- return DateFormat.getDateTimeInstance().format(date);
- }
-
public Date getModificationDate() {
return editObject.getModificationDate();
}
@@ -65,17 +49,9 @@
public void setModificationDate(Date modificationDate) {
Object oldValue = editObject.getModificationDate();
editObject.setModificationDate(modificationDate);
- firePropertyChanged(History.PROPERTY_MODIFICATION_DATE + "AsString", oldValue, modificationDate);
+ firePropertyChanged(History.PROPERTY_MODIFICATION_DATE, oldValue, modificationDate);
}
- public String getFaxToMailUserAsString() {
- FaxToMailUser user = editObject.getFaxToMailUser();
- if (user == null) {
- return "faxtomail.systemUser";
- }
- return user.toString();
- }
-
public FaxToMailUser getFaxToMailUser() {
return editObject.getFaxToMailUser();
}
@@ -83,7 +59,7 @@
public void setFaxToMailUser(FaxToMailUser faxToMailUser) {
Object oldValue = editObject.getFaxToMailUser();
editObject.setFaxToMailUser(faxToMailUser);
- firePropertyChanged(History.PROPERTY_FAX_TO_MAIL_USER + "AsString", oldValue, faxToMailUser);
+ firePropertyChanged(History.PROPERTY_FAX_TO_MAIL_USER, oldValue, faxToMailUser);
}
@Override
Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java
===================================================================
--- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/history/HistoryListUIHandler.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -11,6 +11,7 @@
import javax.swing.*;
import java.awt.*;
+import java.util.Collection;
/**
* @author Kevin Morin (Code Lutin)
@@ -35,9 +36,12 @@
public void afterInit(HistoryListUI ui) {
super.afterInit(ui);
- for (History history : getModel().getHistory()) {
- HistoryItem item = new HistoryItem(history, this);
- ui.getHistories().add(item);
+ Collection<History> histories = getModel().getHistory();
+ if (histories != null) {
+ for (History history : histories) {
+ HistoryItem item = new HistoryItem(history, this);
+ ui.getHistories().add(item);
+ }
}
}
Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties
===================================================================
--- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_en_GB.properties 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,3 +1,4 @@
+\ |\ =
1\ -\ Volets\ roulants=
Ajouter=
Derni\\u00e8re\ modification\ par\ Utilisateur\ 1\ le\ 14/01/2014\ \\u00e0\ 08\:42=
@@ -13,9 +14,11 @@
application.action.create.error=
application.error.ui.business.warning=
faxtomail.action.create.error=
+faxtomail.alert.alreadyTakenBy.help=
faxtomail.alert.alreadyTakenBy.message=
faxtomail.alert.alreadyTakenBy.title=
faxtomail.archive.button.label=
+faxtomail.attachmentCellRenderer.text=
faxtomail.attachmentEditor.action.add.mnemonic=
faxtomail.attachmentEditor.action.add.tip=
faxtomail.attachmentEditor.action.closeAttachment.tip=
@@ -98,6 +101,8 @@
faxtomail.demande.alreadyTakenBy=
faxtomail.demande.archive.button.label=
faxtomail.demande.archive.button.mnemonic=
+faxtomail.demande.askCancelEditBeforeLeaving.cancelSave=
+faxtomail.demande.askSaveBeforeLeaving.save=
faxtomail.demande.back.button.label=
faxtomail.demande.back.button.mnemonic=
faxtomail.demande.client.label=
@@ -113,11 +118,13 @@
faxtomail.demande.lastModificationDate.label=
faxtomail.demande.lastModified.label=
faxtomail.demande.lastModifiedBy.label=
+faxtomail.demande.mailBody.label=
faxtomail.demande.message.label=
faxtomail.demande.object.label=
faxtomail.demande.print.button.label=
faxtomail.demande.print.button.mnemonic=
faxtomail.demande.priority.label=
+faxtomail.demande.projectReference.default=
faxtomail.demande.projectReference.label=
faxtomail.demande.received.label=
faxtomail.demande.receivedDate.label=
@@ -128,41 +135,71 @@
faxtomail.demande.save.button.label=
faxtomail.demande.save.button.mnemonic=
faxtomail.demande.sender.label=
+faxtomail.demande.sender.manualCreation=
+faxtomail.demande.sender.manual_creation=
faxtomail.demande.status.label=
faxtomail.demande.takenBy.label=
faxtomail.demande.tcc.label=
faxtomail.demande.title=
faxtomail.demande.transmit.button.label=
faxtomail.demande.transmit.button.mnemonic=
+faxtomail.demandeList.action.archive=
+faxtomail.demandeList.action.archive.tip=
faxtomail.demandeList.action.attachment=
faxtomail.demandeList.action.attachment.mnemonic=
faxtomail.demandeList.action.attachment.tip=
+faxtomail.demandeList.action.computeQuantitiesByRange=
+faxtomail.demandeList.action.computeQuantitiesByRange.tip=
faxtomail.demandeList.action.gotoFolder=
faxtomail.demandeList.action.gotoFolder.mnemonic=
faxtomail.demandeList.action.gotoFolder.tip=
+faxtomail.demandeList.action.newDemand=
+faxtomail.demandeList.action.newDemand.tip=
faxtomail.demandeList.action.print=
faxtomail.demandeList.action.print.mnemonic=
faxtomail.demandeList.action.print.tip=
faxtomail.demandeList.action.reply=
faxtomail.demandeList.action.reply.mnemonic=
faxtomail.demandeList.action.reply.tip=
+faxtomail.demandeList.demandNbLabel=
faxtomail.demandeList.pfNbLabel=
faxtomail.demandeList.savNbLabel=
+faxtomail.demandeList.table.header.attachment=
+faxtomail.demandeList.table.header.attachment.tip=
faxtomail.demandeList.table.header.client=
+faxtomail.demandeList.table.header.client.tip=
faxtomail.demandeList.table.header.commandNb=
faxtomail.demandeList.table.header.ediCodeNumber=
+faxtomail.demandeList.table.header.ediCodeNumber.tip=
faxtomail.demandeList.table.header.folder=
+faxtomail.demandeList.table.header.folder.tip=
faxtomail.demandeList.table.header.object=
+faxtomail.demandeList.table.header.object.tip=
faxtomail.demandeList.table.header.priority=
+faxtomail.demandeList.table.header.priority.tip=
faxtomail.demandeList.table.header.projectReference=
+faxtomail.demandeList.table.header.projectReference.tip=
faxtomail.demandeList.table.header.range=
+faxtomail.demandeList.table.header.range.tip=
faxtomail.demandeList.table.header.receptionDate=
+faxtomail.demandeList.table.header.receptionDate.tip=
+faxtomail.demandeList.table.header.receptionEmailAddress=
+faxtomail.demandeList.table.header.receptionEmailAddress.tip=
+faxtomail.demandeList.table.header.recipient=
+faxtomail.demandeList.table.header.recipient.tip=
faxtomail.demandeList.table.header.savNumber=
+faxtomail.demandeList.table.header.sender=
+faxtomail.demandeList.table.header.sender.tip=
faxtomail.demandeList.table.header.senderEmail=
+faxtomail.demandeList.table.header.senderEmail.tip=
faxtomail.demandeList.table.header.status=
+faxtomail.demandeList.table.header.status.tip=
faxtomail.demandeList.table.header.type=
+faxtomail.demandeList.table.header.type.tip=
faxtomail.demandeList.table.header.user=
+faxtomail.demandeList.table.header.user.tip=
faxtomail.demandeList.table.header.waitingState=
+faxtomail.demandeList.table.header.waitingState.tip=
faxtomail.demandeList.title=
faxtomail.error.delete.startActionFile=
faxtomail.error.errorpane.htmlmessage=
@@ -200,6 +237,8 @@
faxtomail.print.button.label=
faxtomail.property.get.error=
faxtomail.property.set.error=
+faxtomail.quantitiesByRange.button.text=
+faxtomail.quantitiesByRange.title=
faxtomail.rangeRows.table.header.command_number=
faxtomail.rangeRows.table.header.product_column=
faxtomail.rangeRows.table.header.range=
@@ -295,3 +334,4 @@
tutti.manageTemporaryReferential.title=
tutti.report.title=
tutti.selectCruise.title=
+|\\u00a0=
Modified: trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties
===================================================================
--- trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties 2014-03-10 09:32:30 UTC (rev 17)
@@ -1,34 +1,22 @@
-1\ -\ Volets\ roulants=
-Ajouter=
-Derni\\u00e8re\ modification\ par\ Utilisateur\ 1\ le\ 14/01/2014\ \\u00e0\ 08\:42=
-Editer=
-Fax\ -\ TIF\ (25ko)=
-Nombre\ de\ pages\ \:\ 1,\ dur\\u00e9e\ \:\ 13\ secondes,\ vitesse\ \:\ 31200=
-Num\\u00e9ro\ SDA\ \:\ 6374=
-Origine\ \:\ 02\ 34\ 56\ 78\ 90=
-Plans\ -\ DXF\ (254ko)=
-Supprimer=
-T\\u00e9l\\u00e9copie\ re\\u00e7ue\ le\ 10/01/2014\ \\u00e0\ 13\:37=
-Voir=
+\ |\ =
application.action.create.error=
application.error.ui.business.warning=
-faxtomail.alert.alreadyTakenBy.message=Le document est déjà attribué à l'utilisateur %s.
-faxtomail.alert.alreadyTakenBy.title=Document déjà attribué
-faxtomail.attachmentEditor.action.add.mnemonic=A
+faxtomail.alert.alreadyTakenBy.button.quit=Quitter
+faxtomail.alert.alreadyTakenBy.button.take=Prendre
+faxtomail.alert.alreadyTakenBy.button.view=Visualiser
+faxtomail.alert.alreadyTakenBy.help=Voulez-vous le prendre ?<ul><li><strong>Annuler</strong> pour ne retourner à la liste</li><li><strong>Non</strong> pour visualiser l'élément en lecture seule</li><li><strong>Oui</strong> pour le prendre</li></ul>
+faxtomail.alert.alreadyTakenBy.message=L'élément est déjà pris par %s.
+faxtomail.alert.alreadyTakenBy.title=Document déjà pris
+faxtomail.attachmentCellRenderer.text=(%s)
faxtomail.attachmentEditor.action.add.tip=Ajouter une pièce jointe
faxtomail.attachmentEditor.action.closeAttachment.tip=Fermer la fenêtre des pièces-jointes
-faxtomail.attachmentEditor.action.open.mnemonic=O
faxtomail.attachmentEditor.action.open.tip=Ouvrir la pièce jointe
-faxtomail.attachmentEditor.action.remove.mnemonic=u
faxtomail.attachmentEditor.action.remove.tip=Supprimer la pièce jointe
-faxtomail.attachmentEditor.action.save.mnemonic=E
faxtomail.attachmentEditor.action.save.tip=Enregistrer la pièce jointe en local
faxtomail.attachmentEditor.action.tip=Pièces jointes
faxtomail.attachmentEditor.deleteAttachment.message=Êtes-vous sûr de vouloir supprimer la pièce-jointe %s ?
faxtomail.attachmentEditor.deleteAttachment.title=Suppression de pièce-jointe
faxtomail.attachmentEditor.field.file=Fichier
-faxtomail.attachmentEditor.field.fileComment=Commentaire
-faxtomail.attachmentEditor.field.fileName=Nom
faxtomail.attachmentEditor.fileNotFound=Le fichier %s de la pièce jointe n'a pas été trouvé
faxtomail.attachmentEditor.none.tip=Pas de pièce-jointes
faxtomail.attachmentEditor.saveAttachment.button=Enregistrer
@@ -38,68 +26,83 @@
faxtomail.attachmentEditor.text=Pièces jointes (%s)
faxtomail.attachmentEditor.title=Pièces jointes
faxtomail.chooseMailFolder.action.cancel=Annuler
-faxtomail.chooseMailFolder.action.cancel.mnemonic=A
faxtomail.chooseMailFolder.action.cancel.tip=Annuler et fermer la popup
faxtomail.chooseMailFolder.action.validate=Valider
-faxtomail.chooseMailFolder.action.validate.mnemonic=V
-faxtomail.chooseMailFolder.action.validate.tip=Valider et transférer le mail
-faxtomail.chooseMailFolder.title=Choisissez le dossier où transférer le mail
-faxtomail.common.by=
+faxtomail.chooseMailFolder.action.validate.tip=Valider et transférer l'élément
+faxtomail.chooseMailFolder.title=Choisissez le dossier où transférer l'élément
faxtomail.common.by.label=par
faxtomail.common.on.label=le
faxtomail.config.application=
faxtomail.config.title=
faxtomail.demande.archive.button.label=Archiver
-faxtomail.demande.archive.button.mnemonic=V
-faxtomail.demande.back.button.label=Annuler
-faxtomail.demande.back.button.mnemonic=A
+faxtomail.demande.askCancelEditBeforeLeaving.cancelSave=L'élément n'est pas valide et ne peut être sauvé.
+faxtomail.demande.askSaveBeforeLeaving.save=Vous avez modifié l'élément mais vous n'avez pas enregistré ces modifications.
+faxtomail.demande.back.button.label=Quitter
faxtomail.demande.client.label=Client
faxtomail.demande.docType.label=Type
faxtomail.demande.ediCodeNumber.label=Retour EDI
faxtomail.demande.etatAttente.label=État attente
faxtomail.demande.firstOpened.label=Première ouverture
faxtomail.demande.lastModified.label=Dernière modification
+faxtomail.demande.mailBody.label=Corps du mail
faxtomail.demande.message.label=Message
faxtomail.demande.object.label=Objet
faxtomail.demande.print.button.label=Imprimer
-faxtomail.demande.print.button.mnemonic=I
faxtomail.demande.priority.label=Priorité
faxtomail.demande.projectReference.label=Référence chantier
faxtomail.demande.receivedDate.label=Reçu le
faxtomail.demande.reply.button.label=Répondre
-faxtomail.demande.reply.button.mnemonic=R
-faxtomail.demande.savNumber.label=SAV
faxtomail.demande.save.button.label=Enregistrer
-faxtomail.demande.save.button.mnemonic=E
faxtomail.demande.sender.label=Émetteur
+faxtomail.demande.sender.manualCreation=Création manuelle
faxtomail.demande.status.label=Statut
faxtomail.demande.takenBy.label=Pris par
faxtomail.demande.transmit.button.label=Transmettre
-faxtomail.demande.transmit.button.mnemonic=T
+faxtomail.demandeList.action.archive=Archiver
+faxtomail.demandeList.action.archive.tip=Archiver l'élément
faxtomail.demandeList.action.attachment=Ajouter une pièce-jointe
-faxtomail.demandeList.action.attachment.mnemonic=A
faxtomail.demandeList.action.attachment.tip=Ajouter une pièce-jointe
+faxtomail.demandeList.action.computeQuantitiesByRange=Calculer les quantités par gamme
+faxtomail.demandeList.action.computeQuantitiesByRange.tip=Calculer les quantités par gamme
+faxtomail.demandeList.action.newDemand=Créer une nouvelle demande
+faxtomail.demandeList.action.newDemand.tip=Créer une nouvelle demande
faxtomail.demandeList.action.print=Imprimer
-faxtomail.demandeList.action.print.mnemonic=I
faxtomail.demandeList.action.print.tip=Imprimer
faxtomail.demandeList.action.reply=Répondre
-faxtomail.demandeList.action.reply.mnemonic=R
faxtomail.demandeList.action.reply.tip=Répondre
+faxtomail.demandeList.demandNbLabel=Nombre de demandes
faxtomail.demandeList.pfNbLabel=Nombre de produits finis
faxtomail.demandeList.savNbLabel=Nombre de SAV
+faxtomail.demandeList.table.header.attachment=PJ
+faxtomail.demandeList.table.header.attachment.tip=Pièces-jointes
faxtomail.demandeList.table.header.client=Client
+faxtomail.demandeList.table.header.client.tip=Client
faxtomail.demandeList.table.header.ediCodeNumber=Code EDI
+faxtomail.demandeList.table.header.ediCodeNumber.tip=Code EDI
faxtomail.demandeList.table.header.folder=Dossier
+faxtomail.demandeList.table.header.folder.tip=Dossier
faxtomail.demandeList.table.header.object=Objet
-faxtomail.demandeList.table.header.priority=Priorité
-faxtomail.demandeList.table.header.projectReference=Référence chantier
+faxtomail.demandeList.table.header.object.tip=Objet
+faxtomail.demandeList.table.header.priority=P
+faxtomail.demandeList.table.header.priority.tip=Priorité
+faxtomail.demandeList.table.header.projectReference=Ref chantier
+faxtomail.demandeList.table.header.projectReference.tip=Référence chantier
faxtomail.demandeList.table.header.range=Gamme
+faxtomail.demandeList.table.header.range.tip=Gamme
faxtomail.demandeList.table.header.receptionDate=Date de réception
-faxtomail.demandeList.table.header.senderEmail=Email de l'émetteur
+faxtomail.demandeList.table.header.receptionDate.tip=Date de réception
+faxtomail.demandeList.table.header.recipient=Destinataire
+faxtomail.demandeList.table.header.recipient.tip=Addresse email ou numéro de fax du destinataire
+faxtomail.demandeList.table.header.sender=Émetteur
+faxtomail.demandeList.table.header.sender.tip=Addresse email ou numéro de fax de l'émetteur
faxtomail.demandeList.table.header.status=Statut
+faxtomail.demandeList.table.header.status.tip=Statut
faxtomail.demandeList.table.header.type=Type
-faxtomail.demandeList.table.header.user=Pris pas
+faxtomail.demandeList.table.header.type.tip=Type
+faxtomail.demandeList.table.header.user=Pris par
+faxtomail.demandeList.table.header.user.tip=Pris par
faxtomail.demandeList.table.header.waitingState=État attente
+faxtomail.demandeList.table.header.waitingState.tip=État attente
faxtomail.demandeList.title=Gestion des fax
faxtomail.historyList.action.tip=Historique
faxtomail.historyList.text=Historique (%s)
@@ -110,31 +113,27 @@
faxtomail.main.action.configuration.mnemonic=
faxtomail.main.action.configuration.tip=Menu configuration
faxtomail.main.action.demandeList=Gestion des fax
-faxtomail.main.action.demandeList.mnemonic=
faxtomail.main.action.demandeList.tip=Gestion des fax
faxtomail.main.action.exit=Quitter
-faxtomail.main.action.exit.mnemonic=
faxtomail.main.action.exit.tip=Quitter l'application
faxtomail.main.action.goto.previousScreen.tip=
faxtomail.main.action.recherche=Recherche
-faxtomail.main.action.recherche.mnemonic=
faxtomail.main.action.recherche.tip=Recherche de demandes archivées
faxtomail.main.action.reloadFaxToMail=
faxtomail.main.menu.file=Fichier
-faxtomail.main.menu.file.mnemonic=
faxtomail.main.menu.file.tip=Menu fichier
faxtomail.main.title.application=FaxToMail
faxtomail.main.title.applicationName=FaxToMail
faxtomail.main.title.nodb=
-faxtomail.rangeRows.table.header.command_number=Numéro de commande / devis
-faxtomail.rangeRows.table.header.product_column=Quantité de produits
+faxtomail.quantitiesByRange.button.text=OK
+faxtomail.quantitiesByRange.title=Quantités par gamme
+faxtomail.rangeRows.table.header.command_number=N° commande / devis
+faxtomail.rangeRows.table.header.product_column=Qté produits
faxtomail.rangeRows.table.header.range=Gamme
-faxtomail.rangeRows.table.header.sav_quantity=Quantité de SAV
+faxtomail.rangeRows.table.header.sav_quantity=Qté SAV
faxtomail.reply.action.cancel=Annuler
-faxtomail.reply.action.cancel.mnemonic=A
faxtomail.reply.action.cancel.tip=Annuler et fermer la popup
faxtomail.reply.action.validate=Valider
-faxtomail.reply.action.validate.mnemonic=V
faxtomail.reply.action.validate.tip=Valider et répondre au mail
faxtomail.reply.attachment=Ajouter des pièces jointes
faxtomail.reply.from=De \:
@@ -142,7 +141,6 @@
faxtomail.reply.title=Réponse à \: %s
faxtomail.reply.to=À \:
faxtomail.search.action.gotoFolder=Aller au dossier
-faxtomail.search.action.gotoFolder.mnemonic=A
faxtomail.search.action.gotoFolder.tip=Aller au dossier
faxtomail.search.between2ndPart.label=et le
faxtomail.search.button.label=Rechercher
Added: trunk/faxtomail-ui-swing/src/main/resources/icons/action-compute.png
===================================================================
(Binary files differ)
Property changes on: trunk/faxtomail-ui-swing/src/main/resources/icons/action-compute.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/faxtomail-ui-swing/src/main/resources/icons/action-delete.png
===================================================================
(Binary files differ)
Property changes on: trunk/faxtomail-ui-swing/src/main/resources/icons/action-delete.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/faxtomail-ui-swing/src/main/resources/icons/action-edit-attachment.png
===================================================================
(Binary files differ)
Property changes on: trunk/faxtomail-ui-swing/src/main/resources/icons/action-edit-attachment.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/faxtomail-ui-swing/src/main/resources/icons/action-import.png
===================================================================
(Binary files differ)
Property changes on: trunk/faxtomail-ui-swing/src/main/resources/icons/action-import.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/faxtomail-ui-swing/src/main/resources/icons/action-new-demand.png
===================================================================
(Binary files differ)
Property changes on: trunk/faxtomail-ui-swing/src/main/resources/icons/action-new-demand.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/faxtomail-ui-swing/src/main/resources/icons/action-open-file.png
===================================================================
(Binary files differ)
Property changes on: trunk/faxtomail-ui-swing/src/main/resources/icons/action-open-file.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java
===================================================================
--- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java 2014-02-25 18:56:55 UTC (rev 16)
+++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/action/admin/ConfigurationAction.java 2014-03-10 09:32:30 UTC (rev 17)
@@ -150,7 +150,7 @@
public Map<String, String> getEmailFields() {
Map<String, String> result = new HashMap<>();
- result.put(Email.PROPERTY_SENDER_EMAIL_ADDRESS, "Adresse email");
+ result.put(Email.PROPERTY_SENDER, "Adresse email");
result.put(Email.PROPERTY_RECEPTION_DATE, "Date de réception");
result.put(Email.PROPERTY_EDI_CODE_NUMBER, "Code EDI");
result.put(Email.PROPERTY_OBJECT, "Objet");
1
0