This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 1d8372e00613df5b64cc99f21c9c6eeb27d1a33a Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Apr 14 08:47:17 2016 +0200 Meilleure utilisation des unités dans les interfaces graphiques et revue des ComputableDataEditor --- .../fr/ifremer/tutti/ui/swing/content/Common.jcss | 3 + .../operation/catches/EditCatchesSvgHandler.java | 5 +- .../operation/catches/EditCatchesUIHandler.java | 4 +- .../operation/catches/EditCatchesUIModel.java | 13 ++- .../catches/marinelitter/MarineLitterBatchUI.jaxx | 2 +- .../catches/marinelitter/MarineLitterBatchUI.jcss | 1 - .../marinelitter/MarineLitterBatchUIHandler.java | 40 +++----- .../marinelitter/MarineLitterBatchUIModel.java | 15 ++- .../create/CreateMarineLitterBatchUI.jaxx | 2 +- .../create/CreateMarineLitterBatchUI.jcss | 1 - .../create/CreateMarineLitterBatchUIHandler.java | 5 +- .../create/CreateMarineLitterBatchUIModel.java | 12 ++- .../ui/swing/util/AbstractTuttiUIHandler.java | 54 +---------- .../util/computable/ComputableDataEditor.jaxx | 3 +- .../computable/ComputableDataEditorHandler.java | 26 +++--- .../util/computable/ComputableDataTableCell.java | 103 +++++++++------------ 16 files changed, 116 insertions(+), 173 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/Common.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/Common.jcss index b3d144c..23f3df2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/Common.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/Common.jcss @@ -1,3 +1,6 @@ +.labelWithUnit { + _addWeightUnit: {model.getWeightUnit()}; +} .buttonPanel { height: 50; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesSvgHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesSvgHandler.java index a07b64f..865d6f9 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesSvgHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesSvgHandler.java @@ -38,7 +38,6 @@ import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.catches.EnterWeightUI; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import fr.ifremer.tutti.util.Numbers; -import fr.ifremer.tutti.util.Weights; import jaxx.runtime.JAXXUtil; import org.apache.batik.bridge.UpdateManager; import org.apache.batik.dom.svg.SAXSVGDocumentFactory; @@ -485,7 +484,7 @@ public class EditCatchesSvgHandler { //TODO i18n ? String textContent; if (value != null) { - textContent = Weights.getWeightStringValue(value) + " " + weightUnit.getShortLabel(); + textContent = weightUnit.renderWeight(value) + " " + weightUnit.getShortLabel(); } else { textContent = null; } @@ -798,7 +797,7 @@ public class EditCatchesSvgHandler { if (denominator == null) { denominator = (Float) JavaBeanObjectUtil.getProperty(model, denominatorComputedProperty); } - if (numerator == null || denominator == null || Weights.isEqualWeight(denominator, 0f)) { + if (numerator == null || WeightUnit.KG.isNullOrZero(denominator)) { ratio = null; } else { ratio = Numbers.roundToInt(100f * numerator / denominator); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java index 9b207d9..fba8764 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java @@ -24,13 +24,13 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches; import com.google.common.collect.Sets; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.BenthosBatchUISupportImpl; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.EditSpeciesBatchPanelUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesOrBenthosBatchUISupport; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUI; -import fr.ifremer.tutti.util.Weights; import jaxx.runtime.swing.CardLayout2Ext; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; @@ -96,7 +96,7 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi Float totalWeight = (Float) evt.getNewValue(); - if (totalWeight != null && Weights.isEqualWeight(totalWeight, 0.f)) { + if (totalWeight != null && WeightUnit.KG.isZero(totalWeight)) { // remove the totalWeight (see https://forge.codelutin.com/issues/5144) source.setCatchTotalRejectedWeight(null); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java index 412d712..c0c7494 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java @@ -37,7 +37,6 @@ import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; -import fr.ifremer.tutti.util.Weights; import org.apache.commons.collections4.CollectionUtils; import org.nuiton.jaxx.application.swing.tab.TabContentModel; import org.nuiton.util.beans.Binder; @@ -628,10 +627,10 @@ public class EditCatchesUIModel extends AbstractTuttiBeanUIModel<CatchBatch, Edi Float catchTotalRejectedWeight = getCatchTotalRejectedComputedOrNotWeight().getDataOrComputedData(); Float speciesTotalSortedWeight = getSpeciesTotalSortedComputedOrNotWeight().getDataOrComputedData(); - boolean noCatchTotalRejected = catchTotalRejectedWeight == null || Weights.isEqualWeight(catchTotalRejectedWeight, 0f); - boolean noTotalUnsortedWeight = speciesTotalUnsortedComputedWeight != null && Weights.isGreaterWeight(speciesTotalUnsortedComputedWeight, 0f); + boolean noCatchTotalRejected = WeightUnit.KG.isNullOrZero(catchTotalRejectedWeight); + boolean noTotalUnsortedWeight = speciesTotalUnsortedComputedWeight != null && WeightUnit.KG.isGreaterThanZero(speciesTotalUnsortedComputedWeight); boolean speciesWeightEquals = speciesTotalSortedWeight != null && speciesTotalSampleSortedComputedWeight !=null - && Weights.isEqualWeight(speciesTotalSortedWeight, speciesTotalSampleSortedComputedWeight); + && WeightUnit.KG.isEquals(speciesTotalSortedWeight, speciesTotalSampleSortedComputedWeight); return noTotalUnsortedWeight && noCatchTotalRejected && speciesWeightEquals; } @@ -773,10 +772,10 @@ public class EditCatchesUIModel extends AbstractTuttiBeanUIModel<CatchBatch, Edi Float catchTotalRejectedWeight = getCatchTotalRejectedComputedOrNotWeight().getDataOrComputedData(); Float benthosTotalSortedWeight = getBenthosTotalSortedComputedOrNotWeight().getDataOrComputedData(); - boolean noCatchTotalRejected = catchTotalRejectedWeight == null || Weights.isEqualWeight(catchTotalRejectedWeight, 0f); - boolean noTotalUnsortedWeight = benthosTotalUnsortedComputedWeight != null && Weights.isGreaterWeight(benthosTotalUnsortedComputedWeight, 0f); + boolean noCatchTotalRejected = WeightUnit.KG.isNullOrZero(catchTotalRejectedWeight); + boolean noTotalUnsortedWeight = benthosTotalUnsortedComputedWeight != null && WeightUnit.KG.isGreaterThanZero(benthosTotalUnsortedComputedWeight); boolean benthosWeightEquals = benthosTotalSortedWeight != null && benthosTotalSampleSortedComputedWeight !=null - && Weights.isEqualWeight(benthosTotalSortedWeight, benthosTotalSampleSortedComputedWeight); + && WeightUnit.KG.isEquals(benthosTotalSortedWeight, benthosTotalSampleSortedComputedWeight); return noTotalUnsortedWeight && noCatchTotalRejected && benthosWeightEquals; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx index 2536c4b..3b6ade3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx @@ -81,7 +81,7 @@ public MarineLitterBatchUI(TuttiUI<?,?> parentUI) { <!-- Poids total --> <row> <cell anchor='west'> - <JLabel id='marineLitterTotalWeightLabel'/> + <JLabel id='marineLitterTotalWeightLabel' styleClass='labelWithUnit'/> </cell> <cell weightx='1.0'> <ComputableDataEditor id='marineLitterTotalWeightField' diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jcss index 969f871..d8d16b4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jcss @@ -59,7 +59,6 @@ ComputableDataEditor { toolTipText: "tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip"; labelFor: {marineLitterTotalWeightField}; _help: {"tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help"}; - _addWeightUnit: {handler.getConfig().getMarineLitterWeightUnit()}; } #marineLitterTotalWeightField { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java index 6451028..1de6618 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java @@ -59,15 +59,7 @@ import java.util.List; */ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler<MarineLitterBatchRowModel, MarineLitterBatchUIModel, MarineLitterBatchTableModel, MarineLitterBatchUI> { - private static final Log log = - LogFactory.getLog(MarineLitterBatchUIHandler.class); - - /** - * Weight unit. - * - * @since 2.5 - */ - protected WeightUnit weightUnit; + private static final Log log = LogFactory.getLog(MarineLitterBatchUIHandler.class); public MarineLitterBatchUIHandler() { super( @@ -107,7 +99,7 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler if (log.isDebugEnabled()) { log.debug("Get marineLitter batch for fishingOperation: " + - bean.getId()); + bean.getId()); } rows = Lists.newArrayList(); @@ -201,12 +193,9 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler log.debug("beforeInit: " + ui); } - weightUnit = getConfig().getMarineLitterWeightUnit(); - - EditCatchesUIModel catchesUIModel = - ui.getContextValue(EditCatchesUIModel.class); + EditCatchesUIModel catchesUIModel = ui.getContextValue(EditCatchesUIModel.class); - MarineLitterBatchUIModel model = new MarineLitterBatchUIModel(catchesUIModel); + MarineLitterBatchUIModel model = new MarineLitterBatchUIModel(catchesUIModel, getConfig().getMarineLitterWeightUnit()); ui.setContextValue(model); // propagate when value is changing @@ -229,8 +218,7 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler JXTable table = getTable(); // create table column model - DefaultTableColumnModelExt columnModel = - new DefaultTableColumnModelExt(); + DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt(); { // Id column @@ -265,6 +253,8 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler table); } + WeightUnit weightUnit = getModel().getWeightUnit(); + { // Weight column addFloatColumnToModel(columnModel, @@ -290,8 +280,7 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler } // create table model - MarineLitterBatchTableModel tableModel = - new MarineLitterBatchTableModel(weightUnit, columnModel); + MarineLitterBatchTableModel tableModel = new MarineLitterBatchTableModel(weightUnit, columnModel); table.setModel(tableModel); table.setColumnModel(columnModel); @@ -361,11 +350,10 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler protected MarineLitterBatchRowModel loadBatch(MarineLitterBatch aBatch) { MarineLitterBatchRowModel newRow = - new MarineLitterBatchRowModel(weightUnit, aBatch); + new MarineLitterBatchRowModel(getModel().getWeightUnit(), aBatch); List<Attachment> attachments = - getPersistenceService().getAllAttachments(newRow.getObjectType(), - newRow.getObjectId()); + getPersistenceService().getAllAttachments(newRow.getObjectType(), newRow.getObjectId()); newRow.addAllAttachment(attachments); return newRow; @@ -399,8 +387,8 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler Preconditions.checkNotNull(row.getMarineLitterSizeCategory()); if (log.isInfoEnabled()) { log.info("Remove from speciesUsed: " + - decorate(row.getMarineLitterSizeCategory()) + - " - " + decorate(row.getMarineLitterCategory())); + decorate(row.getMarineLitterSizeCategory()) + + " - " + decorate(row.getMarineLitterCategory())); } MarineLitterBatchUIModel model = getModel(); model.getMarineLitterCategoriesUsed().remove(row.getMarineLitterSizeCategory(), @@ -414,8 +402,8 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler Preconditions.checkNotNull(row.getMarineLitterSizeCategory()); if (log.isDebugEnabled()) { log.debug("Add to marineLitterCategoriesUsed: " + - decorate(row.getMarineLitterSizeCategory()) + - " - " + decorate(row.getMarineLitterCategory())); + decorate(row.getMarineLitterSizeCategory()) + + " - " + decorate(row.getMarineLitterCategory())); } MarineLitterBatchUIModel model = getModel(); model.getMarineLitterCategoriesUsed().put(row.getMarineLitterSizeCategory(), diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java index 68879c5..92fff40 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIModel.java @@ -24,11 +24,12 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter; import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractTuttiBatchUIModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; -import org.nuiton.jaxx.application.swing.tab.TabContentModel; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; import org.apache.commons.collections4.CollectionUtils; +import org.nuiton.jaxx.application.swing.tab.TabContentModel; import static org.nuiton.i18n.I18n.n; @@ -50,9 +51,15 @@ public class MarineLitterBatchUIModel extends AbstractTuttiBatchUIModel<MarineLi */ protected boolean removeBatchEnabled; - public MarineLitterBatchUIModel(EditCatchesUIModel catchesUIModel) { - super(catchesUIModel, - EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT); + private final WeightUnit weightUnit; + + public MarineLitterBatchUIModel(EditCatchesUIModel catchesUIModel, WeightUnit weightUnit) { + super(catchesUIModel, EditCatchesUIModel.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT); + this.weightUnit = weightUnit; + } + + public WeightUnit getWeightUnit() { + return weightUnit; } public ComputableData<Float> getMarineLitterTotalComputedOrNotWeight() { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx index 4f243bd..6277a7a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx @@ -98,7 +98,7 @@ public CreateMarineLitterBatchUI(EditCatchesUI parentUI) { <!-- MarineLitter weight --> <row> <cell anchor='west'> - <JLabel id='marineLitterWeightLabel'/> + <JLabel id='marineLitterWeightLabel' styleClass='labelWithUnit'/> </cell> <cell weightx='1.0' columns='2'> <NumberEditor id='marineLitterWeightField' constructorParams='this'/> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jcss index f384bcb..a370782 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jcss @@ -82,7 +82,6 @@ NumberEditor { toolTipText: "tutti.createMarineLitterBatch.field.weight.tip"; labelFor: {marineLitterWeightField}; _help: {"tutti.createMarineLitterBatch.field.weight.help"}; - _addWeightUnit: {handler.getConfig().getMarineLitterWeightUnit()}; } #marineLitterWeightField { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java index 5fd2b02..ad00300 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java @@ -43,8 +43,7 @@ import javax.swing.JComponent; public class CreateMarineLitterBatchUIHandler extends AbstractTuttiUIHandler<CreateMarineLitterBatchUIModel, CreateMarineLitterBatchUI> { /** Logger. */ - private static final Log log = - LogFactory.getLog(CreateMarineLitterBatchUIHandler.class); + private static final Log log = LogFactory.getLog(CreateMarineLitterBatchUIHandler.class); //------------------------------------------------------------------------// //-- AbstractTuttiUIHandler methods --// @@ -53,7 +52,7 @@ public class CreateMarineLitterBatchUIHandler extends AbstractTuttiUIHandler<Cre @Override public void beforeInit(CreateMarineLitterBatchUI ui) { super.beforeInit(ui); - CreateMarineLitterBatchUIModel model = new CreateMarineLitterBatchUIModel(); + CreateMarineLitterBatchUIModel model = new CreateMarineLitterBatchUIModel(getConfig().getMarineLitterWeightUnit()); ui.setContextValue(model); listModelIsModify(model); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java index ab2c334..93fea67 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java @@ -27,6 +27,7 @@ import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatchs; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; /** @@ -55,8 +56,15 @@ public class CreateMarineLitterBatchUIModel extends AbstractTuttiBeanUIModel<Cre protected final Multimap<CaracteristicQualitativeValue, CaracteristicQualitativeValue> marineLitterCategoryUsed = ArrayListMultimap.create(); - public CreateMarineLitterBatchUIModel() { + private final WeightUnit weightUnit; + + public CreateMarineLitterBatchUIModel(WeightUnit weightUnit) { super(null, null); + this.weightUnit = weightUnit; + } + + public WeightUnit getWeightUnit() { + return weightUnit; } public CaracteristicQualitativeValue getMarineLitterCategory() { @@ -118,7 +126,7 @@ public class CreateMarineLitterBatchUIModel extends AbstractTuttiBeanUIModel<Cre @Override protected CreateMarineLitterBatchUIModel newEntity() { - return new CreateMarineLitterBatchUIModel(); + return new CreateMarineLitterBatchUIModel(weightUnit); } public void reset() { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java index 87b30b0..f50706a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java @@ -40,7 +40,6 @@ import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import fr.ifremer.tutti.ui.swing.util.actions.ShowComboBoxPopupActions; import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment; import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor; -import fr.ifremer.tutti.util.Weights; import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.cell.NumberCellEditor; import jaxx.runtime.validator.swing.SwingValidator; @@ -79,8 +78,8 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.text.DecimalFormat; import java.util.List; +import java.util.Objects; import java.util.Set; import static org.nuiton.i18n.I18n.t; @@ -152,26 +151,12 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend handler.clearValidators(); } - public String getWeightStringValue(WeightUnit weightUnit, Float weight) { - String textValue; - if (weight != null) { - - int numberDigits = weightUnit.getNumberDigits(); - - DecimalFormat weightDecimalFormat = Weights.getDecimalFormat(1, numberDigits); - textValue = weightDecimalFormat.format(weight); - - } else { - textValue = ""; - } - return textValue; - } - public String getWeightStringValue(JComponent component, Float weight) { WeightUnit weightUnit = (WeightUnit) component.getClientProperty("addWeightUnit"); - return getWeightStringValue(weightUnit, weight); + Objects.requireNonNull(weightUnit, "can't find addWeightUnit client property on component: " + component); + return weightUnit.renderWeight(weight); } @@ -437,8 +422,7 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend // set also the number of digits (4 for kg, 1 for g) ComputableDataEditor editor = (ComputableDataEditor) labelFor; - editor.setNumberPattern(weightUnit.getNumberEditorPattern()); - editor.setDecimalNumber(weightUnit.getNumberDigits()); + editor.setWeightUnit(weightUnit); } else if (labelFor instanceof NumberEditor) { // set also the number of digits (4 for kg, 1 for g) @@ -455,36 +439,6 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend TuttiUIUtil.initButton(getContext(), this.getUI(), abstractButton); -// Class actionType = (Class) abstractButton.getClientProperty("simpleAction"); -// if (actionType != null) { -// -// Action action = getContext().getActionFactory().createSimpleAction(this, abstractButton, actionType); -// abstractButton.setAction(action); -// -// } -// -// String actionName = abstractButton.getName(); -// Action action = abstractButton.getAction(); -// Boolean skipAction = (Boolean) abstractButton.getClientProperty("skipAction"); -// -// if (BooleanUtils.isNotTrue(skipAction) -// && abstractButton.isFocusable() -// && !(abstractButton instanceof JMenuItem) -// && !(abstractButton instanceof JCheckBox) -// && !(abstractButton instanceof JRadioButton)) { -// -// if (action == null) { -// throw new IllegalStateException("No action defined for button: " + actionName); -// } -// -// if (log.isDebugEnabled()) { -// log.debug("Register action: " + actionName); -// } -// -// abstractButton.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), actionName); -// abstractButton.getActionMap().put(actionName, action); -// -// } } protected void initNumberEditor(NumberEditor editor) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditor.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditor.jaxx index 1b976c8..7208caf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditor.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditor.jaxx @@ -20,12 +20,13 @@ <org.nuiton.jaxx.widgets.number.NumberEditor genericType='E extends Number'> <import> + fr.ifremer.tutti.type.WeightUnit java.awt.Color </import> <Color id='computedDataColor' javaBean='null'/> - <Integer id='decimalNumber' javaBean='null'/> + <WeightUnit id='weightUnit' javaBean='null'/> <script><![CDATA[ diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java index 9291543..308eeba 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java @@ -22,8 +22,8 @@ package fr.ifremer.tutti.ui.swing.util.computable; * #L% */ +import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.TuttiUI; -import fr.ifremer.tutti.util.Weights; import jaxx.runtime.JAXXUtil; import org.nuiton.jaxx.widgets.number.NumberEditorHandler; import org.nuiton.jaxx.widgets.number.NumberEditorModel; @@ -33,7 +33,6 @@ import java.awt.Color; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.beans.PropertyChangeListener; -import java.text.DecimalFormat; /** * @author Kevin Morin - kmorin@codelutin.com @@ -41,7 +40,7 @@ import java.text.DecimalFormat; */ public class ComputableDataEditorHandler extends NumberEditorHandler { - protected Integer decimalNumber; + private WeightUnit weightUnit; @Override public void init() { @@ -84,10 +83,10 @@ public class ComputableDataEditorHandler extends NumberEditorHandler { } }); - ui.addPropertyChangeListener(ComputableDataEditor.PROPERTY_DECIMAL_NUMBER, - evt -> decimalNumber = (Integer) evt.getNewValue()); - - decimalNumber = ((ComputableDataEditor) ui).getDecimalNumber(); + ui.addPropertyChangeListener(ComputableDataEditor.PROPERTY_WEIGHT_UNIT, evt -> { + weightUnit = (WeightUnit) evt.getNewValue(); + ui.setNumberPattern(weightUnit.getNumberEditorPattern()); + }); super.init(); @@ -129,13 +128,18 @@ public class ComputableDataEditorHandler extends NumberEditorHandler { String modelText; Number computedData = bean.getComputedData(); -// if (ui.isUseFloat() && decimalNumber != null && computedData != null) { - if (decimalNumber != null && computedData != null) { - DecimalFormat decimalFormat = Weights.getDecimalFormat(1, decimalNumber); - modelText = decimalFormat.format(computedData); + if (weightUnit != null) { + modelText = weightUnit.renderWeight((Float) computedData); } else { modelText = JAXXUtil.getStringValue(computedData); } +// if (ui.isUseFloat() && decimalNumber != null && computedData != null) { +// if (decimalNumber != null && computedData != null) { +// DecimalFormat decimalFormat = Weights.getDecimalFormat(1, decimalNumber); +// modelText = decimalFormat.format(computedData); +// } else { +// modelText = JAXXUtil.getStringValue(computedData); +// } tf.setText(modelText); } else { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java index b67b3b2..78934cf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java @@ -24,7 +24,6 @@ package fr.ifremer.tutti.ui.swing.util.computable; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.TuttiUI; -import fr.ifremer.tutti.util.Weights; import jaxx.runtime.JAXXUtil; import javax.swing.AbstractCellEditor; @@ -44,7 +43,6 @@ import java.awt.Font; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.io.Serializable; -import java.text.DecimalFormat; /** * Editor for TuttiComputedOrNotData @@ -55,47 +53,28 @@ import java.text.DecimalFormat; public class ComputableDataTableCell extends DefaultTableCellRenderer { private static final long serialVersionUID = 1L; - public static TableCellRenderer newRender(TableCellRenderer renderer, - WeightUnit weightUnit, - Color computedDataColor) { + public static TableCellRenderer newRender(TableCellRenderer renderer, WeightUnit weightUnit, Color computedDataColor) { - return new TuttiComputedOrNotDataTableCellRenderer(renderer, - true, - weightUnit.getNumberDigits(), - computedDataColor); + return new TuttiComputedOrNotDataTableCellRenderer(weightUnit, renderer, computedDataColor); } - public static TableCellEditor newEditor(Class type, - WeightUnit weightUnit, - Color computedDataColor) { + public static TableCellEditor newEditor(WeightUnit weightUnit, Color computedDataColor) { - return new TuttiComputedOrNotDataTableCellEditor(type, - false, - true, - weightUnit.getNumberDigits(), - weightUnit.getNumberEditorPattern(), - computedDataColor); + return new TuttiComputedOrNotDataTableCellEditor(weightUnit, computedDataColor); } - public static class TuttiComputedOrNotDataTableCellEditor - extends AbstractCellEditor - implements TableCellEditor, FocusListener, AncestorListener { + public static class TuttiComputedOrNotDataTableCellEditor extends AbstractCellEditor implements TableCellEditor, FocusListener, AncestorListener { private static final long serialVersionUID = 1L; - protected final ComputableDataEditor numberEditor; + private final ComputableDataEditor<Float> numberEditor; - protected ComputableData data; + private ComputableData<Float> data; /** constructor */ - public TuttiComputedOrNotDataTableCellEditor(Class type, - boolean useSign, - boolean useFloat, - Integer decimalNumber, - String numberPattern, - Color computedDataColor) { - - numberEditor = new ComputableDataEditor(); + public TuttiComputedOrNotDataTableCellEditor(WeightUnit weightUnit, Color computedDataColor) { + + numberEditor = new ComputableDataEditor<>(); numberEditor.setComputedDataColor(computedDataColor); numberEditor.getTextField().setHorizontalAlignment(SwingConstants.RIGHT); numberEditor.getTextField().addFocusListener(this); @@ -103,18 +82,16 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { numberEditor.getTextField().setBorder(new LineBorder(Color.GRAY, 2)); numberEditor.setSelectAllTextOnError(true); - numberEditor.setNumberPattern(numberPattern); - numberEditor.setNumberType(type); - numberEditor.setUseSign(useSign); - numberEditor.setDecimalNumber(decimalNumber); + numberEditor.setNumberType(Float.class); + numberEditor.setUseSign(false); numberEditor.init(); + numberEditor.setWeightUnit(weightUnit); } @Override - public Component getTableCellEditorComponent(JTable table, Object value, - boolean isSelected, int row, int column) { + public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - data = (ComputableData) value; + data = (ComputableData<Float>) value; numberEditor.setNumberValue(data.getData()); // Check nullity and set the text that will be selected with the current value @@ -130,7 +107,7 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { } @Override - public ComputableData getCellEditorValue() { + public ComputableData<Float> getCellEditorValue() { return data; } @@ -167,7 +144,7 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { boolean result = super.stopCellEditing(); // Reset previous data to avoid keeping it on other cell edition if (result) { - data.setData(numberEditor.getModel().getNumberValue()); + data.setData((Float) numberEditor.getModel().getNumberValue()); numberEditor.setBean((Serializable) null); @@ -177,29 +154,31 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { } } - public static class TuttiComputedOrNotDataTableCellRenderer - implements TableCellRenderer { + private static class TuttiComputedOrNotDataTableCellRenderer implements TableCellRenderer { + + private final WeightUnit weightUnit; protected final TableCellRenderer delegate; - protected Integer decimalNumber; +// protected Integer decimalNumber; protected Color computedDataColor; - protected boolean useFloat; - - public TuttiComputedOrNotDataTableCellRenderer( - TableCellRenderer delegate, - boolean useFloat, - Integer decimalNumber, - Color computedDataColor) { +// protected boolean useFloat; + private TuttiComputedOrNotDataTableCellRenderer(WeightUnit weightUnit, + TableCellRenderer delegate, +// boolean useFloat, +// Integer decimalNumber, + Color computedDataColor) { + this.weightUnit = weightUnit; this.delegate = delegate; - this.useFloat = useFloat; - this.decimalNumber = decimalNumber; +// this.useFloat = useFloat; +// this.decimalNumber = decimalNumber; this.computedDataColor = computedDataColor; } + @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, @@ -207,8 +186,8 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { int row, int column) { - ComputableData data = (ComputableData) value; - Number dataValue = data.getData(); + ComputableData<Float> data = (ComputableData<Float>) value; + Float dataValue = data.getData(); Font font; Color foreground; String text; @@ -217,12 +196,15 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { font = TuttiUI.TEXTFIELD_COMPUTED_FONT; foreground = computedDataColor; - if (useFloat && decimalNumber != null && dataValue != null) { - DecimalFormat decimalFormat = Weights.getDecimalFormat(1, decimalNumber); - text = JAXXUtil.getStringValue(decimalFormat.format(dataValue)); - } else { - text = JAXXUtil.getStringValue(dataValue); - } + text = weightUnit.renderWeight(dataValue); + +// if (useFloat && decimalNumber != null && dataValue != null) { +// DecimalFormat decimalFormat = Weights.getDecimalFormat(1, decimalNumber); +// text = JAXXUtil.getStringValue(decimalFormat.format(dataValue)); +// text = weightUnit.renderWeight((Float) dataValue); +// } else { +// text = JAXXUtil.getStringValue(dataValue); +// } } else { font = TuttiUI.TEXTFIELD_NORMAL_FONT; @@ -251,4 +233,5 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { } } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.