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 43a38d26a59759d313d85f6cba8202d9b74c89fd Author: Kevin Morin <morin@codelutin.com> Date: Fri Jan 29 14:49:39 2016 +0100 ajout des icones + tri des noeuds dans les arbres (refs #7929) --- .../swing/content/protocol/zones/ZoneEditorUI.jaxx | 6 +++ .../swing/content/protocol/zones/ZoneEditorUI.jcss | 30 ++++++++++++-- .../protocol/zones/ZoneEditorUIHandler.java | 17 ++++++++ .../CollapseAvailableStratasTreeAction.java | 20 ++++++++++ .../zones/actions/CollapseZonesTreeAction.java | 20 ++++++++++ .../actions/ExpandAvailableStratasTreeAction.java | 21 ++++++++++ .../zones/actions/ExpandZonesTreeAction.java | 21 ++++++++++ .../content/protocol/zones/tree/StrataNode.java | 5 +-- .../protocol/zones/tree/StratasTreeModel.java | 44 +++------------------ .../content/protocol/zones/tree/SubStrataNode.java | 4 +- .../protocol/zones/tree/ZoneEditorNode.java | 33 ++++++++++++++++ .../zones/tree/ZoneEditorTreeCellRenderer.java | 37 +++++++++-------- .../content/protocol/zones/tree/ZoneNode.java | 5 +-- .../protocol/zones/tree/ZonesTreeModel.java | 13 ++++-- .../resources/i18n/tutti-ui-swing_en_GB.properties | 2 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 -- .../src/main/resources/icons/action-left.png | Bin 0 -> 345 bytes .../src/main/resources/icons/action-right.png | Bin 0 -> 349 bytes 18 files changed, 206 insertions(+), 75 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jaxx index 18129bb..bd4b528 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jaxx @@ -1,11 +1,13 @@ <Table id='editProtocolTopPanel' + fill="both" implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<ZoneEditorUIModel, ZoneEditorUIHandler>'> <import> fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.ZoneEditorTreeCellRenderer fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + jaxx.runtime.SwingUtil </import> <script><![CDATA[ @@ -23,6 +25,8 @@ <cell> <JToolBar id="zonesTreeToolBar"> <JButton id="createZone"/> + <JButton id="expandZonesTree"/> + <JButton id="collapseZonesTree"/> </JToolBar> </cell> <cell> @@ -30,6 +34,8 @@ </cell> <cell> <JToolBar id="availableStratasTreeToolBar"> + <JButton id="expandAvailableStratasTree"/> + <JButton id="collapseAvailableStratasTree"/> </JToolBar> </cell> </row> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jcss index 8c336fa..c322086 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUI.jcss @@ -3,23 +3,47 @@ JTree { expandsSelectedPaths: true; scrollsOnExpand: true; rootVisible: false; - showsRootHandles: false; + showsRootHandles: true; cellRenderer: {new ZoneEditorTreeCellRenderer()}; } +JToolBar { + floatable: false; +} + #createZone { actionIcon: add; _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.CreateZoneAction.class}; } +#expandZonesTree { + actionIcon: expand; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.ExpandZonesTreeAction.class}; +} + +#collapseZonesTree { + actionIcon: collapse; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.CollapseZonesTreeAction.class}; +} + +#expandAvailableStratasTree { + actionIcon: expand; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.ExpandAvailableStratasTreeAction.class}; +} + +#collapseAvailableStratasTree { + actionIcon: collapse; + _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.CollapseAvailableStratasTreeAction.class}; +} + #addButton { - text: "<<"; + actionIcon: left; enabled: {zonesTree.getSelectionCount() == 1}; _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.AddStratasAction.class}; } #removeButton { - text: ">>"; + actionIcon: right; enabled: {zonesTree.getSelectionCount() >= 1}; _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.RemoveStratasAction.class}; } \ No newline at end of file diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUIHandler.java index 80a630c..1e08f5a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/ZoneEditorUIHandler.java @@ -14,12 +14,14 @@ import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.ZoneUIModel; import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.StratasTreeModel; import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.ZonesTreeModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.JTree; +import javax.swing.SwingUtilities; import javax.swing.tree.TreeModel; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -164,16 +166,31 @@ public class ZoneEditorUIHandler extends AbstractTuttiUIHandler<ZoneEditorUIMode TreeModel availableStratasTreeModel = new StratasTreeModel(); JTree availableStratasTree = ui.getAvailableStratasTree(); availableStratasTree.setModel(availableStratasTreeModel); + SwingUtil.addExpandOnClickListener(availableStratasTree); TreeModel zonesTreeModel = new ZonesTreeModel(); JTree zonesTree = ui.getZonesTree(); zonesTree.setModel(zonesTreeModel); + SwingUtil.addExpandOnClickListener(zonesTree); // get data initModel(); } + public static void collapseTree(final JTree tree) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + int i = 0; + + while(i < tree.getRowCount()) { + tree.collapseRow(i++); + } + + } + }); + } + @Override public SwingValidator<ZoneEditorUIModel> getValidator() { return null; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/CollapseAvailableStratasTreeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/CollapseAvailableStratasTreeAction.java new file mode 100644 index 0000000..940f29f --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/CollapseAvailableStratasTreeAction.java @@ -0,0 +1,20 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.zones.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.zones.ZoneEditorUI; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.5 + */ +public class CollapseAvailableStratasTreeAction extends SimpleActionSupport<ZoneEditorUI> { + + public CollapseAvailableStratasTreeAction(ZoneEditorUI zoneEditorUI) { + super(zoneEditorUI); + } + + @Override + protected void onActionPerformed(ZoneEditorUI zoneEditorUI) { + zoneEditorUI.getHandler().collapseTree(zoneEditorUI.getAvailableStratasTree()); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/CollapseZonesTreeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/CollapseZonesTreeAction.java new file mode 100644 index 0000000..8d2823e --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/CollapseZonesTreeAction.java @@ -0,0 +1,20 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.zones.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.zones.ZoneEditorUI; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.5 + */ +public class CollapseZonesTreeAction extends SimpleActionSupport<ZoneEditorUI> { + + public CollapseZonesTreeAction(ZoneEditorUI zoneEditorUI) { + super(zoneEditorUI); + } + + @Override + protected void onActionPerformed(ZoneEditorUI zoneEditorUI) { + zoneEditorUI.getHandler().collapseTree(zoneEditorUI.getZonesTree()); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/ExpandAvailableStratasTreeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/ExpandAvailableStratasTreeAction.java new file mode 100644 index 0000000..77d7977 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/ExpandAvailableStratasTreeAction.java @@ -0,0 +1,21 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.zones.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.zones.ZoneEditorUI; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; +import jaxx.runtime.SwingUtil; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.5 + */ +public class ExpandAvailableStratasTreeAction extends SimpleActionSupport<ZoneEditorUI> { + + public ExpandAvailableStratasTreeAction(ZoneEditorUI zoneEditorUI) { + super(zoneEditorUI); + } + + @Override + protected void onActionPerformed(ZoneEditorUI zoneEditorUI) { + SwingUtil.expandTree(zoneEditorUI.getAvailableStratasTree()); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/ExpandZonesTreeAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/ExpandZonesTreeAction.java new file mode 100644 index 0000000..d7541db --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/ExpandZonesTreeAction.java @@ -0,0 +1,21 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.zones.actions; + +import fr.ifremer.tutti.ui.swing.content.protocol.zones.ZoneEditorUI; +import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport; +import jaxx.runtime.SwingUtil; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.5 + */ +public class ExpandZonesTreeAction extends SimpleActionSupport<ZoneEditorUI> { + + public ExpandZonesTreeAction(ZoneEditorUI zoneEditorUI) { + super(zoneEditorUI); + } + + @Override + protected void onActionPerformed(ZoneEditorUI zoneEditorUI) { + SwingUtil.expandTree(zoneEditorUI.getZonesTree()); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StrataNode.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StrataNode.java index c4a4f03..0b33420 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StrataNode.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StrataNode.java @@ -2,13 +2,11 @@ package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.StrataUIModel; -import javax.swing.tree.DefaultMutableTreeNode; - /** * @author Kevin Morin (Code Lutin) * @since 4.5 */ -public class StrataNode extends DefaultMutableTreeNode { +public class StrataNode extends ZoneEditorNode { public StrataNode(StrataUIModel strata) { super(strata, true); @@ -17,4 +15,5 @@ public class StrataNode extends DefaultMutableTreeNode { public StrataUIModel getStrata() { return (StrataUIModel) userObject; } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StratasTreeModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StratasTreeModel.java index b75dd47..dc89aed 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StratasTreeModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/StratasTreeModel.java @@ -1,7 +1,6 @@ package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree; import com.google.common.base.Preconditions; -import fr.ifremer.tutti.persistence.entities.protocol.SubStrata; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.StrataUIModel; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.SubStrataUIModel; import org.apache.commons.logging.Log; @@ -23,12 +22,12 @@ public class StratasTreeModel extends DefaultTreeModel { private static final Log log = LogFactory.getLog(StratasTreeModel.class); public StratasTreeModel() { - super(new DefaultMutableTreeNode()); + super(new ZoneEditorNode()); } public void removeStratas(Collection<StrataUIModel> stratasToRemove) { - DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot(); + ZoneEditorNode root = (ZoneEditorNode) getRoot(); Enumeration rootChildren = root.children(); Collection<DefaultMutableTreeNode> nodesToRemove = new HashSet<>(); @@ -46,29 +45,9 @@ public class StratasTreeModel extends DefaultTreeModel { } -// public void removeSubStratas(Collection<Strata> subStratasToRemove) { -// -// DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot(); -// -// Enumeration rootChildren = root.children(); -// Collection<DefaultMutableTreeNode> nodesToRemove = new HashSet<>(); -// -// while (rootChildren.hasMoreElements()) { -// -// StrataNode strataNode = (StrataNode) rootChildren.nextElement(); -// -// if (stratasToRemove.contains(strataNode.getStrata())) { -// nodesToRemove.add(strataNode); -// } -// } -// -// nodesToRemove.forEach(strataNode ->removeNodeFromParent(strataNode)); -// -// } - public void addStratas(Collection<StrataUIModel> stratasToAdd) { - DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot(); + ZoneEditorNode root = (ZoneEditorNode) getRoot(); stratasToAdd.forEach(strata -> { @@ -86,20 +65,7 @@ public class StratasTreeModel extends DefaultTreeModel { }); - } - - public void addSubStratas(Collection<SubStrata> subStratas, StrataUIModel strata) { - - StrataNode strataNode = findStrataNode(strata); - - subStratas.forEach(substrata -> { - - if (substrata != null) { - SubStrataNode subStrataNode = new SubStrataNode((SubStrataUIModel) substrata); - insertNodeInto(subStrataNode, strataNode, strataNode.getChildCount()); - } - - }); + root.sortChildren(); } @@ -140,6 +106,8 @@ public class StratasTreeModel extends DefaultTreeModel { insertNodeInto(subStrataNode, strataNode, strataNode.getChildCount()); } + + strataNode.sortChildren(); } protected StrataNode findStrataNode(StrataUIModel strata) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/SubStrataNode.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/SubStrataNode.java index 0ce5a2f..2c73aa9 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/SubStrataNode.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/SubStrataNode.java @@ -2,13 +2,11 @@ package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.SubStrataUIModel; -import javax.swing.tree.DefaultMutableTreeNode; - /** * @author Kevin Morin (Code Lutin) * @since 4.5 */ -public class SubStrataNode extends DefaultMutableTreeNode { +public class SubStrataNode extends ZoneEditorNode { public SubStrataNode(SubStrataUIModel substrata) { super(substrata, false); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorNode.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorNode.java new file mode 100644 index 0000000..519538a --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorNode.java @@ -0,0 +1,33 @@ +package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree; + +import javax.swing.tree.DefaultMutableTreeNode; +import java.util.Collections; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.5 + */ +public class ZoneEditorNode extends DefaultMutableTreeNode implements Comparable { + + public ZoneEditorNode() { + super(); + } + + public ZoneEditorNode(Object userObject, boolean allowchildren) { + super(userObject, allowchildren); + } + + public void sortChildren() { + if (children != null) { + Collections.sort(children); + } + } + + @Override + public int compareTo(Object o) { + if (o == null) { + return 1; + } + return toString().compareTo(o.toString()); + } +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorTreeCellRenderer.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorTreeCellRenderer.java index 97aad64..f81d71d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorTreeCellRenderer.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneEditorTreeCellRenderer.java @@ -1,8 +1,6 @@ package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree; -import fr.ifremer.tutti.persistence.entities.protocol.SubStrata; -import fr.ifremer.tutti.persistence.entities.protocol.Zone; -import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.StrataUIModel; +import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -24,22 +22,23 @@ public class ZoneEditorTreeCellRenderer extends DefaultTreeCellRenderer { super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); - String text = ""; - - if (value instanceof StrataNode) { - StrataUIModel strata = ((StrataNode) value).getStrata(); - text = strata.getLabel(); - - } else if (value instanceof SubStrataNode) { - SubStrata substrata = ((SubStrataNode) value).getSubstrata(); - text = substrata.getLocation().getLabel(); - - } else if (value instanceof ZoneNode) { - Zone zone = ((ZoneNode) value).getZone(); - text = zone.getLabel(); - } - - setText(text); +// String text = ""; +// +// if (value instanceof StrataNode) { +// StrataUIModel strata = ((StrataNode) value).getStrata(); +// text = strata.getLabel(); +// +// } else if (value instanceof SubStrataNode) { +// SubStrataUIModel substrata = ((SubStrataNode) value).getSubstrata(); +// text = substrata.getLabel(); +// +// } else if (value instanceof ZoneNode) { +// Zone zone = ((ZoneNode) value).getZone(); +// text = zone.getLabel(); +// } + +// setText(text); + setIcon(SwingUtil.createActionIcon("location")); return this; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneNode.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneNode.java index 924fa07..84bf1ad 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneNode.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZoneNode.java @@ -2,13 +2,11 @@ package fr.ifremer.tutti.ui.swing.content.protocol.zones.tree; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.ZoneUIModel; -import javax.swing.tree.DefaultMutableTreeNode; - /** * @author Kevin Morin (Code Lutin) * @since 4.5 */ -public class ZoneNode extends DefaultMutableTreeNode { +public class ZoneNode extends ZoneEditorNode { public ZoneNode(ZoneUIModel zone) { super(zone, true); @@ -17,4 +15,5 @@ public class ZoneNode extends DefaultMutableTreeNode { public ZoneUIModel getZone() { return (ZoneUIModel) userObject; } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZonesTreeModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZonesTreeModel.java index 3ee80fe..a7e9f23 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZonesTreeModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/tree/ZonesTreeModel.java @@ -26,12 +26,12 @@ public class ZonesTreeModel extends DefaultTreeModel { private static final Log log = LogFactory.getLog(ZonesTreeModel.class); public ZonesTreeModel() { - super(new DefaultMutableTreeNode()); + super(new ZoneEditorNode()); } public void removeZones(Collection<ZoneUIModel> zonesToRemove) { - DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot(); + ZoneEditorNode root = (ZoneEditorNode) getRoot(); Enumeration rootChildren = root.children(); Collection<DefaultMutableTreeNode> nodesToRemove = new HashSet<>(); @@ -50,7 +50,7 @@ public class ZonesTreeModel extends DefaultTreeModel { public void addZones(Collection<ZoneUIModel> zonesToAdd) { - DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot(); + ZoneEditorNode root = (ZoneEditorNode) getRoot(); zonesToAdd.forEach(zone -> { @@ -58,6 +58,9 @@ public class ZonesTreeModel extends DefaultTreeModel { insertNodeInto(zoneNode, root, root.getChildCount()); }); + + root.sortChildren(); + } public void updateStratas(ZoneUIModel zone, @@ -102,6 +105,8 @@ public class ZonesTreeModel extends DefaultTreeModel { updateSubStratas(strataNode, subStratasToAdd, Collections.emptySet()); } + + zoneNode.sortChildren(); } public void updateSubStratas(StrataUIModel strata, @@ -141,6 +146,8 @@ public class ZonesTreeModel extends DefaultTreeModel { insertNodeInto(subStrataNode, strataNode, strataNode.getChildCount()); } + + strataNode.sortChildren(); } protected ZoneNode findZoneNode(ZoneUIModel zone) { diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index ffd5466..6cc9563 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -3,7 +3,9 @@ application.action.create.error= application.error.ui.business.warning= jaxx.application.action.create.error= +left= next= +right= rtpEditor.femalePanel= rtpEditor.malePanel= rtpEditor.undefinedPanel= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 8556174..057731f 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1,9 +1,6 @@ -<<= ->>= application.action.create.error= application.error.ui.business.warning= jaxx.application.action.create.error= -next= swing.error.cannot.open.file=Aucun programme n'est défini pour ouvrir ce type de fichier. Enregistrez le fichier et ouvrez le en dehors de l'application tutti.about.bottomText=Copyright %s - %s - version %s tutti.about.message=<h3>Allegro Campagne</h3><p><strong>Outil de saisie de données d'opérations et de captures au cours des campagnes halieutiques.</strong></p><br/><p>Ce logiciel permettra la saisie en mer des données d'opération de pêche (positions, environnement, engin, etc) et des captures associées (composition de la capture en espèces scientifiques avec poids, nombres, tailles etc) pour l'ensemble des campagnes halieutiques réalisées par l'Ifremer.</p><p>Ce projet a été initiée en [...] diff --git a/tutti-ui-swing/src/main/resources/icons/action-left.png b/tutti-ui-swing/src/main/resources/icons/action-left.png new file mode 100644 index 0000000..5dc6967 Binary files /dev/null and b/tutti-ui-swing/src/main/resources/icons/action-left.png differ diff --git a/tutti-ui-swing/src/main/resources/icons/action-right.png b/tutti-ui-swing/src/main/resources/icons/action-right.png new file mode 100644 index 0000000..b1a1819 Binary files /dev/null and b/tutti-ui-swing/src/main/resources/icons/action-right.png differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.