Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 9fe481cc by Tony Chemit at 2022-02-15T05:25:32+01:00 update pom Update toolkit - - - - - ba6e0abe by Tony Chemit at 2022-02-15T05:25:32+01:00 Improve DAO API - See ultreiaio/topia-extension#105 - - - - - b22d6eb2 by Tony Chemit at 2022-02-15T05:25:32+01:00 Remove dao operators - - - - - 17c59e20 by Tony Chemit at 2022-02-15T05:25:32+01:00 Ajouter dans les arbres une zone où afficher les statistiques sur la source de données - See #2161 - - - - - 30 changed files: - client/core/src/main/i18n/getters/java.getter - client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java - client/datasource/actions/src/main/i18n/getters/java.getter - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/ObserveKeyStrokesActions.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataModel.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePane.jaxx - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/ObserveKeyStrokesEditorApi.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/TreeConfigUIHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/actions/ApplyNavigationConfiguration.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeExecutor.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTreeModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/actions/ShowConfigure.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/select/SelectNodesByModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/select/SelectNodesByModelNode.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/SelectionTreePane.jaxx - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/SelectionTreePane.jcss - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/SelectionTreePaneHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/ShowConfigurePanel.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/ShowInformation.java → client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/ShowInformationPanel.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/ToggleMenu.java → client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/ToggleMenu.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/actions/Cancel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/tabs/SelectDataUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/RouteCloseCallback.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/ShowConfigure.java → core/persistence/java/src/main/java/fr/ird/observe/entities/AbstractObserveTopiaDao.java - model/src/main/models/Observe/persistence/00-common.model - pom.xml Changes: ===================================== client/core/src/main/i18n/getters/java.getter ===================================== @@ -165,6 +165,8 @@ observe.ui.datasource.storage.remote.useSll observe.ui.datasource.storage.remoteConfiguration.presets observe.ui.datasource.storage.remoteConfiguration.presets.save observe.ui.datasource.storage.server.dataBase +observe.ui.datasource.storage.server.dataBase.name +observe.ui.datasource.storage.server.default.dataBase observe.ui.datasource.storage.serverConfiguration.presets observe.ui.error.hide.error observe.ui.error.show.error ===================================== client/core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java ===================================== @@ -48,6 +48,7 @@ import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfigurationAndConn import fr.ird.observe.dto.db.configuration.ObserveDataSourceConfigurationAndConnectionDto; import fr.ird.observe.dto.db.configuration.ObserveDataSourceConnection; import fr.ird.observe.dto.db.configuration.ObserveDataSourceInformation; +import fr.ird.observe.dto.db.configuration.rest.ObserveDataSourceConfigurationRest; import fr.ird.observe.dto.db.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.dto.db.configuration.topia.ObserveDataSourceConfigurationTopiaPG; import fr.ird.observe.dto.reference.ReferentialDtoReference; @@ -93,6 +94,7 @@ import java.util.Date; import java.util.Iterator; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; @@ -645,4 +647,24 @@ public class ObserveSwingDataSource extends AbstractJavaBean implements ObserveS } } + public String getLabelWithUrl() { + String txt; + switch (getConfiguration().getConnectMode()) { + case LOCAL: + return getLabel(); + case SERVER: { + txt = getConfiguration().getUrl(); + ObserveDataSourceConfigurationRest configuration = (ObserveDataSourceConfigurationRest) getConfiguration(); + Optional<String> optionalDatabaseName = Optional.ofNullable(configuration.getDatabaseName()); + txt += " - " + t("observe.ui.datasource.storage.server.dataBase.name") + " " + (optionalDatabaseName.orElse(t("observe.ui.datasource.storage.server.default.dataBase"))); + } + break; + case REMOTE: + txt = getConfiguration().getUrl(); + break; + default: + throw new IllegalStateException(String.format("Can't have a such mode: %s", getConfiguration().getConnectMode())); + } + return String.format("%s (%s)", getLabel(), txt); + } } ===================================== client/datasource/actions/src/main/i18n/getters/java.getter ===================================== @@ -23,8 +23,6 @@ observe.ui.action.goto.next.stage observe.ui.action.goto.next.stage.tip observe.ui.action.goto.previous.stage observe.ui.action.goto.previous.stage.tip -observe.ui.action.info.configure -observe.ui.action.info.storage observe.ui.action.info.storage.tip observe.ui.choice.cancel observe.ui.choice.replace @@ -179,7 +177,6 @@ observe.ui.title.choose.db.dump.directory observe.ui.title.choose.reportFile observe.ui.title.storage.info observe.ui.tree.action.collapseAll.tip -observe.ui.tree.action.configure.tip observe.ui.tree.action.expandAll.tip observe.ui.tree.action.selectAll.tip observe.ui.tree.action.unselectAll.tip ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/ObserveKeyStrokesActions.java ===================================== @@ -34,17 +34,9 @@ import javax.swing.KeyStroke; */ public class ObserveKeyStrokesActions extends ObserveKeyStrokesEditorApi { - public static final KeyStroke KEY_STROKE_STORAGE_MENU_LEFT = KeyStroke.getKeyStroke("pressed F1"); - public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_LEFT = KeyStroke.getKeyStroke("pressed F2"); - - public static final KeyStroke KEY_STROKE_STORAGE_MENU_RIGHT = KeyStroke.getKeyStroke("pressed F6"); - public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT = KeyStroke.getKeyStroke("pressed F7"); - - public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_INFO_LEFT = KeyStroke.getKeyStroke("pressed F3"); public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_COPY_LEFT = KeyStroke.getKeyStroke("pressed F4"); public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_DELETE_LEFT = KeyStroke.getKeyStroke("pressed F5"); - public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_INFO_RIGHT = KeyStroke.getKeyStroke("pressed F8"); public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_COPY_RIGHT = KeyStroke.getKeyStroke("pressed F9"); public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_DELETE_RIGHT = KeyStroke.getKeyStroke("pressed F10"); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataModel.java ===================================== @@ -27,6 +27,8 @@ import fr.ird.observe.client.datasource.actions.AdminStep; import fr.ird.observe.client.datasource.actions.AdminUIModel; import fr.ird.observe.client.datasource.actions.validate.ValidateModel; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePaneHandler; import fr.ird.observe.navigation.tree.selection.SelectionTreeConfig; import fr.ird.observe.navigation.tree.selection.SelectionTreeModel; import org.apache.logging.log4j.LogManager; @@ -102,7 +104,7 @@ public class SelectDataModel extends AdminActionModel { this.selectionDataModel = selectionDataModel; } - public boolean initSelectionModel(AdminUIModel uiModel, boolean init) { + public boolean initSelectionModel(SelectionTreePane selectTreePane, AdminUIModel uiModel, boolean init) { boolean selectAllData = true; boolean loadData = true; boolean loadReferential = true; @@ -162,7 +164,7 @@ public class SelectDataModel extends AdminActionModel { config.setLoadReferential(loadReferential); config.setUseOpenData(useOpenData); } - + SelectionTreePaneHandler.initDataSource(selectTreePane, dataSource); selectionDataModel.populate(dataSource.getNavigationService()::loadSelectionRoot); if (uiModel.containsOperation(AdminStep.EXPORT_DATA)) { ObserveSwingDataSource safeCentralSource = uiModel.getConfigModel().getRightSourceModel().getSafeSource(true); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java ===================================== @@ -27,16 +27,14 @@ import fr.ird.observe.client.datasource.actions.AdminTabUIHandler; import fr.ird.observe.client.datasource.actions.AdminUIModel; import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI; import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUIHandler; -import fr.ird.observe.client.datasource.editor.api.config.actions.ApplySelectionConfiguration; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePaneHandler; import fr.ird.observe.client.datasource.editor.api.selection.actions.SelectUnselect; -import fr.ird.observe.client.datasource.editor.api.selection.actions.ShowConfigurePanel; import fr.ird.observe.client.util.UIHelper; import fr.ird.observe.navigation.tree.selection.SelectionTree; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.runtime.swing.SwingUtil; import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState; -import javax.swing.JToggleButton; import javax.swing.SwingUtilities; import java.awt.GridBagConstraints; import java.awt.Insets; @@ -62,7 +60,7 @@ public class SelectDataUIHandler extends AdminTabUIHandler<SelectDataUI> impleme SelectionTree selectTree = ui.getSelectTreePane().getTree(); selectTree.clearSelection(); } - boolean isLocal = ui.getModel().getSelectDataModel().initSelectionModel(model, init); + boolean isLocal = ui.getModel().getSelectDataModel().initSelectionModel(ui.getSelectTreePane(),model, init); SelectionTree tree = ui.getSelectTreePane().getTree(); if (tree.getModel().isNotEmpty()) { tree.setSelectionRow(0); @@ -76,7 +74,7 @@ public class SelectDataUIHandler extends AdminTabUIHandler<SelectDataUI> impleme @Override public void registerActions(SelectDataUI ui) { SelectUnselect.installUI(ui.getSelectTreePane()); - Consumer<TreeConfigUI> consumer = u -> { + Consumer<TreeConfigUI> init = u -> { if (u.getBean().isLoadData()) { TreeConfigUIHandler.hideOptions(u); } else { @@ -85,10 +83,7 @@ public class SelectDataUIHandler extends AdminTabUIHandler<SelectDataUI> impleme } }; Consumer<TreeConfigUI> apply = u -> loadSelectData(ui); - JToggleButton showConfigure = ui.getSelectTreePane().getShowConfigure(); - showConfigure.putClientProperty(ShowConfigurePanel.UI_CONSUMER, consumer); - showConfigure.putClientProperty(ApplySelectionConfiguration.APPLY_CONSUMER, apply); - ShowConfigurePanel.init(ui.getSelectTreePane(), showConfigure, new ShowConfigurePanel()); + SelectionTreePaneHandler.init(ui.getSelectTreePane(), init, apply); } @Override ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePane.jaxx ===================================== @@ -17,12 +17,12 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<org.jdesktop.swingx.JXTitledPanel id='topPanel' contentContainer='{tree}' leftDecoration='{dataSourceToolbar}'> - <!-- rightDecoration='{middleActions}' decorator='boxed'>--> - <import> - fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane - </import> - <script><![CDATA[ +<JPanel id='topPanel' layout="{new BorderLayout()}"> + <import> + fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane + </import> + <script><![CDATA[ + public boolean isLeft() { return !isRight(); } @@ -30,20 +30,11 @@ public boolean isRight() { return Boolean.TRUE.equals(getOpposite()); } ]]> - </script> - <Boolean id='opposite' initializer='getContextValue(Boolean.class)'/> - <JPopupMenu id='menuPopup'> - <JMenuItem id='showConfigure'/> - <JMenuItem id='showInformation'/> - </JPopupMenu> - <JToolBar id='dataSourceToolbar'> - <JToggleButton id='toggleMenu'/> - <JLabel id="label"/> - </JToolBar> - <SelectionTreePane id='tree' constructorParams="isRight()"/> - <JToolBar id="middleActions"> - <JButton id="copy" enabled="false"/> - <JButton id="delete" enabled="false"/> - </JToolBar> - -</org.jdesktop.swingx.JXTitledPanel> + </script> + <Boolean id='opposite' initializer='getContextValue(Boolean.class)'/> + <JToolBar id="toolbar"> + <JButton id="copy" enabled="false"/> + <JButton id="delete" enabled="false"/> + </JToolBar> + <SelectionTreePane id='tree' constructorParams="isRight()" constraints='BorderLayout.CENTER'/> +</JPanel> ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/DataSelectionTreePaneHandler.java ===================================== @@ -30,9 +30,8 @@ import fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions.Re import fr.ird.observe.client.datasource.api.data.TaskSide; import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI; import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUIHandler; -import fr.ird.observe.client.datasource.editor.api.config.actions.ApplySelectionConfiguration; import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane; -import fr.ird.observe.client.datasource.editor.api.selection.actions.ShowConfigurePanel; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePaneHandler; import fr.ird.observe.client.datasource.editor.api.wizard.connexion.DataSourceSelectorModel; import fr.ird.observe.client.util.init.UIInitHelper; import fr.ird.observe.navigation.tree.selection.SelectionTree; @@ -88,13 +87,14 @@ public class DataSelectionTreePaneHandler implements UIHandler<DataSelectionTree ui.getDelete().setEnabled(canWriteData); ui.getCopy().setEnabled(oppositeCanWriteData); - - String label = sourceModel.getLabel(); - String labelWithUrl = sourceModel.getLabelWithUrl().substring(label.length() + 1); - JLabel dataSourceInformation = ui.getLabel(); - dataSourceInformation.setIcon(sourceModel.getSource().getIcon()); - dataSourceInformation.setText(sourceModel.getSource().getLabel() + " " + labelWithUrl); + SelectionTreePaneHandler.initDataSource(ui.getTree(), sourceModel.getSource()); +// String label = sourceModel.getLabel(); +// String labelWithUrl = sourceModel.getLabelWithUrl().substring(label.length() + 1); + JLabel dataSourceInformation = ui.getTree().getLabel(); +// dataSourceInformation.setIcon(sourceModel.getSource().getIcon()); +// dataSourceInformation.setText(sourceModel.getSource().getLabel() + " " + labelWithUrl); dataSourceInformation.setForeground(color); +// ui.putClientProperty("$$Label", dataSourceInformation); } public static void init(DataSelectionTreePane ui) { @@ -108,7 +108,8 @@ public class DataSelectionTreePaneHandler implements UIHandler<DataSelectionTree DataSynchroUI parent = ui.getContextValue(DataSynchroUI.class, AdminTabUIHandler.ADMIN_TAB_UI); DataSynchroModel stepModel = parent.getStepModel(); SelectionTreeModel treeModel = tree.getModel(); - treePane.getRightToolbar().remove(treePane.getShowConfigure()); +// ui.setLeftDecoration(treePane.getRightToolbar()); +// treePane.getRightToolbar().remove(treePane.getShowConfigure()); treePane.getCollapseAll().setText(null); treePane.getExpandAll().setText(null); treePane.getSelectAll().setText(null); @@ -119,8 +120,8 @@ public class DataSelectionTreePaneHandler implements UIHandler<DataSelectionTree Consumer<TreeConfigUI> consumer = TreeConfigUIHandler::hideOptions; Consumer<TreeConfigUI> apply = u -> initPanel(parent, ui); - ui.getShowConfigure().putClientProperty(ShowConfigurePanel.UI_CONSUMER, consumer); - ui.getShowConfigure().putClientProperty(ApplySelectionConfiguration.APPLY_CONSUMER, apply); + SelectionTreePaneHandler.init(treePane, consumer, apply); + if (isLeft) { stepModel.setLeftSelectionDataModel(treeModel); } else { ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/DataSourceEditorHandler.java ===================================== @@ -155,12 +155,14 @@ public class DataSourceEditorHandler implements UIHandler<DataSourceEditor>, Wit public void loadNavigationUI(ProgressionModel progressModel, NavigationNode previousNode) { NavigationUI navigationUI = ui.getNavigationUI(); NavigationTree tree = navigationUI.getTree(); + // need to keep paths now, after populate previous node may be altered + String[] previousPaths = previousNode == null ? null : previousNode.toPaths(); tree.populate(null); progressModel.increments(); // select initial node if (previousNode != null) { try { - tree.reselectInitialNode(previousNode); + tree.reselectInitialNode(previousPaths); } catch (Exception e) { log.error("Could not load previous node", e); previousNode = null; ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/ObserveKeyStrokesEditorApi.java ===================================== @@ -34,14 +34,24 @@ import javax.swing.KeyStroke; */ public class ObserveKeyStrokesEditorApi extends ObserveKeyStrokesSupport { - //FIXME Let's design a nice new API to register KeyStroke (a new annotation, processed to generate KeyStroke ressource) + //FIXME Let's design a nice new API to register KeyStroke (a new annotation, processed to generate KeyStroke resources) // Navigation public static final KeyStroke KEY_STROKE_MAP_CONFIGURE = KeyStroke.getKeyStroke("alt pressed F2"); public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE = KeyStroke.getKeyStroke("pressed F12"); - public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_LEFT = KeyStroke.getKeyStroke("pressed F1"); - public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT = KeyStroke.getKeyStroke("pressed F10"); +// public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_LEFT = KeyStroke.getKeyStroke("pressed F1"); +// public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT = KeyStroke.getKeyStroke("pressed F10"); + + + public static final KeyStroke KEY_STROKE_STORAGE_MENU_LEFT = KeyStroke.getKeyStroke("pressed F1"); + public static final KeyStroke KEY_STROKE_STORAGE_MENU_RIGHT = KeyStroke.getKeyStroke("pressed F6"); + + public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_LEFT = KeyStroke.getKeyStroke("pressed F2"); + public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT = KeyStroke.getKeyStroke("pressed F7"); + + public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_INFO_LEFT = KeyStroke.getKeyStroke("pressed F3"); + public static final KeyStroke KEY_STROKE_DATA_SYNCHRO_INFO_RIGHT = KeyStroke.getKeyStroke("pressed F8"); public static final KeyStroke KEY_STROKE_TOGGLE_LEGEND = KeyStroke.getKeyStroke("pressed F11"); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/TreeConfigUIHandler.java ===================================== @@ -91,8 +91,7 @@ public class TreeConfigUIHandler implements UIHandler<TreeConfigUI>, PropertyCha } public static void showPanel(JComponent editor, TreeConfigUI configUI) { - JPopupMenu popup = editor.getComponentPopupMenu(); - configUI.setComponentPopupMenu(popup); + JPopupMenu popup = Objects.requireNonNull(configUI.getComponentPopupMenu()); Dimension preferredSize = configUI.getPreferredSize(); popup.setMinimumSize(preferredSize); popup.removeAll(); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/actions/ApplyNavigationConfiguration.java ===================================== @@ -86,10 +86,11 @@ public class ApplyNavigationConfiguration extends ApplyConfigurationSupport { protected void applyConsumer(TreeConfigUI ui) { NavigationTree tree = tree(ui); NavigationNode selectedNode = selectedNode(ui); + String[] paths = selectedNode.toPaths(); try { tree.populate(null); } finally { - SwingUtilities.invokeLater(() -> tree.reselectInitialNode(selectedNode)); + SwingUtilities.invokeLater(() -> tree.reselectInitialNode(paths)); } } } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeExecutor.java ===================================== @@ -77,7 +77,7 @@ public class ChangeModeExecutor<U extends ContentUI> { String id = request.getSelectedId(ui, selectedNode); log.info(String.format("Will open: %s → (select: %s - edit: %s)", id, selectedNode, editNode)); NavigationTree tree = dataSourceEditor.getNavigationUI().getTree(); - NavigationNode previousOpenedNode = editNode.isEnabled() ? tree.getModel().getNodeFromModelNode(editNode, false) : null; + NavigationNode previousOpenedNode = editNode.isEnabled() ? tree.getModel().getNodeFromModelNode(editNode) : null; ChangeMode.openData(ui.getHandler(), editNode, selectedNode, id); afterOpen(ui, dataSourceEditor, previousOpenedNode, id); } catch (CloseNodeVetoException e1) { ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTree.java ===================================== @@ -203,7 +203,7 @@ public class NavigationTree extends JXTree implements WithClientUIContextApi { * @param editNode the node to select */ public void selectNode(IdNode<?> editNode) { - NavigationNode node = getModel().getNodeFromModelNode(editNode, false); + NavigationNode node = getModel().getNodeFromModelNode(editNode); selectNode(node); } @@ -222,10 +222,8 @@ public class NavigationTree extends JXTree implements WithClientUIContextApi { /** * Select initial node when data source just opened. */ - public void reselectInitialNode(NavigationNode selectedNode) { - //FIXME If on data Find out new groupBy value, go to this node, then do normal search - //FIXME Otherwise tree will be loaded until matching groupBy value is found - NavigationNode node = getModel().getNodeFromPath(selectedNode.toPaths(), true); + public void reselectInitialNode(String[] paths) { + NavigationNode node = getModel().getNodeFromPath(paths, true); if (node == null) { selectInitialNode(); } else { ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTreeModel.java ===================================== @@ -131,8 +131,8 @@ public class NavigationTreeModel extends DefaultTreeModel implements WithClientU return node.orElse(null); } - public NavigationNode getNodeFromModelNode(IdNode<?> model, boolean checkGroupBy) { - Optional<NavigationNode> node = new SelectNodesByModelNode(model, checkGroupBy).apply(getRoot()); + public NavigationNode getNodeFromModelNode(IdNode<?> model) { + Optional<NavigationNode> node = new SelectNodesByModelNode(model).apply(getRoot()); return node.orElse(null); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/actions/ShowConfigure.java ===================================== @@ -59,6 +59,7 @@ public class ShowConfigure extends MenuActionSupport { ui.getTree().getModel().getGroupByHelper(), new ApplyNavigationConfiguration(), ui.getTree()); + configUI.setComponentPopupMenu(ui.getComponentPopupMenu()); TreeConfigUIHandler.showPanel(ui, configUI); }); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/select/SelectNodesByModel.java ===================================== @@ -55,7 +55,7 @@ public class SelectNodesByModel implements SelectNodeStrategy { // get all ids from model List<IdNode<?>> nodesWithIds = model.getNodesWithIds(); IdNode<?> modelNodeToFind = nodesWithIds.get(nodesWithIds.size() - 1); - result = SelectNodesByModelNode.findNode(rootNode, modelNodeToFind, checkGroupBy); + result = SelectNodesByModelNode.findNode(rootNode, modelNodeToFind); } return Optional.ofNullable(result); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/tree/select/SelectNodesByModelNode.java ===================================== @@ -43,21 +43,17 @@ import java.util.Optional; public class SelectNodesByModelNode implements SelectNodeStrategy { private final IdNode<?> model; - private final boolean checkGroupBy; - public static NavigationNode findNode(RootNavigationNode rootNode, IdNode<?> editNode, boolean checkGroupBy) { - if (checkGroupBy) { - // get root edit node - IdNode<?> root = editNode.getRoot(); - String groupByValue = rootNode.computeGroupByValue(root.getId()); - NavigationNode groupByNode = rootNode.findChildById(groupByValue); - if (root.equals(editNode)) { - return groupByNode; - } - // start normal search from groupBy node - return findNode(groupByNode, editNode); + public static NavigationNode findNode(RootNavigationNode rootNode, IdNode<?> editNode) { + // get root edit node + IdNode<?> root = editNode.getRoot(); + String groupByValue = rootNode.computeGroupByValue(root.getId()); + NavigationNode groupByNode = rootNode.findChildById(groupByValue); + if (root.equals(editNode)) { + return groupByNode; } - return findNode(rootNode, editNode); + // start normal search from groupBy node + return findNode(groupByNode, editNode); } public static NavigationNode findNode(NavigationNode source, IdNode<?> editNode) { @@ -99,16 +95,15 @@ public class SelectNodesByModelNode implements SelectNodeStrategy { return null; } - public SelectNodesByModelNode(IdNode<?> model, boolean checkGroupBy) { + public SelectNodesByModelNode(IdNode<?> model) { this.model = model; - this.checkGroupBy = checkGroupBy; } @Override public Optional<NavigationNode> apply(RootNavigationNode rootNode) { NavigationNode result = null; if (model.isEnabled()) { - result = findNode(rootNode, model, checkGroupBy); + result = findNode(rootNode, model); } return Optional.ofNullable(result); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/SelectionTreePane.jaxx ===================================== @@ -17,7 +17,7 @@ <http://www.gnu.org/licenses/gpl-3.0.html>. #L% --> -<JScrollPane id='treePane' columnHeaderView='{treeHeader}' viewportView="{tree}"> +<org.jdesktop.swingx.JXTitledPanel id='topPanel' contentContainer='{rootTreePane}' leftDecoration="{rightToolbar}" rightDecoration="{toolbar}" > <import> fr.ird.observe.client.util.UIHelper fr.ird.observe.navigation.tree.selection.SelectionTree @@ -37,19 +37,29 @@ public SelectionTreePane(boolean opposite) { public boolean isOpposite() { return opposite; } ]]> </script> + <JPopupMenu id='menuPopup'> + <JMenuItem id='showConfigure'/> + <JMenuItem id='showInformation'/> + </JPopupMenu> <String id='labelText' javaBean='null'/> - <SelectionTree id='tree'/> - <JPanel id="treeHeader" layout='{new BorderLayout()}'> - <JToolBar id='rightToolbar' constraints='BorderLayout.CENTER'> - <JToggleButton id='showConfigure'/> - <JSeparator/> - <JLabel id="label"/> - </JToolBar> - <JToolBar id='toolbar' constraints='BorderLayout.EAST'> - <JButton id='collapseAll'/> - <JButton id='expandAll'/> - <JButton id='selectAll'/> - <JButton id='unselectAll'/> - </JToolBar> + <JToolBar id='rightToolbar'> + <JToggleButton id='toggleMenu'/> + <JSeparator orientation='{JSeparator.VERTICAL}'/> + <JLabel id="label"/> + </JToolBar> + <JToolBar id='toolbar'> + <JSeparator orientation='{JSeparator.VERTICAL}'/> + <JButton id='collapseAll'/> + <JButton id='expandAll'/> + <JButton id='selectAll'/> + <JButton id='unselectAll'/> + </JToolBar> + <JPanel id="rootTreePane" layout="{new BorderLayout()}"> + <JScrollPane id='treePane' viewportView="{tree}" constraints='BorderLayout.CENTER'> + <SelectionTree id='tree'/> + </JScrollPane> + <JPanel id="statusPanel" constraints='BorderLayout.SOUTH'> + <JLabel id="statusLabel"/> + </JPanel> </JPanel> -</JScrollPane> +</org.jdesktop.swingx.JXTitledPanel> \ No newline at end of file ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/SelectionTreePane.jcss ===================================== @@ -24,11 +24,15 @@ font-size:11; } +#toggleMenu { + inheritsPopupMenu:true; +} + #treePane { verticalScrollBarPolicy:{JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED}; } -#label { +#statusLabel { text:{getLabelText()}; } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/SelectionTreePaneHandler.java ===================================== @@ -22,14 +22,23 @@ package fr.ird.observe.client.datasource.editor.api.selection; * #L% */ +import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; +import fr.ird.observe.client.datasource.api.ObserveSwingDataSourceTemplate; +import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI; +import fr.ird.observe.client.datasource.editor.api.config.actions.ApplySelectionConfiguration; +import fr.ird.observe.client.datasource.editor.api.selection.actions.ShowConfigurePanel; +import fr.ird.observe.client.datasource.editor.api.selection.actions.ShowInformationPanel; import fr.ird.observe.client.util.init.UIInitHelper; import fr.ird.observe.navigation.tree.selection.SelectionTree; import fr.ird.observe.navigation.tree.selection.SelectionTreeModel; import org.nuiton.jaxx.runtime.spi.UIHandler; +import javax.swing.JLabel; +import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.function.Consumer; import static io.ultreia.java4all.i18n.I18n.t; @@ -40,6 +49,21 @@ import static io.ultreia.java4all.i18n.I18n.t; public class SelectionTreePaneHandler implements UIHandler<SelectionTreePane>, PropertyChangeListener { private SelectionTreePane ui; + public static void init(SelectionTreePane ui, Consumer<TreeConfigUI> consumer, Consumer<TreeConfigUI> apply) { + JMenuItem showConfigure = ui.getShowConfigure(); + showConfigure.putClientProperty(ShowConfigurePanel.UI_CONSUMER, consumer); + showConfigure.putClientProperty(ApplySelectionConfiguration.APPLY_CONSUMER, apply); + ShowConfigurePanel.init(ui, showConfigure, new ShowConfigurePanel()); + } + + public static void initDataSource(SelectionTreePane ui, ObserveSwingDataSource dataSource) { + String labelWithUrl = dataSource.getLabelWithUrl(); + JLabel dataSourceInformation = ui.getLabel(); + dataSourceInformation.setIcon(dataSource.getIcon()); + dataSourceInformation.setText(labelWithUrl); + ShowInformationPanel.init(ui, ui.getShowInformation(), new ShowInformationPanel(() -> ObserveSwingDataSourceTemplate.generate(dataSource))); + } + @Override public void beforeInit(SelectionTreePane ui) { this.ui = ui; @@ -49,7 +73,7 @@ public class SelectionTreePaneHandler implements UIHandler<SelectionTreePane>, P @Override public void afterInit(SelectionTreePane ui) { SelectionTree tree = ui.getTree(); - UIInitHelper.init(ui); + UIInitHelper.init(ui.getTreePane()); UIInitHelper.init(tree); tree.getModel().addPropertyChangeListener(SelectionTreeModel.SELECTED_COUNT, this); onSelectedCountChanged(tree.getModel().getSelectedCount()); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/ShowConfigurePanel.java ===================================== @@ -28,16 +28,15 @@ import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUIHandler; import fr.ird.observe.client.datasource.editor.api.config.actions.ApplySelectionConfiguration; import fr.ird.observe.client.datasource.editor.api.navigation.actions.MenuActionSupport; import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane; -import fr.ird.observe.client.util.UIHelper; import javax.swing.AbstractButton; import javax.swing.JComponent; -import javax.swing.JToggleButton; import javax.swing.SwingUtilities; import java.awt.event.ActionEvent; import java.util.function.Consumer; import static io.ultreia.java4all.i18n.I18n.n; +import static io.ultreia.java4all.i18n.I18n.t; /** * Created by tchemit on 03/10/2018. @@ -60,24 +59,24 @@ public class ShowConfigurePanel extends SelectionTreePaneActionSupport { if (uiConsumer != null) { uiConsumer.accept(configUI); } - TreeConfigUIHandler.showPanel(viewPort, configUI); + configUI.setComponentPopupMenu(ui.getComponentPopupMenu()); + TreeConfigUIHandler.showPanel(ui.getTree(), configUI); }); } public ShowConfigurePanel() { - super(""/*t("observe.ui.action.info.configure")*/, n("observe.ui.tree.action.configure.tip"), UIHelper.getContentActionIconKey("menu")/*UIHelper.getContentActionIconKey("configure")*/, ObserveKeyStrokesEditorApi.KEY_STROKE_NAVIGATION_CONFIGURE_LEFT, ObserveKeyStrokesEditorApi.KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT); + super(t("observe.ui.action.info.configure"), n("observe.ui.tree.action.configure.tip"), "generate"/*UIHelper.getContentActionIconKey("configure")*/, ObserveKeyStrokesEditorApi.KEY_STROKE_NAVIGATION_CONFIGURE_LEFT, ObserveKeyStrokesEditorApi.KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT); setCheckMenuItemIsArmed(false); } @Override public void init() { super.init(); - MenuActionSupport.toggle((JToggleButton) editor, ui.getComponentPopupMenu()); + MenuActionSupport.toggle(ui.getToggleMenu(), ui.getComponentPopupMenu()); } @Override protected void doActionPerformed(ActionEvent e, SelectionTreePane ui) { - showConfig(ui, editor, ui.getViewport()); + showConfig(ui, editor, ui.getToggleMenu()); } - } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/ShowInformation.java → client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/ShowInformationPanel.java ===================================== @@ -1,8 +1,8 @@ -package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions; +package fr.ird.observe.client.datasource.editor.api.selection.actions; /*- * #%L - * ObServe Client :: DataSource :: Actions + * ObServe Client :: DataSource :: Editor :: API * %% * Copyright (C) 2008 - 2022 IRD, Code Lutin, Ultreia.io * %% @@ -22,11 +22,9 @@ package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions; * #L% */ -import fr.ird.observe.client.datasource.actions.ObserveKeyStrokesActions; -import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane; -import fr.ird.observe.client.datasource.api.ObserveSwingDataSourceTemplate; +import fr.ird.observe.client.datasource.editor.api.ObserveKeyStrokesEditorApi; import fr.ird.observe.client.datasource.editor.api.navigation.actions.MenuActionSupport; -import fr.ird.observe.client.datasource.editor.api.wizard.connexion.DataSourceSelectorModel; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane; import javax.swing.JLabel; import javax.swing.JPanel; @@ -34,6 +32,7 @@ import javax.swing.JPopupMenu; import javax.swing.border.TitledBorder; import java.awt.BorderLayout; import java.awt.event.ActionEvent; +import java.util.function.Supplier; import static io.ultreia.java4all.i18n.I18n.t; @@ -41,10 +40,13 @@ import static io.ultreia.java4all.i18n.I18n.t; * @author Tony Chemit - dev@tchemit.fr * @since 8.0 */ -public class ShowInformation extends DataSelectionTreePaneActionSupport { +public class ShowInformationPanel extends SelectionTreePaneActionSupport { - public ShowInformation() { - super(t("observe.ui.action.info.storage"), t("observe.ui.action.info.storage.tip"), "information", ObserveKeyStrokesActions.KEY_STROKE_DATA_SYNCHRO_INFO_LEFT, ObserveKeyStrokesActions.KEY_STROKE_DATA_SYNCHRO_INFO_RIGHT); + private final Supplier<String> informationTextSupplier; + + public ShowInformationPanel(Supplier<String> informationTextSupplier) { + super(t("observe.ui.action.info.storage"), t("observe.ui.action.info.storage.tip"), "information", ObserveKeyStrokesEditorApi.KEY_STROKE_DATA_SYNCHRO_INFO_LEFT, ObserveKeyStrokesEditorApi.KEY_STROKE_DATA_SYNCHRO_INFO_RIGHT); + this.informationTextSupplier = informationTextSupplier; setCheckMenuItemIsArmed(false); } @@ -55,25 +57,19 @@ public class ShowInformation extends DataSelectionTreePaneActionSupport { } @Override - protected void doActionPerformed(ActionEvent e, DataSelectionTreePane ui) { - editor.setSelected(true); - try { - DataSourceSelectorModel dataSourceSelectorModel = ui.getContextValue(DataSourceSelectorModel.class); - String text = ObserveSwingDataSourceTemplate.generate(dataSourceSelectorModel.getSource()); - JPanel content = new JPanel(new BorderLayout()); - content.add(new JLabel(text), BorderLayout.CENTER); - String title = t("observe.ui.title.storage.info"); - content.setBorder(new TitledBorder(title + " ")); - JPopupMenu popup = ui.getComponentPopupMenu(); - popup.removeAll(); - popup.add(content); - content.setBorder(new TitledBorder(title + " ")); - popup.removeAll(); - popup.add(content); - popup.pack(); - popup.show(ui.getTree(), 0, 0); - } finally { - editor.setSelected(false); - } + protected void doActionPerformed(ActionEvent e, SelectionTreePane ui) { + String text = informationTextSupplier.get(); + JPanel content = new JPanel(new BorderLayout()); + content.add(new JLabel(text), BorderLayout.CENTER); + String title = t("observe.ui.title.storage.info"); + content.setBorder(new TitledBorder(title + " ")); + JPopupMenu popup = ui.getComponentPopupMenu(); + popup.removeAll(); + popup.add(content); + content.setBorder(new TitledBorder(title + " ")); + popup.removeAll(); + popup.add(content); + popup.pack(); + popup.show(ui.getTree(), 0, 0); } } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/ToggleMenu.java → client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/selection/actions/ToggleMenu.java ===================================== @@ -1,4 +1,4 @@ -package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions; +package fr.ird.observe.client.datasource.editor.api.selection.actions; /*- * #%L @@ -22,9 +22,9 @@ package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions; * #L% */ -import fr.ird.observe.client.datasource.actions.ObserveKeyStrokesActions; -import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane; +import fr.ird.observe.client.datasource.editor.api.ObserveKeyStrokesEditorApi; import fr.ird.observe.client.datasource.editor.api.navigation.actions.MenuActionSupport; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePane; import fr.ird.observe.client.util.UIHelper; import org.nuiton.jaxx.runtime.swing.action.MenuAction; @@ -37,10 +37,10 @@ import java.awt.event.ActionEvent; * @author Tony Chemit - dev@tchemit.fr * @since 8 */ -public class ToggleMenu extends DataSelectionTreePaneActionSupport { +public class ToggleMenu extends SelectionTreePaneActionSupport { public ToggleMenu() { - super("", "", UIHelper.getContentActionIconKey("menu"), ObserveKeyStrokesActions.KEY_STROKE_STORAGE_MENU_LEFT, ObserveKeyStrokesActions.KEY_STROKE_STORAGE_MENU_RIGHT); + super("", "", UIHelper.getContentActionIconKey("menu"), ObserveKeyStrokesEditorApi.KEY_STROKE_STORAGE_MENU_LEFT, ObserveKeyStrokesEditorApi.KEY_STROKE_STORAGE_MENU_RIGHT); } @Override @@ -50,7 +50,7 @@ public class ToggleMenu extends DataSelectionTreePaneActionSupport { } @Override - protected void doActionPerformed(ActionEvent e, DataSelectionTreePane ui) { + protected void doActionPerformed(ActionEvent e, SelectionTreePane ui) { SwingUtilities.invokeLater(() -> { JPopupMenu p = ui.getMenuPopup(); p.show(ui.getTree(), 0, 0); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/actions/Cancel.java ===================================== @@ -38,7 +38,7 @@ public class Cancel extends StorageUIActionSupport { private static final Logger log = LogManager.getLogger(Cancel.class); public Cancel() { - super(t("observe.ui.action.cancel"), t("observe.ui.datasource.storage.action.cancel.tip"), "cancel", ObserveKeyStrokesEditorApi.KEY_STROKE_ESCAPE); + super(t("observe.ui.action.cancel"), t("observe.ui.datasource.storage.action.cancel.tip"), "cancel", ObserveKeyStrokesEditorApi.KEY_STROKE_CANCEL); } @Override ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/wizard/tabs/SelectDataUIHandler.java ===================================== @@ -26,9 +26,8 @@ import fr.ird.observe.client.WithClientUIContextApi; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI; import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUIHandler; -import fr.ird.observe.client.datasource.editor.api.config.actions.ApplySelectionConfiguration; +import fr.ird.observe.client.datasource.editor.api.selection.SelectionTreePaneHandler; import fr.ird.observe.client.datasource.editor.api.selection.actions.SelectUnselect; -import fr.ird.observe.client.datasource.editor.api.selection.actions.ShowConfigurePanel; import fr.ird.observe.client.datasource.editor.api.wizard.DataSourceHelper; import fr.ird.observe.client.datasource.editor.api.wizard.ObstunaAdminAction; import fr.ird.observe.client.datasource.editor.api.wizard.StorageUIModel; @@ -39,7 +38,6 @@ import fr.ird.observe.navigation.tree.selection.SelectionTreeConfig; import fr.ird.observe.navigation.tree.selection.SelectionTreeModel; import org.nuiton.jaxx.runtime.spi.UIHandler; -import javax.swing.JToggleButton; import javax.swing.SwingUtilities; import java.util.List; import java.util.function.Consumer; @@ -72,6 +70,7 @@ public class SelectDataUIHandler extends StorageTabUIHandler<SelectDataUI> imple if (createDataSource) { // create temporary data source try (ObserveSwingDataSource dataSource = DataSourceHelper.toImportDataSourceConfig(model)) { + SelectionTreePaneHandler.initDataSource(ui.getSelectedTreePane(), dataSource); dataSource.open(); if (init) { doInit(treeModel.getConfig(), dataSource); @@ -81,6 +80,7 @@ public class SelectDataUIHandler extends StorageTabUIHandler<SelectDataUI> imple } else { // use main data source ObserveSwingDataSource dataSource = context.getDataSourcesManager().getMainDataSource(); + SelectionTreePaneHandler.initDataSource(ui.getSelectedTreePane(), dataSource); if (init) { doInit(treeModel.getConfig(), dataSource); } @@ -125,10 +125,7 @@ public class SelectDataUIHandler extends StorageTabUIHandler<SelectDataUI> imple SelectUnselect.installUI(ui.getSelectedTreePane()); Consumer<TreeConfigUI> consumer = TreeConfigUIHandler::hideOptions; Consumer<TreeConfigUI> apply = u -> loadSelectData(this, ui); - JToggleButton showConfigure = ui.getSelectedTreePane().getShowConfigure(); - showConfigure.putClientProperty(ShowConfigurePanel.UI_CONSUMER, consumer); - showConfigure.putClientProperty(ApplySelectionConfiguration.APPLY_CONSUMER, apply); - ShowConfigurePanel.init(ui.getSelectedTreePane(), showConfigure, new ShowConfigurePanel()); + SelectionTreePaneHandler.init(ui.getSelectedTreePane(), consumer, apply); } @Override ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/RouteCloseCallback.java ===================================== @@ -132,7 +132,7 @@ public class RouteCloseCallback implements CloseNodeCallback, WithClientUIContex DataSourceEditor dataSourceEditor = (DataSourceEditor) getMainUI().getMainUIBodyContentManager().getCurrentBody().get(); NavigationTree tree = dataSourceEditor.getNavigationUI().getTree(); - RouteUINavigationNode routeNode = (RouteUINavigationNode) tree.getModel().getNodeFromModelNode(node, false); + RouteUINavigationNode routeNode = (RouteUINavigationNode) tree.getModel().getNodeFromModelNode(node); ActivityListUINavigationNode parentNode = Objects.requireNonNull(routeNode).getActivityListUINavigationNode(); tree.selectSafeNode(parentNode); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/tree/actions/ShowConfigure.java → core/persistence/java/src/main/java/fr/ird/observe/entities/AbstractObserveTopiaDao.java ===================================== @@ -1,8 +1,8 @@ -package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions; +package fr.ird.observe.entities; /*- * #%L - * ObServe Client :: DataSource :: Actions + * ObServe Core :: Persistence :: Java * %% * Copyright (C) 2008 - 2022 IRD, Code Lutin, Ultreia.io * %% @@ -22,35 +22,5 @@ package fr.ird.observe.client.datasource.actions.synchronize.data.tree.actions; * #L% */ -import fr.ird.observe.client.datasource.actions.ObserveKeyStrokesActions; -import fr.ird.observe.client.datasource.actions.synchronize.data.tree.DataSelectionTreePane; -import fr.ird.observe.client.datasource.editor.api.navigation.actions.MenuActionSupport; -import fr.ird.observe.client.datasource.editor.api.selection.actions.ShowConfigurePanel; - -import java.awt.event.ActionEvent; - -import static io.ultreia.java4all.i18n.I18n.n; -import static io.ultreia.java4all.i18n.I18n.t; - -/** - * @author Tony Chemit - dev@tchemit.fr - * @since 8.0 - */ -public class ShowConfigure extends DataSelectionTreePaneActionSupport { - - public ShowConfigure() { - super(t("observe.ui.action.info.configure"), n("observe.ui.tree.action.configure.tip"), "generate"/*UIHelper.getContentActionIconKey("configure")*/, ObserveKeyStrokesActions.KEY_STROKE_NAVIGATION_CONFIGURE_LEFT, ObserveKeyStrokesActions.KEY_STROKE_NAVIGATION_CONFIGURE_RIGHT); - setCheckMenuItemIsArmed(false); - } - - @Override - public void init() { - super.init(); - MenuActionSupport.toggle(ui.getToggleMenu(), ui.getComponentPopupMenu()); - } - - @Override - protected void doActionPerformed(ActionEvent e, DataSelectionTreePane ui) { - ShowConfigurePanel.showConfig(ui.getTree(), editor, ui.getTree()); - } +public abstract class AbstractObserveTopiaDao<E extends Entity> extends ToolkitTopiaDaoSupport<E> { } ===================================== model/src/main/models/Observe/persistence/00-common.model ===================================== @@ -1,7 +1,6 @@ model @model.name@ | generatePropertyChangeSupport model @model.name@ | generateForeignKeyNames model @model.name@ | notGenerateToString -model @model.name@ | generateOperatorForDAOHelper model @model.name@ | indexForeignKeys model @model.name@ | useEnumerationName=false model @model.name@ | attributeType.Boolean=java.lang.Boolean ===================================== pom.xml ===================================== @@ -23,7 +23,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2022.20</version> + <version>2022.21</version> </parent> <groupId>fr.ird.observe</groupId> <artifactId>ird-observe</artifactId> @@ -155,7 +155,7 @@ <!-- build timestamp configuration --> <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format> <buildDate>${maven.build.timestamp}</buildDate> - <lib.version.toolkit>6.0.0-SNAPSHOT</lib.version.toolkit> + <lib.version.toolkit>6.0.1</lib.version.toolkit> <lib.version.ognl>3.1.29</lib.version.ognl> <!--can't use 1.4.197 (date has changed + blob also)--> <lib.version.h2>1.4.196</lib.version.h2> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d667076f269bf5afb5c589438... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d667076f269bf5afb5c589438... You're receiving this email because of your account on gitlab.com.