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 0913738a233ce267f6a80c7304880e1879b78625 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Dec 17 14:04:41 2016 +0100 Report refs #8881 --- .../ng/ReferentialSynchroUIHandler.java | 38 +++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUIHandler.java index 2dbcfcb..c6c94bf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/synchronize/referential/ng/ReferentialSynchroUIHandler.java @@ -27,22 +27,27 @@ import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; +import fr.ird.observe.application.swing.ui.admin.AdminUIModel; import fr.ird.observe.application.swing.ui.admin.config.ConfigUI; import fr.ird.observe.application.swing.ui.admin.synchronize.referential.ReferentialSynchronizeMode; import fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModel; import fr.ird.observe.application.swing.ui.admin.synchronize.referential.ng.tree.ReferentialSynchronizeTreeModelsBuilder; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffService; import fr.ird.observe.services.service.actions.synchro.referential.diff.ReferentialSynchronizeDiffsEngine; import jaxx.runtime.context.JAXXInitialContext; import jaxx.runtime.spi.UIHandler; import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.lang3.tuple.Pair; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.border.TitledBorder; import javax.swing.event.TreeSelectionListener; import java.awt.Color; +import java.util.Optional; import static org.nuiton.i18n.I18n.t; @@ -54,7 +59,11 @@ import static org.nuiton.i18n.I18n.t; */ public class ReferentialSynchroUIHandler extends AdminTabUIHandler<ReferentialSynchroUI> implements UIHandler<ReferentialSynchroUI> { + /** Logger */ + private static final Log log = LogFactory.getLog(ReferentialSynchroUIHandler.class); + private final TreeSelectionListener treeSelectionListener; + private ReferentialSynchroConfigUI extraConfig; public ReferentialSynchroUIHandler() { this.treeSelectionListener = evt -> updateEnabledActions(); @@ -70,7 +79,9 @@ public class ReferentialSynchroUIHandler extends AdminTabUIHandler<ReferentialSy ConfigUI configUI = (ConfigUI) parentUI.getStepUI(AdminStep.CONFIG); JAXXInitialContext tx = new JAXXInitialContext().add(configUI).add(this); - ReferentialSynchroConfigUI extraConfig = new ReferentialSynchroConfigUI(tx); + extraConfig = new ReferentialSynchroConfigUI(tx); + ui.getModel().addPropertyChangeListener(AdminUIModel.VALID_STEP_PROPERTY_NAME, evt -> updateSynchroModes()); + configUI.getExtraConfig().add(extraConfig); MnemonicHelper.addKeyStrokeFromMnemonic(ui.getStartAction()); @@ -124,6 +135,31 @@ public class ReferentialSynchroUIHandler extends AdminTabUIHandler<ReferentialSy } + protected void updateSynchroModes() { + AdminUIModel model = getUi().getModel(); + if (model.getConfigModel().getLocalSourceModel().getDbMode() == null) { + return; + } + if (model.getConfigModel().getCentralSourceModel().getDbMode() == null) { + return; + } + boolean leftToRightEnabled = Optional.ofNullable(model.getConfigModel().getCentralSourceModel().getDataSourceInformation()) + .map(ObserveDataSourceInformation::canWriteReferential) + .orElse(false); + if (log.isDebugEnabled()) { + log.debug("Update synchro modes: leftToRight: " + leftToRightEnabled); + } + boolean rightToLeftEnabled = Optional.ofNullable(model.getConfigModel().getLocalSourceModel().getDataSourceInformation()) + .map(ObserveDataSourceInformation::canWriteReferential) + .orElse(false); + if (log.isDebugEnabled()) { + log.debug("Update synchro modes: rightToLeft: " + rightToLeftEnabled); + } + this.extraConfig.getLEFT_TO_RIGHT().setEnabled(leftToRightEnabled); + this.extraConfig.getRIGHT_TO_LEFT().setEnabled(rightToLeftEnabled); + this.extraConfig.getBOTH().setEnabled(leftToRightEnabled && rightToLeftEnabled); + } + private void updateEnabledActions() { ReferentialSynchroModel stepModel = getStepModel(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.