Author: kmorin Date: 2014-05-26 23:04:50 +0200 (Mon, 26 May 2014) New Revision: 101 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/101 Log: - on ne transmet qu'une fois ?\195?\160 l'EDI (m?\195?\170me s'il y a une erreur) - on donne le nom du fichier aux fichiers temporaires - l'?\195?\169l?\195?\169ment n'est en lecture seule que pendant la transmission ?\195?\160 l'EDI. Autrement tout est ?\195?\169ditable. Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AttachmentFileImpl.java trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/HistoryType.java trunk/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 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/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/reply/ReplyFormUIHandler.java Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AttachmentFileImpl.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AttachmentFileImpl.java 2014-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/AttachmentFileImpl.java 2014-05-26 21:04:50 UTC (rev 101) @@ -30,9 +30,11 @@ import java.io.IOException; import java.io.InputStream; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.util.FileUtil; public class AttachmentFileImpl extends AttachmentFileAbstract { @@ -46,10 +48,24 @@ if (tmpLocalFile == null && getContent() != null) { try { // create temp file - tmpLocalFile = File.createTempFile("faxtomail-", ".tmp"); + File tempFolder = new File(FileUtils.getTempDirectory(), "faxtomail"); + tempFolder.mkdir(); + + String fileName = getFilename(); + tmpLocalFile = new File(tempFolder, fileName); + + // if the file already exists, then add a number to the name + int i = 1; + String extension = "." + FileUtil.extension(fileName); + String name = FileUtil.basename(extension); + while (tmpLocalFile.exists()) { + tmpLocalFile = new File(tempFolder, name + "-" + i + extension); + } + if (log.isDebugEnabled()) { log.debug(String.format("Copy blob content to file : %s", tmpLocalFile.getAbsolutePath())); } + tmpLocalFile.deleteOnExit(); // copy blob content 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-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/HistoryType.java 2014-05-26 21:04:50 UTC (rev 101) @@ -36,6 +36,7 @@ CREATION(n("faxtomail.historyType.creation"), true), OPENING(n("faxtomail.historyType.opening"), false), MODIFICATION(n("faxtomail.historyType.modification"), true), + TRANSMISSION_TO_EDI(n("faxtomail.historyType.transmissionToEdi"), true), TRANSMISSION(n("faxtomail.historyType.transmission"), true), REPLY(n("faxtomail.historyType.reply"), false), PRINTING(n("faxtomail.historyType.printing"), false), Modified: trunk/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties =================================================================== --- trunk/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties 2014-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties 2014-05-26 21:04:50 UTC (rev 101) @@ -37,6 +37,7 @@ faxtomail.historyType.printing=Impression faxtomail.historyType.reply=Réponse faxtomail.historyType.transmission=Transmission +faxtomail.historyType.transmissionToEdi=Transmission à l'EDI faxtomail.persistence.loader.error= faxtomail.persistence.mkDir.error= faxtomail.service.config.deleteTempDirectory.error= 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-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-05-26 21:04:50 UTC (rev 101) @@ -49,6 +49,7 @@ import javax.mail.MessagingException; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.Predicate; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; @@ -200,12 +201,22 @@ Set<String> fieldSet = Sets.newHashSet(modifiedFields); - if (email.getDemandStatus() == DemandStatus.UNTREATED + History transmissionToEdi = CollectionUtils.find(email.getHistory(), new Predicate<History>() { + @Override + public boolean evaluate(History object) { + return object.getType() == HistoryType.TRANSMISSION_TO_EDI; + } + }); + if (transmissionToEdi == null && email.getClient() != null && email.getDemandType() != null - && email.getProjectReference() != null) { + && StringUtils.isNotBlank(email.getProjectReference())) { + email.setDemandStatus(DemandStatus.TRANSMITTED_TO_EDI); -// transmitDemandToEdi(email); + transmissionToEdi = historyDao.create(History.PROPERTY_TYPE, HistoryType.TRANSMISSION_TO_EDI, + History.PROPERTY_MODIFICATION_DATE, new Date()); + email.addHistory(transmissionToEdi); + fieldSet.add(Email.PROPERTY_DEMAND_STATUS); } History history; @@ -336,9 +347,11 @@ ediWriter.write(rangeRow.getRange().getTopiaId() + "\n"); ediWriter.write("%END_ENTETE_QUOTE\n"); + } catch (IOException ex) { throw new RuntimeException("Can't generate EDI 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-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeListUIHandler.java 2014-05-26 21:04:50 UTC (rev 101) @@ -29,6 +29,7 @@ import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.Email; import com.franciaflex.faxtomail.persistence.entities.FaxToMailUser; +import com.franciaflex.faxtomail.persistence.entities.Field; import com.franciaflex.faxtomail.persistence.entities.History; import com.franciaflex.faxtomail.persistence.entities.HistoryImpl; import com.franciaflex.faxtomail.persistence.entities.HistoryType; @@ -42,6 +43,8 @@ import com.franciaflex.faxtomail.ui.swing.util.CloseableUI; import com.franciaflex.faxtomail.ui.swing.util.FaxToMailUIUtil; import com.franciaflex.faxtomail.ui.swing.util.FolderTreeNode; +import com.google.common.base.Function; +import com.google.common.collect.Collections2; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -283,7 +286,13 @@ @Override protected Collection<String> getColumns() { MailFolder selectedFolder = getModel().getSelectedFolder(); - return selectedFolder != null ? selectedFolder.getFolderDisplayColumn() : null; + return selectedFolder == null ? null : + Collections2.transform(selectedFolder.getFolderTableColumns(), new Function<Field, String>() { + @Override + public String apply(Field field) { + return field.toString(); + } + }); } @Override 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-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.css 2014-05-26 21:04:50 UTC (rev 101) @@ -31,18 +31,20 @@ } JTextField, JXTable, BeanFilterableComboBox, #commentField, ButtonAttachment { - editable: { model.isEditable() }; + editable: { model.isEditable() && + !DemandStatus.TRANSMITTED_TO_EDI.equals(model.getDemandStatus()) }; } +BeanFilterableComboBox { + enabled: { model.isEditable() && + !DemandStatus.TRANSMITTED_TO_EDI.equals(model.getDemandStatus()) }; +} + .rightLabel { horizontalAlignment: { SwingConstants.RIGHT }; font-style: "italic"; } -.unmodifiableFields { - editable: { DemandStatus.UNTREATED.equals(model.getDemandStatus()) }; -} - #topToolBar { floatable: false; opaque: false; 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-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/DemandeUI.jaxx 2014-05-26 21:04:50 UTC (rev 101) @@ -112,7 +112,6 @@ </cell> <cell weightx='1' columns="3"> <JTextField id='objectField' - styleClass="unmodifiableFields" onKeyReleased='handler.setText(event, "object")'/> </cell> </row> @@ -122,7 +121,6 @@ </cell> <cell weightx='1'> <JTextField id='clientField' - styleClass="unmodifiableFields" onKeyReleased='handler.setText(event, "clientCode")'/> </cell> <cell> @@ -140,7 +138,6 @@ </cell> <cell weightx='1' columns="3"> <BeanFilterableComboBox id='docTypeComboBox' - styleClass="unmodifiableFields" constructorParams='this' genericType="DemandType"/> </cell> @@ -273,7 +270,7 @@ <JLabel id="savNbField"/> </JPanel> <JScrollPane constraints="BorderLayout.CENTER"> - <JXTable id='rangeTable' styleClass="unmodifiableFields"/> + <JXTable id='rangeTable'/> </JScrollPane> </JPanel> Modified: 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/ReplyFormUIHandler.java 2014-05-26 16:18:45 UTC (rev 100) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/reply/ReplyFormUIHandler.java 2014-05-26 21:04:50 UTC (rev 101) @@ -282,6 +282,7 @@ @Override public void setItem(Object anObject) { String text; + //FIXME kmorin 20140523 if set from the filechooser, classcastexception AttachmentFile file = (AttachmentFile) anObject; if ( anObject != null ) {