Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: dc75a523 by Tony CHEMIT at 2017-08-12T13:43:42+02:00 Quelques améliorations sur l'abre de sélection (See #839) - - - - - 5 changed files: - client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTree.java - client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java - client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeHeaderHandler.java - client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeModel.java - client/src/main/java/fr/ird/observe/client/ui/tree/selection/nodes/RootSelectionTreeNode.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTree.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTree.java +++ b/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTree.java @@ -28,7 +28,7 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.ActionMap; import javax.swing.InputMap; -import javax.swing.ListSelectionModel; +import javax.swing.tree.TreeSelectionModel; import org.jdesktop.swingx.JXTree; /** @@ -45,7 +45,7 @@ public class SelectionTree extends JXTree { setCellRenderer(new SelectionTreeCellRenderer()); setRootVisible(false); setRowHeight(30); - getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); } @@ -76,16 +76,6 @@ public class SelectionTree extends JXTree { inputMap.put(ObserveKeyStrokes.KEY_STROKE_ENTER, "select/unselect"); actionMap.put("select/unselect", new AbstractAction() { - protected void forTree(SelectionTree tree) { - Object selectedRow = tree.getLastSelectedPathComponent(); - if (selectedRow == null) { - return; - } - - SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) selectedRow; - tree.getTreeModel().setValueAt(node, !node.isSelected()); - } - @Override public void actionPerformed(ActionEvent e) { if (isFocusOwner()) { @@ -94,6 +84,16 @@ public class SelectionTree extends JXTree { forTree(oppositeTree); } } + + private void forTree(SelectionTree tree) { + Object selectedRow = tree.getLastSelectedPathComponent(); + if (selectedRow == null) { + return; + } + + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) selectedRow; + tree.getTreeModel().setValueAt(node, !node.isSelected()); + } }); } ===================================== client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java +++ b/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeCellRenderer.java @@ -44,7 +44,7 @@ public class SelectionTreeCellRenderer extends DefaultXTreeCellRenderer { private final JPanel panel; private final JCheckBox selected; - public SelectionTreeCellRenderer() { + protected SelectionTreeCellRenderer() { selected = new JCheckBox(); panel = new JPanel(new BorderLayout(2, 2)); panel.setOpaque(false); ===================================== client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeHeaderHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeHeaderHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeHeaderHandler.java @@ -46,15 +46,15 @@ public class SelectionTreeHeaderHandler implements UIHandler<SelectionTreeHeader } @Override - public void beforeInit(SelectionTreeHeader selectionTreeHeader) { - this.ui = selectionTreeHeader; + public void beforeInit(SelectionTreeHeader ui) { + this.ui = ui; } @Override - public void afterInit(SelectionTreeHeader selectionTreeHeader) { + public void afterInit(SelectionTreeHeader ui) { PropertyChangeListener propertyChangeListener = e -> onTripCountChanged((int) e.getNewValue()); - selectionTreeHeader.addPropertyChangeListener(SelectionTreeHeader.PROPERTY_TREE_TABLE, e -> { + ui.addPropertyChangeListener(SelectionTreeHeader.PROPERTY_TREE_TABLE, e -> { SelectionTreeModel newValue = ((SelectionTree) e.getNewValue()).getTreeModel(); newValue.removePropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, propertyChangeListener); newValue.addPropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, propertyChangeListener); ===================================== client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeModel.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeModel.java +++ b/client/src/main/java/fr/ird/observe/client/ui/tree/selection/SelectionTreeModel.java @@ -108,10 +108,10 @@ public class SelectionTreeModel extends DefaultTreeModel { public void setSelectedCount(int selectedCount) { int oldValue = getSelectedCount(); - boolean oldSelectionempty = isSelectionEmpty(); + boolean oldSelectionEmpty = isSelectionEmpty(); this.selectedCount = selectedCount; pcs.firePropertyChange(SELECTED_COUNT, oldValue, selectedCount); - pcs.firePropertyChange(SELECTION_EMPTY, oldSelectionempty, isSelectionEmpty()); + pcs.firePropertyChange(SELECTION_EMPTY, oldSelectionEmpty, isSelectionEmpty()); } public boolean isSelectionEmpty() { @@ -228,10 +228,12 @@ public class SelectionTreeModel extends DefaultTreeModel { public ImmutableSet<Class<? extends ReferentialDto>> getSelectedReferentiel() { ImmutableSet.Builder<Class<? extends ReferentialDto>> builder = ImmutableSet.builder(); - for (ReferentialsSelectionTreeNode programNode : getRoot().getReferentialsNodes()) { - ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); - if (!selected.isEmpty()) { - builder.addAll(selected); + if (isLoadReferential()) { + for (ReferentialsSelectionTreeNode programNode : getRoot().getReferentialsNodes()) { + ImmutableList<Class<? extends ReferentialDto>> selected = programNode.getSelected(); + if (!selected.isEmpty()) { + builder.addAll(selected); + } } } return builder.build(); ===================================== client/src/main/java/fr/ird/observe/client/ui/tree/selection/nodes/RootSelectionTreeNode.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/tree/selection/nodes/RootSelectionTreeNode.java +++ b/client/src/main/java/fr/ird/observe/client/ui/tree/selection/nodes/RootSelectionTreeNode.java @@ -59,6 +59,7 @@ public class RootSelectionTreeNode extends SelectionTreeNodeSupport<Void> implem @Override public Iterator<ProgramSelectionTreeNode> iterator() { + //noinspection unchecked return (Iterator) EnumerationUtils.toList(children()).stream().filter(c -> c instanceof ProgramSelectionTreeNode).iterator(); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/dc75a523a457977019ba8da47959... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/dc75a523a457977019ba8da47959... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT