[Git][ultreiaio/ird-observe][develop] [SYNCHRO AVANCEE] Visualisation du nom des bases en présence - Closes #1439
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: f201fbf7 by tchemit at 2020-04-14T15:16:07+02:00 [SYNCHRO AVANCEE] Visualisation du nom des bases en présence - Closes #1439 - - - - - 9 changed files: - client-core/src/main/java/fr/ird/observe/client/util/ObserveKeyStrokesSupport.java - client-datasource-actions/src/main/i18n/getters/java.getter - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialSynchroUI.jaxx - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Start.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTreePane.jaxx - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTreePaneHandler.java - + client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/DataSourceInformation.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/ReferentialSelectionTreePaneActionSupport.java - client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/RegisterTaskActionSupport.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/util/ObserveKeyStrokesSupport.java ===================================== @@ -80,6 +80,7 @@ public abstract class ObserveKeyStrokesSupport { public static final KeyStroke KEY_STROKE_ESCAPE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); public static final KeyStroke KEY_STROKE_ENTER = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); public static final KeyStroke KEY_STROKE_SPACE = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0); + public static final KeyStroke KEY_STROKE_DATA_SOURCE_INFORMATION = KeyStroke.getKeyStroke("alt pressed I"); public static final KeyStroke KEY_STROKE_NAVIGATION_CONFIGURE = KeyStroke.getKeyStroke("ctrl pressed F1"); ===================================== client-datasource-actions/src/main/i18n/getters/java.getter ===================================== @@ -18,6 +18,8 @@ observe.action.goto.next.stage observe.action.goto.next.stage.tip observe.action.goto.previous.stage observe.action.goto.previous.stage.tip +observe.action.info.storage +observe.action.info.storage.tip observe.action.validate.config.generateReport observe.actions.consolidate observe.actions.consolidate.description @@ -197,6 +199,7 @@ observe.storage.step.label observe.title.can.not.export.data2 observe.title.choose.db.dump.directory observe.title.choose.reportFile +observe.title.storage.info observe.tree.action.collapseAll.tip observe.tree.action.expandAll.tip observe.tree.action.selectAll.tip ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/ReferentialSynchroUI.jaxx ===================================== @@ -61,8 +61,8 @@ <row> <cell weightx="1"> <JPanel layout="{new GridLayout(1, 0)}"> - <ReferentialSelectionTreePane id="leftTreePane" constructorParams="this"/> - <ReferentialSelectionTreePane id="rightTreePane" constructorParams="this" opposite="true"/> + <ReferentialSelectionTreePane id="leftTreePane" constructorParams="UIHelper.initialContext(this, false)"/> + <ReferentialSelectionTreePane id="rightTreePane" constructorParams="UIHelper.initialContext(this, true)"/> </JPanel> <!-- <ReferentialSelectionTreePane id="leftTreePane" constructorParams="this"/>--> </cell> ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/actions/Start.java ===================================== @@ -27,11 +27,13 @@ import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.Refer import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchroUI; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchronizeMode; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSelectionTree; +import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSelectionTreePane; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModel; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.node.ReferentialPropertyUpdatedNode; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.node.SynchroNodeSupport; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; +import fr.ird.observe.client.datasource.editor.wizard.connexion.DataSourceSelectorModel; import fr.ird.observe.dto.ProgressionModel; import fr.ird.observe.services.service.referential.differential.DifferentialEngine; import org.apache.commons.lang3.tuple.Pair; @@ -39,7 +41,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState; -import javax.swing.JScrollPane; import javax.swing.border.TitledBorder; import javax.swing.tree.TreePath; import java.awt.Color; @@ -96,35 +97,36 @@ public class Start extends ReferentialSynchroUIActionSupport { stepModel.getTasks().removeAllElements(); AdminUIModel model = ui.getModel(); - initTree(ui.getLeftTreePane().getTree(), - ui.getLeftTreePane().getTreePane(), + initTree(ui.getLeftTreePane(), stepModel.getLeftTreeModel(), - model.getConfigModel().getLocalSourceModel().getLabelWithUrl(), + model.getConfigModel().getLocalSourceModel(), t("observe.actions.synchro.referential.message.referential.leftData.loaded"), evt -> updateLeftEnableActions(stepModel.getLeftTreeModel())); - initTree(ui.getRightTreePane().getTree(), - ui.getRightTreePane().getTreePane(), + initTree(ui.getRightTreePane(), stepModel.getRightTreeModel(), - model.getConfigModel().getCentralSourceModel().getLabelWithUrl(), + model.getConfigModel().getCentralSourceModel(), t("observe.actions.synchro.referential.message.referential.rightData.loaded"), evt -> updateRightEnableActions(stepModel.getRightTreeModel())); return WizardState.NEED_FIX; } - private void initTree(ReferentialSelectionTree tree, JScrollPane treePane, ReferentialSynchronizeTreeModel treeModel, String title, String message, PropertyChangeListener listener) { - + private void initTree(ReferentialSelectionTreePane pane, ReferentialSynchronizeTreeModel treeModel, DataSourceSelectorModel dataSourceSelectorModel, String message, PropertyChangeListener listener) { + ReferentialSelectionTree tree = pane.getTree(); ReferentialSynchronizeMode newValue = ui.getStepModel().getSynchronizeMode(); + pane.setContextValue(dataSourceSelectorModel); Color color = (treeModel.isLeft() && newValue.isLeftWrite() || !treeModel.isLeft() && newValue.isRightWrite()) ? Color.BLACK : Color.RED; + pane.setBorder(new TitledBorder("")); + String label = dataSourceSelectorModel.getLabel(); + String labelWithUrl = dataSourceSelectorModel.getLabelWithUrl().substring(label.length()+1); + pane.getDataSourceLabel().setIcon(dataSourceSelectorModel.getSource().getIcon()); + pane.getDataSourceLabel().setText(dataSourceSelectorModel.getSource().getLabel()+ " "+labelWithUrl); + pane.getDataSourceLabel().setForeground(color); - TitledBorder border = new TitledBorder(title); - border.setTitleColor(color); - - treePane.setBorder(border); tree.setModel(treeModel); treeModel.addPropertyChangeListener(ReferentialSynchronizeTreeModel.SELECTED_COUNT, listener); @@ -132,10 +134,6 @@ public class Start extends ReferentialSynchroUIActionSupport { sendMessage(message); -// ConfigUI configUI = (ConfigUI) getParentUI().getStepUI(AdminStep.CONFIG); -// //FIXME Check we don't need any longer -//// configUI.getLocalSourceConfig().setBorder(new TitledBorder(ui.getModel().getConfigModel().getLocalSourceLabel())); -//// configUI.getCentralSourceConfig().setBorder(new TitledBorder(ui.getModel().getConfigModel().getCentralSourceLabel())); tree.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTreePane.jaxx ===================================== @@ -20,27 +20,31 @@ <JPanel id='topPanel' layout="{new BorderLayout()}" decorator='boxed'> <import> - fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterCopy - fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDelete - fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivate - fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivateWithReplacement - fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterRevert - fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterSkip fr.ird.observe.client.util.UIHelper </import> <script><![CDATA[ -private boolean opposite; - -public boolean isOpposite() { return opposite; } - -public void setOpposite(boolean opposite) { this.opposite = opposite; } public void init() { handler.init(this); } +public boolean isLeft() { + return !isRight(); +} + +public boolean isRight() { + return Boolean.TRUE.equals(getOpposite()); +} ]]> </script> + <Boolean id='opposite' initializer='getContextValue(Boolean.class)'/> + <String id='labelText' javaBean='null'/> + <JPanel id='dataSourcePanel' constraints='BorderLayout.NORTH' layout='{new BorderLayout()}'> + <JLabel id='dataSourceLabel' constraints='BorderLayout.WEST'/> + <JToolBar id='dataSourceToolbar' constraints='BorderLayout.EAST'> + <JButton id='dataSourceInformation'/> + </JToolBar> + </JPanel> <JScrollPane id='treePane' columnHeaderView='{treeHeader}' constraints='BorderLayout.CENTER'> <ReferentialSelectionTree id='tree' javaBean="new ReferentialSelectionTree()"/> ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/ReferentialSelectionTreePaneHandler.java ===================================== @@ -26,16 +26,12 @@ import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.Refer import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchroUI; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchroUIHandler; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.ReferentialSynchronizeMode; -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.CollapseAll; -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.ExpandAll; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterCopy; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivate; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDeactivateWithReplacement; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterDelete; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterRevert; import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.RegisterSkip; -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.SelectAll; -import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions.UnselectAll; import org.nuiton.jaxx.runtime.spi.UIHandler; import java.awt.BorderLayout; @@ -46,27 +42,19 @@ import java.awt.BorderLayout; */ public class ReferentialSelectionTreePaneHandler implements UIHandler<ReferentialSelectionTreePane> { - @Override - public void afterInit(ReferentialSelectionTreePane ui) { - CollapseAll.init(ui, ui.getCollapseAll(), CollapseAll.class); - ExpandAll.init(ui, ui.getExpandAll(), ExpandAll.class); - SelectAll.init(ui, ui.getSelectAll(), SelectAll.class); - UnselectAll.init(ui, ui.getUnselectAll(), UnselectAll.class); - } - void init(ReferentialSelectionTreePane ui) { ReferentialSynchroUI parent = ui.getContextValue(ReferentialSynchroUI.class, ReferentialSynchroUIHandler.SYNCHRO_PARENT); ReferentialSynchroModel stepModel = parent.getStepModel(); stepModel.addPropertyChangeListener(ReferentialSynchroModel.SYNCHRONIZE_MODE_PROPERTY_NAME, evt -> onUpdateMode(ui, (ReferentialSynchronizeMode) evt.getNewValue())); - boolean isRight = ui.isOpposite(); //means is right - ui.copy.setAction(new RegisterCopy(ui, !isRight)); - ui.revert.setAction(new RegisterRevert(ui, !isRight)); - ui.deactivate.setAction(new RegisterDeactivate(ui, !isRight)); - ui.deactivateWithReplace.setAction(new RegisterDeactivateWithReplacement(ui, !isRight)); - ui.delete.setAction(new RegisterDelete(ui, !isRight)); - ui.skip.setAction(new RegisterSkip(ui, !isRight)); + boolean isLeft = ui.isLeft(); + RegisterCopy.init(ui, ui.copy, new RegisterCopy(ui, isLeft)); + RegisterRevert.init(ui, ui.revert, new RegisterRevert(ui, isLeft)); + RegisterDeactivate.init(ui, ui.deactivate, new RegisterDeactivate(ui, isLeft)); + RegisterDeactivateWithReplacement.init(ui, ui.deactivateWithReplace, new RegisterDeactivateWithReplacement(ui, isLeft)); + RegisterDelete.init(ui, ui.delete, new RegisterDelete(ui, isLeft)); + RegisterSkip.init(ui, ui.skip, new RegisterSkip(ui, isLeft)); - if (isRight) { + if (!isLeft) { ui.remove(ui.getMiddleActions()); ui.add(ui.getMiddleActions(), BorderLayout.WEST); } @@ -76,7 +64,7 @@ public class ReferentialSelectionTreePaneHandler implements UIHandler<Referentia if (synchronizeMode == null) { return; } - boolean isRight = ui.isOpposite(); //means is right + boolean isRight = ui.isRight(); boolean canCopy = isRight ? synchronizeMode.isLeftWrite() : synchronizeMode.isRightWrite(); boolean canRevert = isRight ? synchronizeMode.isRightWrite() : synchronizeMode.isLeftWrite(); ui.copy.setVisible(canCopy); ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/DataSourceInformation.java ===================================== @@ -0,0 +1,58 @@ +package fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.actions; + +/*- + * #%L + * ObServe :: Client DataSource actions + * %% + * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.client.datasource.actions.synchronize.referential.ng.tree.ReferentialSelectionTreePane; +import fr.ird.observe.client.datasource.api.ObserveSwingDataSourceTemplate; +import fr.ird.observe.client.datasource.editor.wizard.connexion.DataSourceSelectorModel; +import fr.ird.observe.client.util.ObserveKeyStrokesSupport; + +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import java.awt.event.ActionEvent; + +import static io.ultreia.java4all.i18n.I18n.t; + +/** + * @author Tony Chemit - dev@tchemit.fr + * @since 8.0 + */ +public class DataSourceInformation extends ReferentialSelectionTreePaneActionSupport { + + public DataSourceInformation() { + super("", t("observe.action.info.storage.tip"), "information", ObserveKeyStrokesSupport.KEY_STROKE_DATA_SOURCE_INFORMATION); + } + + @Override + protected void doActionPerformed(ActionEvent e, ReferentialSelectionTreePane ui) { + DataSourceSelectorModel dataSourceSelectorModel = ui.getContextValue(DataSourceSelectorModel.class); + + String text = ObserveSwingDataSourceTemplate.generate(dataSourceSelectorModel.getSource()); + JOptionPane.showMessageDialog( + ui, + new JLabel(text), + t("observe.title.storage.info"), + JOptionPane.INFORMATION_MESSAGE); + + } +} ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/ReferentialSelectionTreePaneActionSupport.java ===================================== @@ -39,7 +39,7 @@ public abstract class ReferentialSelectionTreePaneActionSupport extends JCompone @Override public void init() { - if (ui.isOpposite()) { + if (ui.isRight()) { KeyStroke acceleratorKey = getAcceleratorKey(); setKeyStroke(KeyStroke.getKeyStroke(acceleratorKey.getKeyCode(), acceleratorKey.getModifiers() | KeyEvent.SHIFT_MASK)); } ===================================== client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/referential/ng/tree/actions/RegisterTaskActionSupport.java ===================================== @@ -94,7 +94,7 @@ public abstract class RegisterTaskActionSupport extends ReferentialSelectionTree private final ReferentialSynchroUI parentUI; RegisterTaskActionSupport(ReferentialSelectionTreePane ui, ReferentialSynchronizeResources resource, boolean left) { - super(null, null, null, Objects.requireNonNull(resource).getKeyStroke(left)); + super("", null, null, Objects.requireNonNull(resource).getKeyStroke(left)); this.resource = resource; String tip = resource.getActionTip(left); if (tip != null) { @@ -108,7 +108,7 @@ public abstract class RegisterTaskActionSupport extends ReferentialSelectionTree this.left = left; this.taskType = resource.getTaskType(); this.needReplace = resource.withReplace(); - parentUI = ui.getContextValue(ReferentialSynchroUI.class, "parent"); + parentUI = ui.getContextValue(ReferentialSynchroUI.class, "synchroParent"); Predicate<ReferentialSynchroNodeSupport> predicate = resource.getPredicate(); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/f201fbf721bd39f07b0c8183c9... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/f201fbf721bd39f07b0c8183c9... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT