branch develop updated (dc657ef -> 472392e)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from dc657ef refs #6539 use tutti-launcher 1.0.1 new fba7db5 refs #6540 new 472392e fixes #6569 [ERGONOMIE] amélioration de la visibilité et du déclanchement des .csv et .pdf sur les traits The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 472392effaecc53f56dc4b67e5076e380b721aa8 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 28 13:53:21 2015 +0100 fixes #6569 [ERGONOMIE] amélioration de la visibilité et du déclanchement des .csv et .pdf sur les traits commit fba7db58a0f2951fdaaebf99377040ccc7206b56 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 27 16:57:52 2015 +0100 refs #6540 Summary of changes: tutti-ui-swing-updater/pom.xml | 13 ---- .../content/operation/EditFishingOperationUI.css | 5 ++ .../content/operation/EditFishingOperationUI.jaxx | 8 ++- .../operation/EditFishingOperationUIHandler.java | 2 + .../content/operation/catches/EditCatchesUI.css | 8 +++ .../content/operation/catches/EditCatchesUI.jaxx | 14 ++-- .../operation/catches/EditCatchesUIHandler.java | 75 ++++++++++++++++------ .../catches/accidental/AccidentalBatchUI.css | 6 ++ .../catches/accidental/AccidentalBatchUI.jaxx | 10 ++- .../accidental/AccidentalBatchUIHandler.java | 4 +- .../operation/catches/benthos/BenthosBatchUI.css | 6 ++ .../operation/catches/benthos/BenthosBatchUI.jaxx | 10 ++- .../catches/benthos/BenthosBatchUIHandler.java | 2 + .../IndividualObservationBatchUI.css | 6 ++ .../IndividualObservationBatchUI.jaxx | 10 ++- .../IndividualObservationBatchUIHandler.java | 2 + .../catches/marinelitter/MarineLitterBatchUI.css | 6 ++ .../catches/marinelitter/MarineLitterBatchUI.jaxx | 10 ++- .../marinelitter/MarineLitterBatchUIHandler.java | 2 + .../operation/catches/species/SpeciesBatchUI.css | 8 +++ .../operation/catches/species/SpeciesBatchUI.jaxx | 16 +++-- .../catches/species/SpeciesBatchUIHandler.java | 2 + .../ui/swing/util/AbstractTuttiUIHandler.java | 31 +++++++-- 23 files changed, 195 insertions(+), 61 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit fba7db58a0f2951fdaaebf99377040ccc7206b56 Author: Kevin Morin <morin@codelutin.com> Date: Tue Jan 27 16:57:52 2015 +0100 refs #6540 --- tutti-ui-swing-updater/pom.xml | 13 ---- .../operation/catches/EditCatchesUIHandler.java | 72 ++++++++++++++++------ 2 files changed, 52 insertions(+), 33 deletions(-) diff --git a/tutti-ui-swing-updater/pom.xml b/tutti-ui-swing-updater/pom.xml index dae37b6..8519855 100644 --- a/tutti-ui-swing-updater/pom.xml +++ b/tutti-ui-swing-updater/pom.xml @@ -5,18 +5,6 @@ Copyright (C) 2013 - 2014 Ifremer %% This program is free software: you can redistribute it and/or modify -<<<<<<< HEAD it under the terms of the GNU Affero 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 Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses />. -======= 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. @@ -29,7 +17,6 @@ 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>. ->>>>>>> refs/heads/master #L% --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 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 e539f7f..26c7ae6 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 @@ -49,8 +49,8 @@ import org.apache.batik.dom.svg.SAXSVGDocumentFactory; import org.apache.batik.dom.svg.SVGOMRectElement; import org.apache.batik.dom.svg.SVGOMTextElement; import org.apache.batik.swing.JSVGCanvas; -import org.apache.batik.swing.svg.GVTTreeBuilderAdapter; -import org.apache.batik.swing.svg.GVTTreeBuilderEvent; +import org.apache.batik.swing.gvt.GVTTreeRendererAdapter; +import org.apache.batik.swing.gvt.GVTTreeRendererEvent; import org.apache.batik.util.RunnableQueue; import org.apache.batik.util.XMLResourceDescriptor; import org.apache.commons.beanutils.BeanUtils; @@ -246,9 +246,10 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi canvas.setRecenterOnResize(true); - canvas.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() { - public void gvtBuildCompleted(GVTTreeBuilderEvent e) { - + canvas.addGVTTreeRendererListener(new GVTTreeRendererAdapter() { + @Override + public void gvtRenderingCompleted(GVTTreeRendererEvent gvtTreeRendererEvent) { + log.info("gvtRenderingCompleted"); TuttiConfiguration config = getConfig(); WeightUnit catchWeightUnit = WeightUnit.KG; WeightUnit speciesWeightUnit = config.getSpeciesWeightUnit(); @@ -306,9 +307,19 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi } })); - initSvgField(CatchBatch.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT, speciesWeightUnit); - initSvgField(CatchBatch.PROPERTY_BENTHOS_TOTAL_COMPUTED_WEIGHT, benthosWeightUnit); - initSvgField(CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, model.getMarineLitterTotalComputedOrNotWeight(), marineLitterWeightUnit); + initSvgField(CatchBatch.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT, + speciesWeightUnit, + CatchBatch.PROPERTY_BENTHOS_TOTAL_COMPUTED_WEIGHT, + CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT); + initSvgField(CatchBatch.PROPERTY_BENTHOS_TOTAL_COMPUTED_WEIGHT, + benthosWeightUnit, + CatchBatch.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT, + CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT); + initSvgField(CatchBatch.PROPERTY_MARINE_LITTER_TOTAL_WEIGHT, + model.getMarineLitterTotalComputedOrNotWeight(), + marineLitterWeightUnit, + CatchBatch.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT, + CatchBatch.PROPERTY_BENTHOS_TOTAL_COMPUTED_WEIGHT); model.addPropertyChangeListener(new RatioPropertyChangeListener("ratioSpeciesSampleSortedOverSpeciesSortedWeightLabel", CatchBatch.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT, @@ -357,13 +368,14 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi }); } - protected void initSvgField(String property, WeightUnit weightUnit) { - initSvgField(property, null, weightUnit); + protected void initSvgField(String property, WeightUnit weightUnit, String... idsInGroup) { + initSvgField(property, null, weightUnit, idsInGroup); } protected void initSvgField(final String property, final ComputableData<Float> computableData, - final WeightUnit weightUnit) { + final WeightUnit weightUnit, + final String... idsInGroup) { if (log.isDebugEnabled()) { log.debug("init " + property + " field"); @@ -388,11 +400,21 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi labelElement.setTextContent(weightUnit.decorateLabel(t("tutti.editCatchBatch.field." + property))); bbox = labelTextElem.getBBox(); float labelX = bbox.getX(); - float width = Math.abs(x - labelX); + float width = Math.abs(x - labelX) + 10; + + SVGOMRectElement labelRectElement = (SVGOMRectElement) svgDocument.getElementById(property + "LabelRect"); + float actualWidth = Math.abs(labelRectElement.getBBox().getX() - labelX) + 10; + + if (actualWidth < width) { + labelRectElement.setAttribute("width", Float.toString(width)); + labelRectElement.setAttribute("x", String.valueOf(labelX - 10)); - Element labelRectElement = svgDocument.getElementById(property + "LabelRect"); - labelRectElement.setAttribute("width", Float.toString(width + 10)); - labelRectElement.setAttribute("x", String.valueOf(labelX - 10)); + for (String id : idsInGroup) { + Element el = svgDocument.getElementById(id + "LabelRect"); + el.setAttribute("width", Float.toString(width)); + el.setAttribute("x", String.valueOf(labelX - 10)); + } + } } }); @@ -400,7 +422,7 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi if (computableData == null) { // computed data value - OnDataOrComputedDataValueChangedListener listener = new OnDataOrComputedDataValueChangedListener(property, weightUnit, true, canvas, svgDocument, colorComputedWeights); + OnDataOrComputedDataValueChangedListener listener = new OnDataOrComputedDataValueChangedListener(property, weightUnit, true, canvas, svgDocument, colorComputedWeights, idsInGroup); getModel().addPropertyChangeListener(property, listener); } else { @@ -410,7 +432,7 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi EventTarget target = (EventTarget) element; target.addEventListener("click", new OnValueClickListener(computableData, property, weightUnit), false); - OnDataOrComputedDataValueChangedListener listener = new OnDataOrComputedDataValueChangedListener(property, weightUnit, false, canvas, svgDocument, colorComputedWeights); + OnDataOrComputedDataValueChangedListener listener = new OnDataOrComputedDataValueChangedListener(property, weightUnit, false, canvas, svgDocument, colorComputedWeights, idsInGroup); computableData.addPropertyChangeListener(listener); } } @@ -987,18 +1009,21 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi private final WeightUnit weightUnit; private final boolean onlyReactOnComputedData; private final Color colorComputedWeights; + private final String[] idsInGroup; public OnDataOrComputedDataValueChangedListener(String property, WeightUnit weightUnit, boolean onlyReactOnComputedData, JSVGCanvas canvas, Document svgDocument, - Color colorComputedWeights) { + Color colorComputedWeights, + String... idsInGroup) { super(canvas, svgDocument); this.property = property; this.weightUnit = weightUnit; this.onlyReactOnComputedData = onlyReactOnComputedData; this.colorComputedWeights = colorComputedWeights; + this.idsInGroup = idsInGroup; } @Override @@ -1068,8 +1093,15 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi SVGRect bbox = textElem.getBBox(); if (bbox != null) { float width = bbox.getWidth() + 15; - Element rectElement = svgDocument.getElementById(property + "Rect"); - rectElement.setAttribute("width", Float.toString(width)); + SVGOMRectElement rectElement = (SVGOMRectElement) svgDocument.getElementById(property + "Rect"); + float actualWidth = rectElement.getBBox().getWidth(); + if (actualWidth < width) { + rectElement.setAttribute("width", Float.toString(width)); + for (String id : idsInGroup) { + Element el = svgDocument.getElementById(id + "Rect"); + el.setAttribute("width", Float.toString(width)); + } + } } } }); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 472392effaecc53f56dc4b67e5076e380b721aa8 Author: Kevin Morin <morin@codelutin.com> Date: Wed Jan 28 13:53:21 2015 +0100 fixes #6569 [ERGONOMIE] amélioration de la visibilité et du déclanchement des .csv et .pdf sur les traits --- .../content/operation/EditFishingOperationUI.css | 5 ++++ .../content/operation/EditFishingOperationUI.jaxx | 8 +++++- .../operation/EditFishingOperationUIHandler.java | 2 ++ .../content/operation/catches/EditCatchesUI.css | 8 ++++++ .../content/operation/catches/EditCatchesUI.jaxx | 14 +++++++--- .../operation/catches/EditCatchesUIHandler.java | 3 ++- .../catches/accidental/AccidentalBatchUI.css | 6 +++++ .../catches/accidental/AccidentalBatchUI.jaxx | 10 +++++-- .../accidental/AccidentalBatchUIHandler.java | 4 +-- .../operation/catches/benthos/BenthosBatchUI.css | 6 +++++ .../operation/catches/benthos/BenthosBatchUI.jaxx | 10 +++++-- .../catches/benthos/BenthosBatchUIHandler.java | 2 ++ .../IndividualObservationBatchUI.css | 6 +++++ .../IndividualObservationBatchUI.jaxx | 10 +++++-- .../IndividualObservationBatchUIHandler.java | 2 ++ .../catches/marinelitter/MarineLitterBatchUI.css | 6 +++++ .../catches/marinelitter/MarineLitterBatchUI.jaxx | 10 +++++-- .../marinelitter/MarineLitterBatchUIHandler.java | 2 ++ .../operation/catches/species/SpeciesBatchUI.css | 8 ++++++ .../operation/catches/species/SpeciesBatchUI.jaxx | 16 +++++++---- .../catches/species/SpeciesBatchUIHandler.java | 2 ++ .../ui/swing/util/AbstractTuttiUIHandler.java | 31 +++++++++++++++++----- 22 files changed, 143 insertions(+), 28 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css index d942006..e3a13f8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css @@ -83,6 +83,11 @@ JXDatePicker { borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(importFromColumnFile)}; + renderer: {new ActionListCellRenderer()}; +} + #fishingOperationTabScrollPane { _onlyVerticalScrollable: true; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx index 06d3d79..2d0ec2b 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx @@ -33,6 +33,7 @@ fr.ifremer.tutti.ui.swing.TuttiHelpBroker fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment fr.ifremer.tutti.type.CoordinateEditorType @@ -153,8 +154,13 @@ public EditFishingOperationUI(FishingOperationsUI parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tuttihelp.editeditFishingOperation.help"'/> + <JButton id='importFromColumnFile'/> + <JToolBar id='traitGeneralTabPaneToolBar'> - <JButton id='importFromColumnFile'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='fishingOperationAttachmentsButton' constructorParams='getHandler().getContext(), getModel()'/> </JToolBar> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java index 244460b..df35462 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java @@ -343,6 +343,8 @@ public class EditFishingOperationUIHandler extends AbstractTuttiTabContainerUIHa initUI(ui); + initActionComboBox(ui.getActionComboBox()); + List<Person> people = getDataContext().getPersons(); initBeanList(ui.getRecorderPersonList(), people, diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css index 0a4d207..0680c8d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css @@ -46,6 +46,14 @@ ComputableDataEditor { borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(exportFishingOperationReportButton, + exportFishingOperationReportForSumatraButton, + importMultiPostButton, + exportMultiPostButton)}; + renderer: {new ActionListCellRenderer()}; +} + #catchesCaracteristicsAttachmentsButton { enabled: {model.getObjectId() != null}; toolTipText: "tutti.editCatchBatch.action.attachments.tip"; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx index 4f285c1..8c4ea9d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx @@ -44,6 +44,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapEditorUI fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor @@ -101,11 +102,16 @@ public EditCatchesUI(FishingOperationsUI parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tutti.editCatchBatch.help"'/> + <JButton id='exportFishingOperationReportButton'/> + <JButton id='exportFishingOperationReportForSumatraButton'/> + <JButton id='importMultiPostButton'/> + <JButton id='exportMultiPostButton'/> + <JToolBar id='catchesCaracteristicsTabToolBar'> - <JButton id='exportFishingOperationReportButton'/> - <JButton id='exportFishingOperationReportForSumatraButton'/> - <JButton id='importMultiPostButton'/> - <JButton id='exportMultiPostButton'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='catchesCaracteristicsAttachmentsButton' constructorParams='getHandler().getContext(), getModel()'/> </JToolBar> 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 26c7ae6..e1ea1d4 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 @@ -199,6 +199,8 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi initUI(ui); + initActionComboBox(ui.getActionComboBox()); + EditCatchesUIModel model = getModel(); changeValidatorContext(model.getValidationContext(), getValidator()); @@ -1222,5 +1224,4 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi } } } - } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css index 2154d36..6423e37 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.css @@ -37,6 +37,12 @@ NumberEditor { borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(importMultiPostButton, + exportMultiPostButton)}; + renderer: {new ActionListCellRenderer()}; +} + #accidentalBatchAttachmentsButton { toolTipText: "tutti.editAccidentalBatch.action.attachments.tip"; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx index c45ffb4..31fa909 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUI.jaxx @@ -28,6 +28,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment org.jdesktop.swingx.JXTable @@ -56,9 +57,14 @@ public AccidentalBatchUI(TuttiUI<?,?> parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tutti.editAccidentalBatch.help"'/> + <JButton id='importMultiPostButton'/> + <JButton id='exportMultiPostButton'/> + <JToolBar id='accidentalBatchTabToolBar'> - <JButton id='importMultiPostButton'/> - <JButton id='exportMultiPostButton'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='accidentalBatchAttachmentsButton' constructorParams='handler.getContext(), getContextValue(EditCatchesUIModel.class)'/> </JToolBar> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java index de8dc38..72d8381 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java @@ -32,7 +32,6 @@ import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.DecoratorService; -import fr.ifremer.tutti.service.ValidationService; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractTuttiBatchTableUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; @@ -60,7 +59,7 @@ import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import org.nuiton.validator.NuitonValidatorResult; -import javax.swing.JComponent; +import javax.swing.*; import java.util.List; /** @@ -243,6 +242,7 @@ public class AccidentalBatchUIHandler initUI(ui); + initActionComboBox(ui.getActionComboBox()); JXTable table = getTable(); // create table column model diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css index 9b74b5c..3e70e4d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css @@ -47,6 +47,12 @@ ComputableDataEditor { borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(importMultiPostButton, + exportMultiPostButton)}; + renderer: {new ActionListCellRenderer()}; +} + #benthosBatchAttachmentsButton { toolTipText: "tutti.editBenthosBatch.action.attachments.tip"; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx index 2a398f4..df030fe 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx @@ -30,6 +30,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.SpeciesSortMode fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor @@ -61,9 +62,14 @@ public BenthosBatchUI(TuttiUI<?,?> parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tutti.editBenthosBatch.help"'/> + <JButton id='importMultiPostButton'/> + <JButton id='exportMultiPostButton'/> + <JToolBar id='benthosBatchTabToolBar'> - <JButton id='importMultiPostButton'/> - <JButton id='exportMultiPostButton'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='benthosBatchAttachmentsButton' constructorParams='handler.getContext(), getContextValue(EditCatchesUIModel.class)'/> </JToolBar> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java index 8099423..8dde3e8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java @@ -672,6 +672,8 @@ public class BenthosBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Bent initUI(ui); + initActionComboBox(ui.getActionComboBox()); + List<Integer> samplingOrder = sampleCategoryModel.getSamplingOrder(); if (log.isDebugEnabled()) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css index 69344f9..edfdd58 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.css @@ -30,6 +30,12 @@ borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(importMultiPostButton, + exportMultiPostButton)}; + renderer: {new ActionListCellRenderer()}; +} + #individualObservationBatchAttachmentsButton { toolTipText: "tutti.editIndividualObservationBatch.action.attachments.tip"; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx index 707cc0f..baeb4cd 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUI.jaxx @@ -31,6 +31,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment org.nuiton.jaxx.widgets.number.NumberEditor @@ -62,9 +63,14 @@ public IndividualObservationBatchUI(TuttiUI<?,?> parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tutti.editIndividualObservationBatch.help"'/> + <JButton id='importMultiPostButton'/> + <JButton id='exportMultiPostButton'/> + <JToolBar id='individualObservationBatchTabToolBar'> - <JButton id='importMultiPostButton'/> - <JButton id='exportMultiPostButton'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='individualObservationBatchAttachmentsButton' constructorParams='handler.getContext(), getContextValue(EditCatchesUIModel.class)'/> </JToolBar> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java index 0236bdb..40c7a86 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java @@ -272,6 +272,8 @@ public class IndividualObservationBatchUIHandler initUI(ui); + initActionComboBox(ui.getActionComboBox()); + JXTable table = getTable(); // can show / hide some columns in model diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css index 850577f..850fb10 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css @@ -37,6 +37,12 @@ ComputableDataEditor { borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(importMultiPostButton, + exportMultiPostButton)}; + renderer: {new ActionListCellRenderer()}; +} + #marineLitterBatchAttachmentsButton { toolTipText: "tutti.editMarineLitterBatch.action.attachments.tip"; } 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 0a30168..abf01af 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 @@ -29,6 +29,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor @@ -61,9 +62,14 @@ public MarineLitterBatchUI(TuttiUI<?,?> parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tutti.editMarineLitterBatch.help"'/> + <JButton id='importMultiPostButton'/> + <JButton id='exportMultiPostButton'/> + <JToolBar id='marineLitterBatchTabToolBar'> - <JButton id='importMultiPostButton'/> - <JButton id='exportMultiPostButton'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='marineLitterBatchAttachmentsButton' constructorParams='handler.getContext(), getContextValue(EditCatchesUIModel.class)'/> </JToolBar> 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 b19c1ce..a6626c9 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 @@ -230,6 +230,8 @@ public class MarineLitterBatchUIHandler extends AbstractTuttiBatchTableUIHandler initUI(ui); + initActionComboBox(ui.getActionComboBox()); + JXTable table = getTable(); // create table column model diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css index cf4b6c4..f26ce26 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css @@ -47,6 +47,14 @@ ComputableDataEditor { borderPainted: false; } +#actionComboBox { + model: {SwingUtil.newComboModel(importPupitriButton, + importPsionButton, + importMultiPostButton, + exportMultiPostButton)}; + renderer: {new ActionListCellRenderer()}; +} + #speciesBatchAttachmentsButton { toolTipText: "tutti.editSpeciesBatch.action.attachments.tip"; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx index 40e7ae2..73e27c9 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx @@ -28,6 +28,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.SpeciesSortMode fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + org.nuiton.jaxx.application.swing.util.ActionListCellRenderer fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor @@ -59,12 +60,17 @@ public SpeciesBatchUI(TuttiUI<?,?> parentUI) { <TuttiHelpBroker id='broker' constructorParams='"tutti.editSpeciesBatch.help"'/> + <JButton id='importPupitriButton'/> + <JButton id='importPsionButton'/> + <JButton id='importBigfinButton'/> + <JButton id='importMultiPostButton'/> + <JButton id='exportMultiPostButton'/> + <JToolBar id='speciesBatchTabToolBar'> - <JButton id='importPupitriButton'/> - <JButton id='importPsionButton'/> - <JButton id='importBigfinButton'/> - <JButton id='importMultiPostButton'/> - <JButton id='exportMultiPostButton'/> + <JComboBox id='actionComboBox' + onMouseEntered='actionComboBox.showPopup()' + onMouseClicked='handler.startAction(event)' + onActionPerformed='handler.startAction(event)'/> <ButtonAttachment id='speciesBatchAttachmentsButton' constructorParams='handler.getContext(), getContextValue(EditCatchesUIModel.class)'/> </JToolBar> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java index 648d8da..1577092 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java @@ -675,6 +675,8 @@ public class SpeciesBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Spec initUI(ui); + initActionComboBox(ui.getActionComboBox()); + List<Integer> samplingOrder = sampleCategoryModel.getSamplingOrder(); if (log.isDebugEnabled()) { 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 19732d8..5bcbce4 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 @@ -60,19 +60,16 @@ import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import org.nuiton.jaxx.widgets.number.NumberEditor; import org.nuiton.validator.bean.simple.SimpleBeanValidator; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.JTextField; +import javax.swing.*; import javax.swing.border.LineBorder; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; -import java.awt.Color; -import java.awt.Component; -import java.awt.Font; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.text.DecimalFormat; @@ -187,6 +184,22 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend return decorator; } + public void startAction(MouseEvent event) { + startAction(event); + } + + public void startAction(ActionEvent event) { + JComboBox existingCombo = (JComboBox) event.getSource(); + JButton selectedAction = (JButton) existingCombo.getSelectedItem(); + // hide popup before performing the action, otherwise, if the action + // opens a popup, the user must click a first time to hide the combobox + // popup to then interact with the popup opened by the action + // (see http://forge.codelutin.com/issues/2032) + existingCombo.setSelectedIndex(0); + existingCombo.hidePopup(); + getContext().getActionEngine().runAction(selectedAction); + } + @Override protected void addHighlighters(final JXTable table) { @@ -532,4 +545,8 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend return col; } + protected void initActionComboBox(JComboBox combo) { + combo.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE); + combo.addMouseListener(TuttiUIUtil.GRAB_FOCUS_ON_ENTER_LISTENER); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm