This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 34ceb86d18d960eaa06ed2a0c94780fab6ddc563 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Oct 25 17:54:34 2016 +0200 Utilisation d'un TimeEditor pour le temps depuis le déclenchement (écran Avançon) --- .../ui/content/impl/longline/BranchlineUI.jaxx | 3 +- .../ui/content/impl/longline/BranchlineUI.jcss | 8 ++-- .../content/impl/longline/BranchlineUIHandler.java | 53 +++++++++++++++++++--- .../content/impl/longline/BranchlineUIModel.java | 12 +++++ 4 files changed, 65 insertions(+), 11 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx index cb4c3d1..0b850a3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jaxx @@ -37,6 +37,7 @@ jaxx.runtime.swing.editor.NumberEditor jaxx.runtime.swing.editor.bean.BeanComboBox org.nuiton.jaxx.widgets.datetime.DateTimeEditor + org.nuiton.jaxx.widgets.datetime.TimeEditor org.apache.commons.lang3.BooleanUtils @@ -125,7 +126,7 @@ public void edit(BranchlineDto branchline) { getHandler().edit(branchline); } <JLabel id='timeSinceContactLabel'/> </cell> <cell> - <NumberEditor id='timeSinceContact' constructorParams='this'/> + <TimeEditor id='timeSinceContact' constructorParams='this'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jcss index e3bf267..10cbff5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUI.jcss @@ -85,9 +85,10 @@ #timeSinceContact { enabled:{BooleanUtils.isTrue(bean.getTimer())}; - property:{BranchlineDto.PROPERTY_TIME_SINCE_CONTACT}; - model:{bean.getTimeSinceContact()}; - numberPattern:{fr.ird.observe.application.swing.ui.UIHelper.LONG_10_DIGITS_PATTERN}; + propertyTime:{BranchlineDto.PROPERTY_TIME_SINCE_CONTACT}; + time:{model.getTimeSinceContact()}; + bean:{model}; + showTimeEditorSlider:false; _validatorLabel:{t("observe.content.branchline.timeSinceContact")}; } @@ -100,6 +101,7 @@ enabled:{BooleanUtils.isTrue(bean.getTimer())}; label:{t("observe.content.branchline.timerTimeOnBoard")}; date:{bean.getTimerTimeOnBoard()}; + showTimeEditorSlider:false; propertyDate: {BranchlineDto.PROPERTY_TIMER_TIME_ON_BOARD}; _validatorLabel:{t("observe.content.branchline.timerTimeOnBoard")}; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java index bc4c6e0..e2124f3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIHandler.java @@ -25,22 +25,26 @@ package fr.ird.observe.application.swing.ui.content.impl.longline; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.DataContextType; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.BranchlineHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.ContentUIHandler; import fr.ird.observe.application.swing.ui.content.ContentUIModel; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.BranchlineHelper; import jaxx.runtime.validator.swing.SwingValidatorMessage; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; +import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; import org.nuiton.i18n.I18n; +import org.nuiton.util.DateUtil; import org.nuiton.validator.NuitonValidatorScope; import javax.swing.JOptionPane; import javax.swing.event.TableModelListener; +import java.util.Calendar; +import java.util.Date; import java.util.HashSet; import java.util.Set; @@ -76,17 +80,33 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { log.info("Will edit branchline: " + branchlineDecorator.toString(branchline)); } - getModel().setBranchline(branchline); + BranchlineUIModel model = getModel(); + + model.setBranchline(branchline); BranchlineHelper.copyBranchlineDto(branchline, getBean()); if (branchline == null) { + Date timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0); + model.setTimeSinceContact(timeSinceContactDate); + // stop edit stopEditUI(); } else { - if (getModel().isEnabled() && !getModel().isEditing()) { + if (BooleanUtils.isTrue(branchline.getTimer())) { + Long timeSinceContact = branchline.getTimeSinceContact(); + if (timeSinceContact != null) { + Date timeSinceContactDate = DateUtil.createDate(0, (int) (timeSinceContact % 60), (int) (timeSinceContact / 60f), 0, 0, 0); + model.setTimeSinceContact(timeSinceContactDate); + } + } else { + Date timeSinceContactDate = DateUtil.createDate(0, 0, 0, 0, 0, 0); + model.setTimeSinceContact(timeSinceContactDate); + } + + if (model.isEnabled() && !model.isEditing()) { startEditUI(); @@ -101,7 +121,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { SwingValidatorMessageTableModel errorTableModel = getUi().getErrorTableModel(); computeTabValidState(errorTableModel); - getModel().setModified(false); + model.setModified(false); } @@ -146,6 +166,8 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { branchlineDecorator = getDecoratorService().getDecoratorByType(BranchlineDto.class); super.initUI(); + getModel().addPropertyChangeListener(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, + evt -> getUi().getValidator().setChanged(true)); } @Override @@ -155,6 +177,9 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { log.info("OpenUI: " + getModel()); } + getUi().getTimeSinceContact().getSliderHidor().setVisible(false); + getUi().getTimerTimeOnBoard().getSliderHidor().setVisible(false); + boolean canWrite = computeCanWrite(getDataSource()); getModel().setCanWrite(canWrite); @@ -203,7 +228,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { BranchlineUI.BINDING_HOOK_OFFSET_MODEL, BranchlineUI.BINDING_TIMER_SELECTED, - BranchlineUI.BINDING_TIME_SINCE_CONTACT_MODEL, + BranchlineUI.BINDING_TIME_SINCE_CONTACT_TIME, BranchlineUI.BINDING_TIMER_TIME_ON_BOARD_DATE ); @@ -218,6 +243,20 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { BranchlineDto beanToSave = getModel().getBranchline(); BranchlineHelper.copyBranchlineDto(bean, beanToSave); + if (BooleanUtils.isTrue(bean.getTimer())) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(getModel().getTimeSinceContact()); + int minutes = calendar.get(Calendar.MINUTE); + int hours = calendar.get(Calendar.HOUR); + beanToSave.setTimeSinceContact(minutes + 60L * hours); + } else { + beanToSave.setTimeSinceContact(null); + } + + if (log.isInfoEnabled()) { + log.info("Time since contact: " + beanToSave.getTimeSinceContact()); + } + // for external models getModel().fireSaved(); @@ -346,7 +385,7 @@ public class BranchlineUIHandler extends ContentUIHandler<BranchlineDto> { boolean generalTabValid = !errorProperties.removeAll(BranchlineUIModel.GENERAL_TAB_PROPERTIES); boolean hookAndBaitTabValid = !errorProperties.removeAll(BranchlineUIModel.HOOK_AND_BAIT_TAB_PROPERTIES); - BranchlineUIModel model = getModel(); + BranchlineUIModel model = getModel(); model.setGeneralTabValid(generalTabValid); model.setHookAndBaitTabValid(hookAndBaitTabValid); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIModel.java index 159e421..87ab7fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/impl/longline/BranchlineUIModel.java @@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.application.swing.ui.content.ContentUIModel; +import java.util.Date; import java.util.Set; /** @@ -72,6 +73,8 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { private boolean hookAndBaitTabValid; + private Date timeSinceContact; + public BranchlineUIModel() { super(BranchlineDto.class); } @@ -102,6 +105,15 @@ public class BranchlineUIModel extends ContentUIModel<BranchlineDto> { firePropertyChange(PROPERTY_HOOK_AND_BAIT_TAB_VALID, null, hookAndBaitTabValid); } + public Date getTimeSinceContact() { + return timeSinceContact; + } + + public void setTimeSinceContact(Date timeSinceContact) { + this.timeSinceContact = timeSinceContact; + firePropertyChange(BranchlineDto.PROPERTY_TIME_SINCE_CONTACT, null, getTimeSinceContact()); + } + // For external model known when a saved action was done public void fireSaved() { firePropertyChange(PROPERTY_SAVED, null, true); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.