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 48df60ecb8d5f66c6f4912bf424243e3835b211c Author: Kevin Morin <morin@codelutin.com> Date: Wed Feb 3 10:46:33 2016 +0100 activation ou non des boutons d'ajout et de suppresion des strates (refs #7929) --- .../swing/content/protocol/zones/ZoneEditorUI.jcss | 5 +- .../protocol/zones/ZoneEditorUIHandler.java | 56 ++++++++++++++++------ .../protocol/zones/actions/AddStratasAction.java | 4 ++ 3 files changed, 48 insertions(+), 17 deletions(-) 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 6a83608..115da48 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 @@ -34,7 +34,6 @@ JToolBar { _help: {"tutti.zoneEditor.action.rename.help"}; } - #expandZonesTree { actionIcon: expand; _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.ExpandZonesTreeAction.class}; @@ -57,12 +56,12 @@ JToolBar { #addButton { actionIcon: left; - enabled: {zonesTree.getSelectionCount() == 1}; + enabled: false; _simpleAction: {fr.ifremer.tutti.ui.swing.content.protocol.zones.actions.AddStratasAction.class}; } #removeButton { actionIcon: right; - enabled: {zonesTree.getSelectionCount() >= 1}; + enabled: false; _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 f541124..239922d 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 @@ -10,7 +10,9 @@ import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.StrataUIModel; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.SubStrataUIModel; import fr.ifremer.tutti.ui.swing.content.protocol.zones.models.ZoneUIModel; +import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.StrataNode; import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.StratasTreeModel; +import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.SubStrataNode; import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.ZoneNode; import fr.ifremer.tutti.ui.swing.content.protocol.zones.tree.ZonesTreeModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; @@ -24,6 +26,8 @@ import javax.swing.JComponent; import javax.swing.JPopupMenu; import javax.swing.JTree; import javax.swing.SwingUtilities; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import java.awt.Point; @@ -179,7 +183,7 @@ public class ZoneEditorUIHandler extends AbstractTuttiUIHandler<EditProtocolUIMo // init trees TreeModel availableStratasTreeModel = new StratasTreeModel(); - JTree availableStratasTree = ui.getAvailableStratasTree(); + final JTree availableStratasTree = ui.getAvailableStratasTree(); availableStratasTree.setModel(availableStratasTreeModel); SwingUtil.addExpandOnClickListener(availableStratasTree); @@ -189,11 +193,44 @@ public class ZoneEditorUIHandler extends AbstractTuttiUIHandler<EditProtocolUIMo SwingUtil.addExpandOnClickListener(zonesTree); zonesTree.addTreeSelectionListener(event -> { - boolean zoneSelected = event.getPath().getLastPathComponent() instanceof ZoneNode; - getUI().getDeleteZoneMenuItem().setEnabled(zoneSelected); - getUI().getRenameZoneMenuItem().setEnabled(zoneSelected); + + TreePath[] selectedPaths = zonesTree.getSelectionPaths(); + boolean allStrataNode = selectedPaths != null; + + if (selectedPaths != null) { + + if (selectedPaths.length == 1) { + boolean zoneSelected = event.getPath().getLastPathComponent() instanceof ZoneNode; + getUI().getDeleteZoneMenuItem().setEnabled(zoneSelected); + getUI().getRenameZoneMenuItem().setEnabled(zoneSelected); + } + + for (TreePath selectedPath : selectedPaths) { + Object lastPathComponent = selectedPath.getLastPathComponent(); + if (!(lastPathComponent instanceof StrataNode + || lastPathComponent instanceof SubStrataNode)) { + allStrataNode = false; + break; + } + } + } + + getUI().getRemoveButton().setEnabled(allStrataNode); + }); + TreeSelectionListener enableAddStrataListener = new TreeSelectionListener() { + + @Override + public void valueChanged(TreeSelectionEvent e) { + getUI().getAddButton().setEnabled(zonesTree.getSelectionCount() == 1 + && zonesTree.getSelectionPath().getLastPathComponent() instanceof ZoneNode + && availableStratasTree.getSelectionCount() >= 1); + } + }; + zonesTree.addTreeSelectionListener(enableAddStrataListener); + availableStratasTree.addTreeSelectionListener(enableAddStrataListener); + // get data initModel(); @@ -236,18 +273,9 @@ public class ZoneEditorUIHandler extends AbstractTuttiUIHandler<EditProtocolUIMo log.debug("At point [" + p + "] found Row " + rowIndex); } - // select row (could empty selection) - if (rowIndex == -1) { - source.clearSelection(); - - } else { - // set selection - source.setSelectionRow(rowIndex); - } - if (rightClick) { - TreePath path = source.getPathForRow(rowIndex); + source.setSelectionRow(rowIndex); // on right click show popup popup.show(source, e.getX(), e.getY()); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/AddStratasAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/AddStratasAction.java index 615562d..4094e4c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/AddStratasAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/zones/actions/AddStratasAction.java @@ -66,6 +66,10 @@ public class AddStratasAction extends SimpleActionSupport<ZoneEditorUI> { log.info("add subtrata " + subStrata.getLabel()); } subStratasToAdd.add(subStrata); + + } else { + // the root node is selected, add all + stratasToAdd.addAll(zoneEditorUI.getModel().getAvailableStratas()); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.