branch develop updated (8c0dfe5 -> c54d9e5)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 8c0dfe5 [persistence] correction des optimisations de recherche + fix toutes les bases de test new 0b42cc4 fixes #8313 Sur l'écran de sélection des marées, remplacer la sélection en bleu par des cases à cocher new 1f27445 [ui] correction style new 53cd6bd [ui] optimisation chargement des écrans de type liste (on réutilise ce qui est dans l'arbre sans appeler les services) new c54d9e5 [ui] optimize sort The 4 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 c54d9e52ac762d8c2a1dec0b6b01ff4db375e502 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 17:42:23 2016 +0100 [ui] optimize sort commit 53cd6bd8b5c1994148e1e4b66db8e34695744466 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 16:41:51 2016 +0100 [ui] optimisation chargement des écrans de type liste (on réutilise ce qui est dans l'arbre sans appeler les services) commit 1f27445bf4abe2e44a3258ccae0f21bffab19574 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 15:25:49 2016 +0100 [ui] correction style commit 0b42cc44056d2efb8d9b8522e6341172c7acd6b5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 15:21:52 2016 +0100 fixes #8313 Sur l'écran de sélection des marées, remplacer la sélection en bleu par des cases à cocher Summary of changes: .../swing/decoration/DecoratorService.java | 140 +++++++-------------- .../application/swing/ui/admin/AdminUIHandler.java | 4 +- .../swing/ui/content/ContentUIHandler.java | 8 +- .../swing/ui/content/list/ContentListUI.jaxx | 2 +- .../ui/content/list/ContentListUIHandler.java | 54 ++++---- .../impl/longline/ActivityLonglinesUIHandler.java | 25 ---- .../list/impl/longline/TripLonglinesUIHandler.java | 32 +---- .../list/impl/seine/ActivitySeinesUIHandler.java | 24 ---- .../content/list/impl/seine/RoutesUIHandler.java | 29 +---- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 1 + .../ui/content/list/impl/seine/TripSeinesUI.jcss | 8 +- .../list/impl/seine/TripSeinesUIHandler.java | 33 +---- .../swing/ui/tree/navigation/NavigationTree.java | 6 +- .../ui/tree/navigation/NavigationTreeModel.java | 38 +++--- .../swing/ui/tree/selection/SelectionTree.java | 110 +++------------- .../tree/selection/SelectionTreeCellRenderer.java | 26 +++- .../ui/tree/selection/SelectionTreeModel.java | 105 +++++----------- .../selection/nodes/ProgramSelectionTreeNode.java | 1 - .../nodes/ReferenceSelectionTreeNodeSupport.java | 3 - .../selection/nodes/SelectionTreeNodeSupport.java | 13 +- .../services/dto/longline/TripLonglineHelper.java | 14 +++ .../services/dto/referential/ProgramHelper.java | 13 ++ .../services/dto/seine/TripSeineHelper.java | 16 ++- 23 files changed, 233 insertions(+), 472 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 observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 0b42cc44056d2efb8d9b8522e6341172c7acd6b5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 15:21:52 2016 +0100 fixes #8313 Sur l'écran de sélection des marées, remplacer la sélection en bleu par des cases à cocher --- .../application/swing/ui/admin/AdminUIHandler.java | 4 +- .../swing/ui/tree/selection/SelectionTree.java | 110 +++------------------ .../tree/selection/SelectionTreeCellRenderer.java | 26 +++-- .../ui/tree/selection/SelectionTreeModel.java | 102 +++++++------------ .../selection/nodes/ProgramSelectionTreeNode.java | 1 - .../nodes/ReferenceSelectionTreeNodeSupport.java | 3 - .../selection/nodes/SelectionTreeNodeSupport.java | 13 ++- 7 files changed, 76 insertions(+), 183 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java index 4648162..565cc11 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUIHandler.java @@ -234,10 +234,10 @@ public class AdminUIHandler { selectTree.clearSelection(); SwingUtilities.invokeLater(selectTree::grabFocus); - + if (selectTree.getTreeModel().isNotEmpty()) { - selectTree.getSelectionModel().setLeadSelectionIndex(0); + selectTree.setSelectionRow(0); } if (stepUI.getModel().getSafeLocalSource(true).isLocal()) { SwingUtilities.invokeLater(selectTree::expandAll); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java index a440309..4b5a270 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java @@ -23,10 +23,7 @@ package fr.ird.observe.application.swing.ui.tree.selection; */ import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; -import org.jdesktop.swingx.JXTreeTable; -import org.jdesktop.swingx.renderer.CellContext; -import org.jdesktop.swingx.renderer.CheckBoxProvider; -import org.jdesktop.swingx.renderer.DefaultTableRenderer; +import org.jdesktop.swingx.JXTree; import javax.swing.AbstractAction; import javax.swing.ActionMap; @@ -42,25 +39,13 @@ import java.awt.event.KeyEvent; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class SelectionTree extends JXTreeTable { +public class SelectionTree extends JXTree { public SelectionTree() { super(new SelectionTreeModel()); setLargeModel(true); - setTreeCellRenderer(new SelectionTreeCellRenderer()); + setCellRenderer(new SelectionTreeCellRenderer()); setRootVisible(false); - setDefaultRenderer(boolean.class, new DefaultTableRenderer(new CheckBoxProvider() { - @Override - protected void configureVisuals(CellContext context) { - super.configureVisuals(context); - if (context != null) { - SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) getValueAt(context.getRow(), 0); - boolean editable = getTreeModel().isCellEditable(node, 1); - rendererComponent.setEnabled(editable); - } - } - })); - setShowGrid(false); setRowHeight(30); getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -70,41 +55,17 @@ public class SelectionTree extends JXTreeTable { InputMap inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW); ActionMap actionMap = getActionMap(); - inputMap.put(KeyStroke.getKeyStroke("pressed F3"), "fold/unfold"); - actionMap.put("fold/unfold", new AbstractAction() { - @Override - public void actionPerformed(ActionEvent e) { - int selectedRow = getSelectedRow(); - if (selectedRow == -1) { - return; - } - - if (!isFocusOwner()) { - return; - } - SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) getPathForRow(selectedRow).getLastPathComponent(); - if (node.isLeaf()) { - return; - } - if (isExpanded(selectedRow)) { - - collapseRow(selectedRow); - } else { - expandRow(selectedRow); - } - } - }); - - inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "select/unselect"); + inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "select/unselect"); actionMap.put("select/unselect", new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { - int selectedRow = getSelectedRow(); - if (selectedRow == -1) { + Object selectedRow = getLastSelectedPathComponent(); + if (selectedRow == null) { return; } - SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) getPathForRow(selectedRow).getLastPathComponent(); - getTreeModel().setValueAt(!node.isSelected(), node, 1); + + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) selectedRow; + getTreeModel().setValueAt(node, !node.isSelected()); } }); } @@ -113,56 +74,24 @@ public class SelectionTree extends JXTreeTable { InputMap inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW); ActionMap actionMap = getActionMap(); - inputMap.put(KeyStroke.getKeyStroke("pressed F3"), "fold/unfold"); - actionMap.put("fold/unfold", new AbstractAction() { - - protected void forTree(SelectionTree tree) { - int selectedRow = tree.getSelectedRow(); - if (selectedRow == -1) { - return; - } - SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) tree.getPathForRow(selectedRow).getLastPathComponent(); - if (node.isLeaf()) { - return; - } - if (tree.isExpanded(selectedRow)) { - - tree.collapseRow(selectedRow); - } else { - tree.expandRow(selectedRow); - } - } - - @Override - public void actionPerformed(ActionEvent e) { - if (isFocusOwner()) { - forTree(SelectionTree.this); - return; - } else { - forTree(oppositeTree); - } - } - }); - - inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "select/unselect"); + inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "select/unselect"); actionMap.put("select/unselect", new AbstractAction() { protected void forTree(SelectionTree tree) { - int selectedRow = tree.getSelectedRow(); - if (selectedRow == -1) { + Object selectedRow = tree.getLastSelectedPathComponent(); + if (selectedRow == null) { return; } - SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) tree.getPathForRow(selectedRow).getLastPathComponent(); - tree.getTreeModel().setValueAt(!node.isSelected(), node, 1); + SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) selectedRow; + tree.getTreeModel().setValueAt(node, !node.isSelected()); } @Override public void actionPerformed(ActionEvent e) { if (isFocusOwner()) { forTree(SelectionTree.this); - return; } else { forTree(oppositeTree); } @@ -171,16 +100,7 @@ public class SelectionTree extends JXTreeTable { } public SelectionTreeModel getTreeModel() { - return (SelectionTreeModel) getTreeTableModel(); + return (SelectionTreeModel) getModel(); } - @Override - protected void configureEnclosingScrollPane() { - // ne rien faire, on utilise un autre composant - } - - @Override - protected void unconfigureEnclosingScrollPane() { - // ne rien faire, on utilise un autre composant - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java index a26db95..46e6d05 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeCellRenderer.java @@ -28,8 +28,10 @@ import fr.ird.observe.application.swing.ui.tree.selection.nodes.TripSeineSelecti import org.jdesktop.swingx.tree.DefaultXTreeCellRenderer; import javax.swing.Icon; -import javax.swing.JLabel; +import javax.swing.JCheckBox; +import javax.swing.JPanel; import javax.swing.JTree; +import java.awt.BorderLayout; import java.awt.Component; /** @@ -40,6 +42,17 @@ import java.awt.Component; */ public class SelectionTreeCellRenderer extends DefaultXTreeCellRenderer { + private final JPanel panel; + private final JCheckBox selected; + + public SelectionTreeCellRenderer() { + selected = new JCheckBox(); + panel = new JPanel(new BorderLayout(2, 2)); + panel.setOpaque(false); + panel.add(selected, BorderLayout.WEST); + panel.add(this, BorderLayout.CENTER); + } + public Icon getIcon(SelectionTreeNodeSupport node) { return node.getIcon(""); } @@ -48,14 +61,15 @@ public class SelectionTreeCellRenderer extends DefaultXTreeCellRenderer { public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { SelectionTreeNodeSupport node = (SelectionTreeNodeSupport) value; Icon icon = getIcon(node); - JLabel treeCellRendererComponent = (JLabel) super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); - treeCellRendererComponent.setIcon(icon); + super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); + setIcon(icon); if (node instanceof TripSeineSelectionTreeNode) { - treeCellRendererComponent.setToolTipText(((TripSeineSelectionTreeNode) node).getToolTipText()); + setToolTipText(((TripSeineSelectionTreeNode) node).getToolTipText()); } else if (node instanceof TripLonglineSelectionTreeNode) { - treeCellRendererComponent.setToolTipText(((TripLonglineSelectionTreeNode) node).getToolTipText()); + setToolTipText(((TripLonglineSelectionTreeNode) node).getToolTipText()); } - return treeCellRendererComponent; + selected.setSelected(node.isSelected()); + return panel; } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index 1e53c48..17a41a9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -45,10 +45,9 @@ import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.services.service.data.NavigationRequest; import fr.ird.observe.services.service.data.NavigationResult; import fr.ird.observe.services.service.data.NavigationService; -import org.jdesktop.swingx.treetable.DefaultTreeTableModel; -import org.jdesktop.swingx.treetable.TreeTableNode; -import javax.swing.tree.TreePath; +import javax.swing.tree.DefaultTreeModel; +import javax.swing.tree.TreeNode; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.ArrayList; @@ -68,54 +67,32 @@ import static org.nuiton.i18n.I18n.n; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public class SelectionTreeModel extends DefaultTreeTableModel { +public class SelectionTreeModel extends DefaultTreeModel { public static final String SELECTED_COUNT = "selectedCount"; public static final String SELECTION_EMPTY = "selectionEmpty"; + private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); private boolean loadSeine = true; private boolean loadLongline = true; private boolean loadReferential = true; private boolean showEmptyTrips = true; - - private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); - private int selectedCount; private boolean useOpenData; - @Override - public int getColumnCount() { - return 2; - } - - @Override - public Class<?> getColumnClass(int column) { - if (column == 0) { - return Object.class; - } - return boolean.class; - } - - @Override - public Object getValueAt(Object node, int column) { - switch (column) { - case 0: - return node; - default: - return ((SelectionTreeNodeSupport) node).isSelected(); - } + public SelectionTreeModel() { + super(new RootSelectionTreeNode()); } - @Override - public void setValueAt(Object value, Object node, int column) { - SelectionTreeNodeSupport node1 = (SelectionTreeNodeSupport) node; - node1.setSelected((Boolean) value); - if (node1.isLeaf()) { - modelSupport.firePathChanged(new TreePath(getPathToRoot(node1.getParent()))); + public void setValueAt(SelectionTreeNodeSupport node, boolean value) { + node.setSelected(value); + if (node.isLeaf()) { + nodeChanged(node.getParent()); + nodeChanged(node); } else { - Enumeration<? extends TreeTableNode> children = node1.getParent().children(); + nodeChanged(node); + Enumeration<? extends TreeNode> children = node.children(); while (children.hasMoreElements()) { - TreeTableNode treeTableNode = children.nextElement(); - modelSupport.firePathChanged(new TreePath(treeTableNode)); + nodeChanged(children.nextElement()); } } recomputeSelectedCount(); @@ -143,12 +120,6 @@ public class SelectionTreeModel extends DefaultTreeTableModel { } @Override - public boolean isCellEditable(Object node, int column) { - SelectionTreeNodeSupport node1 = (SelectionTreeNodeSupport) node; - return column == 1 && !(node1 instanceof ProgramSelectionTreeNode && node1.isLeaf()); - } - - @Override public RootSelectionTreeNode getRoot() { return (RootSelectionTreeNode) super.getRoot(); } @@ -169,45 +140,36 @@ public class SelectionTreeModel extends DefaultTreeTableModel { pcs.removePropertyChangeListener(name, listener); } - public SelectionTreeModel() { - super(new RootSelectionTreeNode()); + public boolean isLoadSeine() { + return loadSeine; } public void setLoadSeine(boolean loadSeine) { this.loadSeine = loadSeine; } - public void setLoadLongline(boolean loadLongline) { - this.loadLongline = loadLongline; - } - - public void setLoadReferential(boolean loadReferential) { - this.loadReferential = loadReferential; - } - - public void setShowEmptyTrips(boolean showEmptyTrips) { - this.showEmptyTrips = showEmptyTrips; - } - - public boolean isLoadSeine() { - return loadSeine; - } - public boolean isLoadLongline() { return loadLongline; } + public void setLoadLongline(boolean loadLongline) { + this.loadLongline = loadLongline; + } + public boolean isLoadReferential() { return loadReferential; } + public void setLoadReferential(boolean loadReferential) { + this.loadReferential = loadReferential; + } + public boolean isShowEmptyTrips() { return showEmptyTrips; } - @Override - public int getHierarchicalColumn() { - return 0; + public void setShowEmptyTrips(boolean showEmptyTrips) { + this.showEmptyTrips = showEmptyTrips; } public Set<DataReference<?>> getSelectedData() { @@ -325,7 +287,7 @@ public class SelectionTreeModel extends DefaultTreeTableModel { } else { for (TripSelectionTreeNodeSupport<?> tripNode : programNode) { if (tripNode.isSelected()) { - removeTrip(programNode.getData(), (DataReference) tripNode.getData()); + removeTrip(programNode.getData(), tripNode.getData()); } } } @@ -357,14 +319,14 @@ public class SelectionTreeModel extends DefaultTreeTableModel { } } - public void setUseOpenData(boolean useOpenData) { - this.useOpenData = useOpenData; - } - public boolean isUseOpenData() { return useOpenData; } + public void setUseOpenData(boolean useOpenData) { + this.useOpenData = useOpenData; + } + public boolean isNotEmpty() { return !isEmpty(); } @@ -403,11 +365,13 @@ public class SelectionTreeModel extends DefaultTreeTableModel { } // Ne pas supprimer utiliser dans les templates + @SuppressWarnings("unused") public ImmutableList<ReferentialReference<ProgramDto>> getSelectedProgram() { return ImmutableList.copyOf(getSelectedDataByProgram().keySet()); } // Ne pas supprimer utiliser dans les templates + @SuppressWarnings("unused") public ImmutableList<DataReference<?>> getSelectedTripsByProgram(ReferentialReference<ProgramDto> program) { ProgramSelectionTreeNode programNode = (ProgramSelectionTreeNode) getRoot().findById(program.getId()); return programNode.getSelected(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java index bd390f0..f640935 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ProgramSelectionTreeNode.java @@ -23,7 +23,6 @@ package fr.ird.observe.application.swing.ui.tree.selection.nodes; */ import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.TripLonglineDto; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java index 13ca850..66d0256 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/ReferenceSelectionTreeNodeSupport.java @@ -27,9 +27,6 @@ import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.IdDto; import org.nuiton.decorator.Decorator; -import javax.swing.Icon; -import javax.swing.UIManager; - /** * Created on 18/11/16. * diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java index fe82547..38a93c5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/nodes/SelectionTreeNodeSupport.java @@ -22,10 +22,9 @@ package fr.ird.observe.application.swing.ui.tree.selection.nodes; * #L% */ -import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; - import javax.swing.Icon; import javax.swing.UIManager; +import javax.swing.tree.DefaultMutableTreeNode; import java.awt.Color; import java.util.Enumeration; @@ -35,7 +34,11 @@ import java.util.Enumeration; * @author Tony Chemit - chemit@codelutin.com * @since 5.1 */ -public abstract class SelectionTreeNodeSupport<O> extends DefaultMutableTreeTableNode { +public abstract class SelectionTreeNodeSupport<O> extends DefaultMutableTreeNode { + + public SelectionTreeNodeSupport(O data, boolean allowChildren) { + super(data, allowChildren); + } public abstract boolean isOpen(); @@ -45,10 +48,6 @@ public abstract class SelectionTreeNodeSupport<O> extends DefaultMutableTreeTabl public abstract String getIconPath(); - public SelectionTreeNodeSupport(O data, boolean allowChildren) { - super(data, allowChildren); - } - @Override public String toString() { return getText(); -- 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 observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 1f27445bf4abe2e44a3258ccae0f21bffab19574 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 15:25:49 2016 +0100 [ui] correction style --- .../swing/ui/content/list/impl/seine/TripSeinesUI.jaxx | 1 + .../swing/ui/content/list/impl/seine/TripSeinesUI.jcss | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx index 3dcaa27..f7e9a4f 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx @@ -32,6 +32,7 @@ fr.ird.observe.application.swing.ui.actions.content.MoveTripSeinesUIAction static org.nuiton.i18n.I18n.n + static org.nuiton.i18n.I18n.t </import> <style source="CommonListUI.jcss"/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss index 818ea27..8083de7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss @@ -31,13 +31,13 @@ } #createChild { - text:"observe.content.action.trip"; - toolTipText:"observe.content.action.trip.tip"; + _text:{t("observe.content.action.trip")}; + _toolTipText:{t("observe.content.action.trip.tip")}; } #moveSelectedChildren { - text:"observe.content.action.move.trips"; - toolTipText:"observe.content.action.move.trips.tip"; + _text:{t("observe.content.action.move.trips")}; + _toolTipText:{t("observe.content.action.move.trips.tip")}; _observeAction:{MoveTripSeinesUIAction.ACTION_NAME}; } -- 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 observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 53cd6bd8b5c1994148e1e4b66db8e34695744466 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 16:41:51 2016 +0100 [ui] optimisation chargement des écrans de type liste (on réutilise ce qui est dans l'arbre sans appeler les services) --- .../swing/decoration/DecoratorService.java | 138 ++++++++++++--------- .../swing/ui/content/ContentUIHandler.java | 8 +- .../swing/ui/content/list/ContentListUI.jaxx | 2 +- .../ui/content/list/ContentListUIHandler.java | 48 +++---- .../impl/longline/ActivityLonglinesUIHandler.java | 25 ---- .../list/impl/longline/TripLonglinesUIHandler.java | 32 +---- .../list/impl/seine/ActivitySeinesUIHandler.java | 24 ---- .../content/list/impl/seine/RoutesUIHandler.java | 29 +---- .../list/impl/seine/TripSeinesUIHandler.java | 33 +---- .../swing/ui/tree/navigation/NavigationTree.java | 10 +- .../ui/tree/navigation/NavigationTreeModel.java | 34 ++--- .../ui/tree/selection/SelectionTreeModel.java | 2 +- 12 files changed, 142 insertions(+), 243 deletions(-) diff --git a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java index d8393a7..7c2de17 100644 --- a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java +++ b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java @@ -138,7 +138,6 @@ import fr.ird.observe.util.GPSPoint; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorProvider; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -158,54 +157,10 @@ import static org.nuiton.i18n.I18n.t; */ public class DecoratorService extends DecoratorProvider { -// /** Logger */ -// private static final Log log = LogFactory.getLog(DecoratorService.class); - -// /** Le pattern pour utiliser les clef i18n generees dans les entites */ -// private static final Pattern LABEL_PATTERN = Pattern.compile("observe\\.common\\.(.+)"); - public static final String HAULING_IDENTIFIER = "haulingIdentifier"; public static final String TRIP_CONTEXT = "Trip"; - /** la locale du referentiel. */ - private ReferentialLocale referentialLocale; - - public DecoratorService(ReferentialLocale referentialLocale) { - this.referentialLocale = referentialLocale; - loadDecorators(); - } - - public ReferentialLocale getReferentialLocale() { - return referentialLocale; - } - - public void setReferentialLocale(ReferentialLocale referentialLocale) { - this.referentialLocale = referentialLocale; - } - -// public Matcher getPropertyMatch(String regex) { -// return LABEL_PATTERN.matcher(regex); -// } - - public String decorate(Object o) { - return decorate(null, o); - - } - - private String decorate(String context, Object o) { - //FIXME - if (o == null) { - return null; - } - Decorator<Object> decorator = getDecorator(o, context); - String result = ""; - if (decorator != null) { - result = decorator.toString(o); - } - return result; - } - static { // pour avoir les traduction sur le nom de la propriété n("observe.common.vesselActivitySeine/label1"); @@ -241,6 +196,40 @@ public class DecoratorService extends DecoratorProvider { } + /** la locale du referentiel. */ + private ReferentialLocale referentialLocale; + + public DecoratorService(ReferentialLocale referentialLocale) { + this.referentialLocale = referentialLocale; + loadDecorators(); + } + + public ReferentialLocale getReferentialLocale() { + return referentialLocale; + } + + public void setReferentialLocale(ReferentialLocale referentialLocale) { + this.referentialLocale = referentialLocale; + } + + public String decorate(Object o) { + return decorate(null, o); + + } + + private String decorate(String context, Object o) { + //FIXME + if (o == null) { + return null; + } + Decorator<Object> decorator = getDecorator(o, context); + String result = ""; + if (decorator != null) { + result = decorator.toString(o); + } + return result; + } + @Override protected void loadDecorators() { if (referentialLocale == null) { @@ -269,8 +258,8 @@ public class DecoratorService extends DecoratorProvider { // LengthLengthParameter decorator registerDecorator(new LengthLengthParameterDecorator()); - registerReferentialReferenceDecorator(LengthLengthParameterDto.class,"${inputSizeMeasureType}$s##${outputSizeMeasureType}$s##"+ - t("observe.common.inputOutputFormula") + " ${inputOutputFormula}$s"); + registerReferentialReferenceDecorator(LengthLengthParameterDto.class, "${inputSizeMeasureType}$s##${outputSizeMeasureType}$s##" + + t("observe.common.inputOutputFormula") + " ${inputOutputFormula}$s"); // LengthWeightParameter decorator registerDecorator(new LengthWeightParameterDecorator()); @@ -402,7 +391,7 @@ public class DecoratorService extends DecoratorProvider { // Trip commun decorator registerDecorator(TRIP_CONTEXT, - new DataReferenceDecorator("${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s")); + new DataReferenceDecorator<>("${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s")); // ObjectObservedSpecies decorator registerDecorator(new ObjectObservedSpeciesDecorator()); @@ -450,10 +439,15 @@ public class DecoratorService extends DecoratorProvider { } - public <T extends ReferentialDto> void sort(Class<T> type, List<ReferentialReference<T>> data) { + public <T extends ReferentialDto> void sortReferential(Class<T> type, List<ReferentialReference<T>> data) { new ReferentialReferenceComparator<>(type).sort(data); } + + public <T extends DataDto> void sortData(Class<T> type, List<DataReference<T>> data) { + new DataReferenceComparator<>(type).sort(data); + } + public <T extends ReferentialDto> ReferentialReferenceDecorator<T> getReferentialReferenceDecorator(Class<T> referenceType) { return (ReferentialReferenceDecorator<T>) (ReferentialReferenceDecorator) getDecoratorByType(ReferentialReference.class, referenceType.getSimpleName()); } @@ -470,20 +464,20 @@ public class DecoratorService extends DecoratorProvider { Decorator<D> decorator; if (DataDto.class.isAssignableFrom(referenceType)) { - decorator = getDataReferenceDecorator((Class)referenceType); + decorator = getDataReferenceDecorator((Class) referenceType); } else { - decorator = getReferentialReferenceDecorator((Class)referenceType); + decorator = getReferentialReferenceDecorator((Class) referenceType); } return decorator; } - public DataReferenceDecorator getTripReferenceDecorator(DataReference tripDto) { - DataReferenceDecorator decorator; + public DataReferenceDecorator<?> getTripReferenceDecorator(DataReference<?> tripDto) { + DataReferenceDecorator<?> decorator; if (tripDto.getType().isAssignableFrom(TripSeineDto.class)) { - decorator = (DataReferenceDecorator) getDataReferenceDecorator(TripSeineDto.class); + decorator = getDataReferenceDecorator(TripSeineDto.class); } else { - decorator = (DataReferenceDecorator) getDataReferenceDecorator(TripLonglineDto.class); + decorator = getDataReferenceDecorator(TripLonglineDto.class); } return decorator; } @@ -562,12 +556,7 @@ public class DecoratorService extends DecoratorProvider { } private String get(ReferentialReference<T> id) { - String value = cache.get(id); - if (value == null) { - value = decorator.toString(id); - cache.put(id, value); - } - return value; + return cache.computeIfAbsent(id, k -> decorator.toString(id)); } @Override @@ -576,7 +565,32 @@ public class DecoratorService extends DecoratorProvider { } public void sort(List<ReferentialReference<T>> data) { - Collections.sort(data, this); + data.sort(this); + cache.clear(); + } + } + + private class DataReferenceComparator<T extends DataDto> implements Comparator<DataReference<T>> { + + private final DataReferenceDecorator<T> decorator; + + private final Map<DataReference<T>, String> cache = new HashMap<>(); + + private DataReferenceComparator(Class<T> type) { + decorator = getDataReferenceDecorator(type); + } + + private String get(DataReference<T> id) { + return cache.computeIfAbsent(id, k -> decorator.toString(id)); + } + + @Override + public int compare(DataReference<T> o1, DataReference<T> o2) { + return get(o1).compareTo(get(o2)); + } + + public void sort(List<DataReference<T>> data) { + data.sort(this); cache.clear(); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index 10eae41..256bcf2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -937,7 +937,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sort data from first decorator context + // sortReferential data from first decorator context DataReferenceDecorator<R> decorator = getDataReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -964,7 +964,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sort data from first decorator context + // sortReferential data from first decorator context ReferentialReferenceDecorator<R> decorator = getReferentialReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -998,7 +998,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sort data from first decorator context + // sortReferential data from first decorator context ReferentialReferenceDecorator<R> decorator = getReferentialReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); @@ -1030,7 +1030,7 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - // sort data from first decorator context + // sortReferential data from first decorator context DataReferenceDecorator<R> decorator = getDataReferenceDecorator(dtoClass); DecoratorUtil.sort(decorator, data, 0); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx index 349a395..d44ab79 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx @@ -73,7 +73,7 @@ public final List<DataReference<C>> getSelectedDatas() { <JScrollPane id='listPane' constraints='BorderLayout.CENTER' onFocusGained='list.requestFocus()' columnHeaderView='{listHeader}'> - <JList id='list' onMouseClicked='getHandler().onDataSelected(event)'/> + <JList id='list' genericType='DataReference<C>' onMouseClicked='getHandler().onDataSelected(event)'/> <BeanListHeader id='listHeader' genericType='DataReference< C >'/> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 1a8af7a..131a5e0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -46,6 +46,8 @@ import javax.swing.SwingUtilities; import java.awt.Color; import java.awt.Component; import java.awt.event.MouseEvent; +import java.util.ArrayList; +import java.util.Enumeration; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -59,21 +61,10 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U /** Logger */ private static final Log log = LogFactory.getLog(ContentListUIHandler.class); - public ContentListUIHandler(U ui, - DataContextType parentType, - DataContextType type) { + public ContentListUIHandler(U ui, DataContextType parentType, DataContextType type) { super(ui, parentType, type); } - /** - * Obtain the list of entities to display on ui from his container - * {@code bean}. - * - * @param parentId the parent id of entities to display - * @return the list of entities to display - */ - protected abstract List<DataReference<C>> getChilds(String parentId); - public abstract boolean isCanCloseChild(); @Override @@ -96,23 +87,16 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U NavigationTree treeHelper = getTreeHelper(getUi()); ListCellRenderer renderer2 = new EntityListCellRenderer(renderer, treeHelper); - getUi().getList().setCellRenderer(renderer2); } -// @Override -// protected void addFocusabelOnForm() { -// // pas besoin de gérer le focus, pas de formulaire -// } - @Override public final void openUI() { super.openUI(); // init renderer - EntityListCellRenderer renderer = (EntityListCellRenderer) - getUi().getList().getCellRenderer(); + EntityListCellRenderer renderer = (EntityListCellRenderer) getUi().getList().getCellRenderer(); renderer.init(); ContentListUIModel<E, C> model = getModel(); @@ -152,14 +136,24 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U model.setCanReopen(canReopen); // il n'est pas nécessaire de charger le bean car seuls ses enfants nous sont utile dans cette ecran + List<DataReference<C>> data = new ArrayList<>(); + + NavigationTree treeHelper = getTreeHelper(ui); + NavigationTreeNodeSupport selectedNode = treeHelper.getSelectedNode(); - List<DataReference<C>> data = getChilds(getSelectedParentId()); + // on charge si besoin les enfants du nœud + selectedNode.populateChilds(treeHelper.getTreeModel()); + + Enumeration children = selectedNode.children(); + while (children.hasMoreElements()) { + NavigationTreeNodeSupport o = (NavigationTreeNodeSupport) children.nextElement(); + data.add((DataReference<C>) o.getData()); + } model.setData(data); SwingUtilities.invokeLater(() -> { getUi().getListSelectionModel().clearSelection(); -// getUi().getGotoOpenChild().setEnabled(false); }); getUi().getCloseChild().setEnabled(isCanCloseChild()); @@ -234,7 +228,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U private final ThreadLocal<NavigationTreeNodeSupport> containerNode = new ThreadLocal<>(); - EntityListCellRenderer(ListCellRenderer delegate, NavigationTree treeHelper) { + EntityListCellRenderer(ListCellRenderer<?> delegate, NavigationTree treeHelper) { this.delegate = delegate; this.treeHelper = treeHelper; } @@ -251,13 +245,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U boolean cellHasFocus) { // obtain the text from the delegate renderer - JLabel comp = (JLabel) - delegate.getListCellRendererComponent(list, - value, - index, - isSelected, - cellHasFocus - ); + JLabel comp = (JLabel) delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value == null || !(value instanceof AbstractReference) || containerNode.get() == null) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index 799d23a..726e92b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -22,21 +22,12 @@ package fr.ird.observe.application.swing.ui.content.list.impl.longline; * #L% */ -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.service.data.longline.ActivityLonglineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -48,9 +39,6 @@ import static org.nuiton.i18n.I18n.n; */ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglineDto, ActivityLonglineDto, ActivityLonglinesUI> { - /** Logger */ - private static final Log log = LogFactory.getLog(ActivityLonglinesUIHandler.class); - public ActivityLonglinesUIHandler(ActivityLonglinesUI ui) { super(ui, DataContextType.TripLongline, DataContextType.ActivityLongline); } @@ -115,17 +103,4 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } - @Override - protected List<DataReference<ActivityLonglineDto>> getChilds(String parentId) { - - ActivityLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivityLonglineService(); - DataReferenceSet<ActivityLonglineDto> activityLonglineStubByRoute = service.getActivityLonglineByTripLongline(parentId); - - if (log.isDebugEnabled()) { - log.debug("Will use " + activityLonglineStubByRoute.sizeReference() + " activities."); - } - - return new ArrayList<>(activityLonglineStubByRoute.getReferences()); - - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java index e9472b8..c4a8f92 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -27,17 +27,11 @@ import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; -import fr.ird.observe.services.service.data.longline.TripLonglineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -49,9 +43,6 @@ import static org.nuiton.i18n.I18n.n; */ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, TripLonglineDto, TripLonglinesUI> { - /** Logger */ - static private final Log log = LogFactory.getLog(TripLonglinesUIHandler.class); - public TripLonglinesUIHandler(TripLonglinesUI ui) { super(ui, DataContextType.Program, DataContextType.TripLongline); } @@ -95,23 +86,12 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri @Override protected void finalizeOpenUI() { - Class referenceType = ProgramDto.class; - ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(referenceType, getSelectedParentId()); - String title = getDecoratorService().getReferentialReferenceDecorator(referenceType).toString(programRef); + NavigationTree treeHelper = getTreeHelper(ui); + ProgramLonglineNavigationTreeNode selectedNode = (ProgramLonglineNavigationTreeNode) treeHelper.getSelectedNode(); + ReferentialReference<ProgramDto> data = selectedNode.getData(); + String title = getDecoratorService().getReferentialReferenceDecorator(ProgramDto.class).toString(data); getUi().setContentTitle(title); } - @Override - protected List<DataReference<TripLonglineDto>> getChilds(String parentId) { - - TripLonglineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripLonglineService(); - DataReferenceSet<TripLonglineDto> tripLonglineByProgram = service.getTripLonglineByProgram(parentId); - - if (log.isDebugEnabled()) { - log.debug("Will use " + tripLonglineByProgram.sizeReference() + " trips."); - } - - return new ArrayList<>(tripLonglineByProgram.getReferences()); - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index 56536bd..e796f5b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -21,21 +21,12 @@ */ package fr.ird.observe.application.swing.ui.content.list.impl.seine; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.service.data.seine.ActivitySeineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -45,9 +36,6 @@ import static org.nuiton.i18n.I18n.n; */ public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, ActivitySeineDto, ActivitySeinesUI> { - /** Logger */ - private static final Log log = LogFactory.getLog(ActivitySeinesUIHandler.class); - public ActivitySeinesUIHandler(ActivitySeinesUI ui) { super(ui, DataContextType.Route, DataContextType.ActivitySeine); } @@ -113,16 +101,4 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, Acti } - @Override - protected List<DataReference<ActivitySeineDto>> getChilds(String parentId) { - - ActivitySeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newActivitySeineService(); - DataReferenceSet<ActivitySeineDto> activitySeineByRoute = service.getActivitySeineByRoute(parentId); - - if (log.isDebugEnabled()) { - log.debug("Will use " + activitySeineByRoute.sizeReference() + " activities."); - } - - return new ArrayList<>(activitySeineByRoute.getReferences()); - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java index ce25730..d2f3d5b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java @@ -24,18 +24,10 @@ package fr.ird.observe.application.swing.ui.content.list.impl.seine; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; -import fr.ird.observe.services.dto.seine.RouteDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.RouteService; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; import static org.nuiton.i18n.I18n.n; @@ -45,14 +37,10 @@ import static org.nuiton.i18n.I18n.n; */ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto, RoutesUI> { - /** Logger */ - private static final Log log = LogFactory.getLog(RoutesUIHandler.class); - public RoutesUIHandler(RoutesUI ui) { super(ui, DataContextType.TripSeine, DataContextType.Route); } - @Override public boolean isCanCloseChild() { return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivitySeine(); @@ -111,17 +99,4 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto return ContentMode.READ; } - @Override - protected List<DataReference<RouteDto>> getChilds(String parentId) { - - RouteService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newRouteService(); - DataReferenceSet<RouteDto> routeByTripSeine = service.getRouteByTripSeine(parentId); - - if (log.isDebugEnabled()) { - log.debug("Will use " + routeByTripSeine.sizeReference() + " routes."); - } - - return new ArrayList<>(routeByTripSeine.getReferences()); - - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java index 0840ef3..b6ac39c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -26,17 +26,11 @@ import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; -import fr.ird.observe.services.dto.DataReference; -import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; +import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.service.data.seine.TripSeineService; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.ArrayList; -import java.util.List; import static org.nuiton.i18n.I18n.n; @@ -46,9 +40,6 @@ import static org.nuiton.i18n.I18n.n; */ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSeineDto, TripSeinesUI> { - /** Logger */ - static private final Log log = LogFactory.getLog(TripSeinesUIHandler.class); - public TripSeinesUIHandler(TripSeinesUI ui) { super(ui, DataContextType.Program, DataContextType.TripSeine); } @@ -87,9 +78,10 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe @Override protected void finalizeOpenUI() { - Class referenceType = ProgramDto.class; - ReferentialReference<ProgramDto> programRef = getDataSource().getReferentialReference(referenceType, getSelectedParentId()); - String title = getDecoratorService().getReferentialReferenceDecorator(referenceType).toString(programRef); + NavigationTree treeHelper = getTreeHelper(ui); + ProgramSeineNavigationTreeNode selectedNode = (ProgramSeineNavigationTreeNode) treeHelper.getSelectedNode(); + ReferentialReference<ProgramDto> data = selectedNode.getData(); + String title = getDecoratorService().getReferentialReferenceDecorator(ProgramDto.class).toString(data); getUi().setContentTitle(title); } @@ -98,17 +90,4 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenRoute(); } - @Override - protected List<DataReference<TripSeineDto>> getChilds(String parentId) { - - TripSeineService service = ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTripSeineService(); - DataReferenceSet<TripSeineDto> tripSeineByProgram = service.getTripSeineByProgram(parentId); - - if (log.isDebugEnabled()) { - log.debug("Will use " + tripSeineByProgram.sizeReference() + " trips."); - } - - return new ArrayList<>(tripSeineByProgram.getReferences()); - - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java index b087000..4d9d080 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -83,7 +83,15 @@ public class NavigationTree extends JXTree { private static final Log log = LogFactory.getLog(NavigationTree.class); public static void sortPrograms(List<ReferentialReference<ProgramDto>> data) { - ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, data); + ObserveSwingApplicationContext.get().getDecoratorService().sortReferential(ProgramDto.class, data); + } + + public static void sortTripSeines(List<DataReference<TripSeineDto>> data) { + ObserveSwingApplicationContext.get().getDecoratorService().sortData(TripSeineDto.class, data); + } + + public static void sortTripLLonglines(List<DataReference<TripLonglineDto>> data) { + ObserveSwingApplicationContext.get().getDecoratorService().sortData(TripLonglineDto.class, data); } public NavigationTree() { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java index 898d83a..ef5e065 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -72,7 +72,7 @@ public class NavigationTreeModel extends DefaultTreeModel { if (result == null) { - // un des noeud n'a pas ete trouve, on sort + // un des noeud n'a pas ete trouve, on sortReferential break; } node = result; @@ -98,12 +98,16 @@ public class NavigationTreeModel extends DefaultTreeModel { if (ProgramHelper.isProgramLongline(program)) { - Collection<DataReference<TripLonglineDto>> references = tripsLonglineByProgram.getOrDefault(program, Collections.emptyList()); + List<DataReference<TripLonglineDto>> references = new ArrayList<>(tripsLonglineByProgram.getOrDefault(program, Collections.emptyList())); + NavigationTree.sortTripLLonglines(references); + ProgramLonglineNavigationTreeNode programNode = new ProgramLonglineNavigationTreeNode(program, references); root.add(programNode); } else if (ProgramHelper.isProgramSeine(program)) { - Collection<DataReference<TripSeineDto>> references = tripsSeineByProgram.getOrDefault(program, Collections.emptyList()); + List<DataReference<TripSeineDto>> references = new ArrayList<>(tripsSeineByProgram.getOrDefault(program, Collections.emptyList())); + NavigationTree.sortTripSeines(references); + ProgramSeineNavigationTreeNode programNode = new ProgramSeineNavigationTreeNode(program, references); root.add(programNode); } @@ -131,30 +135,30 @@ public class NavigationTreeModel extends DefaultTreeModel { return (RootNavigationTreeNode) super.getRoot(); } - public void setLoadSeine(boolean loadSeine) { - this.loadSeine = loadSeine; - } - - public void setLoadLongline(boolean loadLongline) { - this.loadLongline = loadLongline; - } - - public void setLoadReferential(boolean loadReferential) { - this.loadReferential = loadReferential; - } - public boolean isLoadSeine() { return loadSeine; } + public void setLoadSeine(boolean loadSeine) { + this.loadSeine = loadSeine; + } + public boolean isLoadLongline() { return loadLongline; } + public void setLoadLongline(boolean loadLongline) { + this.loadLongline = loadLongline; + } + public boolean isLoadReferential() { return loadReferential; } + public void setLoadReferential(boolean loadReferential) { + this.loadReferential = loadReferential; + } + public <N extends NavigationTreeNodeSupport> void reload(N node) { node.reload(); super.reload(node); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index 17a41a9..d6ff1ab 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -193,7 +193,7 @@ public class SelectionTreeModel extends DefaultTreeModel { List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); - ObserveSwingApplicationContext.get().getDecoratorService().sort(ProgramDto.class, programs); + ObserveSwingApplicationContext.get().getDecoratorService().sortReferential(ProgramDto.class, programs); boolean showEmptyTrips = isShowEmptyTrips(); -- 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 observe. See https://gitlab.nuiton.org/codelutin/observe.git commit c54d9e52ac762d8c2a1dec0b6b01ff4db375e502 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Nov 26 17:42:23 2016 +0100 [ui] optimize sort --- .../swing/decoration/DecoratorService.java | 102 ++++----------------- .../ui/content/list/ContentListUIHandler.java | 6 +- .../swing/ui/tree/navigation/NavigationTree.java | 14 +-- .../ui/tree/navigation/NavigationTreeModel.java | 8 +- .../ui/tree/selection/SelectionTreeModel.java | 3 +- .../services/dto/longline/TripLonglineHelper.java | 14 +++ .../services/dto/referential/ProgramHelper.java | 13 +++ .../services/dto/seine/TripSeineHelper.java | 16 +++- 8 files changed, 72 insertions(+), 104 deletions(-) diff --git a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java index 7c2de17..74ae5bb 100644 --- a/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java +++ b/application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java @@ -138,11 +138,7 @@ import fr.ird.observe.util.GPSPoint; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorProvider; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; import java.util.Locale; -import java.util.Map; import static org.nuiton.i18n.I18n.l; import static org.nuiton.i18n.I18n.n; @@ -212,23 +208,23 @@ public class DecoratorService extends DecoratorProvider { this.referentialLocale = referentialLocale; } - public String decorate(Object o) { - return decorate(null, o); - - } - - private String decorate(String context, Object o) { - //FIXME - if (o == null) { - return null; - } - Decorator<Object> decorator = getDecorator(o, context); - String result = ""; - if (decorator != null) { - result = decorator.toString(o); - } - return result; - } +// public String decorate(Object o) { +// return decorate(null, o); +// +// } + +// private String decorate(String context, Object o) { +// //FIXME +// if (o == null) { +// return null; +// } +// Decorator<Object> decorator = getDecorator(o, context); +// String result = ""; +// if (decorator != null) { +// result = decorator.toString(o); +// } +// return result; +// } @Override protected void loadDecorators() { @@ -439,25 +435,16 @@ public class DecoratorService extends DecoratorProvider { } - public <T extends ReferentialDto> void sortReferential(Class<T> type, List<ReferentialReference<T>> data) { - new ReferentialReferenceComparator<>(type).sort(data); - } - - - public <T extends DataDto> void sortData(Class<T> type, List<DataReference<T>> data) { - new DataReferenceComparator<>(type).sort(data); - } - public <T extends ReferentialDto> ReferentialReferenceDecorator<T> getReferentialReferenceDecorator(Class<T> referenceType) { - return (ReferentialReferenceDecorator<T>) (ReferentialReferenceDecorator) getDecoratorByType(ReferentialReference.class, referenceType.getSimpleName()); + return (ReferentialReferenceDecorator) getDecoratorByType(ReferentialReference.class, referenceType.getSimpleName()); } public <T extends DataDto> DataReferenceDecorator<T> getDataReferenceDecorator(Class<T> referenceType) { - return (DataReferenceDecorator<T>) (DataReferenceDecorator) getDecoratorByType(DataReference.class, referenceType.getSimpleName()); + return (DataReferenceDecorator) getDecoratorByType(DataReference.class, referenceType.getSimpleName()); } public <T extends DataDto> DataReferenceDecorator<T> getDataReferenceDecorator(Class<T> referenceType, String context) { - return (DataReferenceDecorator<T>) (DataReferenceDecorator) getDecoratorByType(DataReference.class, referenceType.getSimpleName() + context); + return (DataReferenceDecorator) getDecoratorByType(DataReference.class, referenceType.getSimpleName() + context); } public <D extends IdDto> Decorator<D> getReferenceDecorator(Class<D> referenceType) { @@ -545,53 +532,4 @@ public class DecoratorService extends DecoratorProvider { registerDecorator(context, new ObserveDecorator<>(referenceType, expression, separator)); } - private class ReferentialReferenceComparator<T extends ReferentialDto> implements Comparator<ReferentialReference<T>> { - - private final ReferentialReferenceDecorator<T> decorator; - - private final Map<ReferentialReference<T>, String> cache = new HashMap<>(); - - private ReferentialReferenceComparator(Class<T> type) { - decorator = getReferentialReferenceDecorator(type); - } - - private String get(ReferentialReference<T> id) { - return cache.computeIfAbsent(id, k -> decorator.toString(id)); - } - - @Override - public int compare(ReferentialReference<T> o1, ReferentialReference<T> o2) { - return get(o1).compareTo(get(o2)); - } - - public void sort(List<ReferentialReference<T>> data) { - data.sort(this); - cache.clear(); - } - } - - private class DataReferenceComparator<T extends DataDto> implements Comparator<DataReference<T>> { - - private final DataReferenceDecorator<T> decorator; - - private final Map<DataReference<T>, String> cache = new HashMap<>(); - - private DataReferenceComparator(Class<T> type) { - decorator = getDataReferenceDecorator(type); - } - - private String get(DataReference<T> id) { - return cache.computeIfAbsent(id, k -> decorator.toString(id)); - } - - @Override - public int compare(DataReference<T> o1, DataReference<T> o2) { - return get(o1).compareTo(get(o2)); - } - - public void sort(List<DataReference<T>> data) { - data.sort(this); - cache.clear(); - } - } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 131a5e0..8f182fc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -86,8 +86,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U ListCellRenderer renderer = getUi().getList().getCellRenderer(); NavigationTree treeHelper = getTreeHelper(getUi()); - ListCellRenderer renderer2 = new EntityListCellRenderer(renderer, treeHelper); - getUi().getList().setCellRenderer(renderer2); + getUi().getList().setCellRenderer(new EntityListCellRenderer(renderer, treeHelper)); } @Override @@ -266,7 +265,8 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U comp.setIcon(icon); Color color = node.getColor(); comp.setForeground(color); - comp.setBackground(null); + comp.setText(node.getText()); +// comp.setBackground(null); return comp; } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java index 4d9d080..832e5ce 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTree.java @@ -82,18 +82,6 @@ public class NavigationTree extends JXTree { /** Logger */ private static final Log log = LogFactory.getLog(NavigationTree.class); - public static void sortPrograms(List<ReferentialReference<ProgramDto>> data) { - ObserveSwingApplicationContext.get().getDecoratorService().sortReferential(ProgramDto.class, data); - } - - public static void sortTripSeines(List<DataReference<TripSeineDto>> data) { - ObserveSwingApplicationContext.get().getDecoratorService().sortData(TripSeineDto.class, data); - } - - public static void sortTripLLonglines(List<DataReference<TripLonglineDto>> data) { - ObserveSwingApplicationContext.get().getDecoratorService().sortData(TripLonglineDto.class, data); - } - public NavigationTree() { super(new NavigationTreeModel()); setLargeModel(true); @@ -504,7 +492,7 @@ public class NavigationTree extends JXTree { List<ReferentialReference<ProgramDto>> data = new ArrayList<>(programs); int newIndex = 0; if (CollectionUtils.isNotEmpty(data)) { - sortPrograms(data); + data = ProgramHelper.sort(data); newIndex = data.indexOf(bean); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java index ef5e065..29253a2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/NavigationTreeModel.java @@ -30,11 +30,13 @@ import fr.ird.observe.application.swing.ui.tree.navigation.nodes.referential.Ref import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineHelper; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ProgramHelper; import fr.ird.observe.services.dto.referential.ReferentialHelper; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.seine.TripSeineHelper; import fr.ird.observe.services.service.data.NavigationRequest; import fr.ird.observe.services.service.data.NavigationResult; import fr.ird.observe.services.service.data.NavigationService; @@ -88,7 +90,7 @@ public class NavigationTreeModel extends DefaultTreeModel { NavigationResult navigationResult = navigationService.getNavigation(navigationRequest); List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); - NavigationTree.sortPrograms(programs); + programs = ProgramHelper.sort(programs); RootNavigationTreeNode root = new RootNavigationTreeNode(); @@ -99,14 +101,14 @@ public class NavigationTreeModel extends DefaultTreeModel { if (ProgramHelper.isProgramLongline(program)) { List<DataReference<TripLonglineDto>> references = new ArrayList<>(tripsLonglineByProgram.getOrDefault(program, Collections.emptyList())); - NavigationTree.sortTripLLonglines(references); + references = TripLonglineHelper.sort(references); ProgramLonglineNavigationTreeNode programNode = new ProgramLonglineNavigationTreeNode(program, references); root.add(programNode); } else if (ProgramHelper.isProgramSeine(program)) { List<DataReference<TripSeineDto>> references = new ArrayList<>(tripsSeineByProgram.getOrDefault(program, Collections.emptyList())); - NavigationTree.sortTripSeines(references); + references = TripSeineHelper.sort(references); ProgramSeineNavigationTreeNode programNode = new ProgramSeineNavigationTreeNode(program, references); root.add(programNode); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java index d6ff1ab..274bdde 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTreeModel.java @@ -25,7 +25,6 @@ package fr.ird.observe.application.swing.ui.tree.selection; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.export.TripEntry; import fr.ird.observe.application.swing.ui.tree.selection.nodes.ProgramSelectionTreeNode; @@ -193,7 +192,7 @@ public class SelectionTreeModel extends DefaultTreeModel { List<ReferentialReference<ProgramDto>> programs = new ArrayList<>(navigationResult.getPrograms()); - ObserveSwingApplicationContext.get().getDecoratorService().sortReferential(ProgramDto.class, programs); + programs = ProgramHelper.sort(programs); boolean showEmptyTrips = isShowEmptyTrips(); diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java index 7228b95..f8a9693 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineHelper.java @@ -24,6 +24,11 @@ package fr.ird.observe.services.dto.longline; import fr.ird.observe.services.dto.DataReference; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + public class TripLonglineHelper extends GeneratedTripLonglineHelper { public static int getActivityCount(DataReference<TripLonglineDto> data) { @@ -33,4 +38,13 @@ public class TripLonglineHelper extends GeneratedTripLonglineHelper { public static String getProgramId(DataReference<TripLonglineDto> data) { return (String) data.getPropertyValue(TripLonglineDto.PROPERTY_PROGRAM + "Id"); } + + public static List<DataReference<TripLonglineDto>> sort(List<DataReference<TripLonglineDto>> data) { + Map<Object, DataReference<TripLonglineDto>> map = new TreeMap<>(); + for (DataReference<TripLonglineDto> datum : data) { + map.put(datum.getPropertyValue(TripLonglineDto.PROPERTY_START_DATE), datum); + } + return new ArrayList<>(map.values()); + } + } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java index dfae73d..242b775 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/ProgramHelper.java @@ -24,6 +24,11 @@ package fr.ird.observe.services.dto.referential; import fr.ird.observe.services.dto.constants.GearType; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + public class ProgramHelper extends GeneratedProgramHelper { public static boolean isProgramLongline(ReferentialReference<ProgramDto> programDtoRef) { @@ -58,4 +63,12 @@ public class ProgramHelper extends GeneratedProgramHelper { return (int) reference.getPropertyValue(ProgramDto.PROPERTY_TRIP_COUNT); } + public static List<ReferentialReference<ProgramDto>> sort(List<ReferentialReference<ProgramDto>> data) { + Map<Object, ReferentialReference<ProgramDto>> map = new TreeMap<>(); + for (ReferentialReference<ProgramDto> datum : data) { + map.put(datum.getPropertyValue(ProgramDto.PROPERTY_GEAR_TYPE) + "" + datum.getPropertyValue(ProgramDto.PROPERTY_LABEL), datum); + } + return new ArrayList<>(map.values()); + } + } diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java index d42c8a7..1efebb5 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/seine/TripSeineHelper.java @@ -24,12 +24,26 @@ package fr.ird.observe.services.dto.seine; import fr.ird.observe.services.dto.DataReference; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + public class TripSeineHelper extends GeneratedTripSeineHelper { + public static int getRouteCount(DataReference<TripSeineDto> data) { return (int) data.getPropertyValue(TripSeineDto.PROPERTY_ROUTE_COUNT); } public static String getProgramId(DataReference<TripSeineDto> data) { - return (String) data.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM+"Id"); + return (String) data.getPropertyValue(TripSeineDto.PROPERTY_PROGRAM + "Id"); + } + + public static List<DataReference<TripSeineDto>> sort(List<DataReference<TripSeineDto>> data) { + Map<Object, DataReference<TripSeineDto>> map = new TreeMap<>(); + for (DataReference<TripSeineDto> datum : data) { + map.put(datum.getPropertyValue(TripSeineDto.PROPERTY_START_DATE), datum); + } + return new ArrayList<>(map.values()); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm