Author: tchemit Date: 2008-02-22 21:27:59 +0000 (Fri, 22 Feb 2008) New Revision: 1206 Modified: trunk/simexplorer-is/simexplorer-is-swing/go.sh trunk/simexplorer-is/simexplorer-is-swing/pom.xml trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConfigAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToLocalAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToRemoteAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ChangeLocaleAction.java Log: multi-config refactor Modified: trunk/simexplorer-is/simexplorer-is-swing/go.sh =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/go.sh 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/go.sh 2008-02-22 21:27:59 UTC (rev 1206) @@ -2,6 +2,9 @@ DEBUG_PORT=5005 VERSION=0.0.1-SNAPSHOT +JAVA=java +RELEASE="simexplorer-is-swing-$VERSION" +MX=128M ############################################################################### ####### parse arguments ####################################################### @@ -23,17 +26,12 @@ done ############################################################################### -####### init variables ######################################################## +####### init dir ############################################################## ############################################################################### -JAVA=java - dir=$(dirname $0) cd $dir -RELEASE="simexplorer-is-swing-$VERSION" -MX=128M - rep=`dirname $0` rep=`cd $rep && pwd` Modified: trunk/simexplorer-is/simexplorer-is-swing/pom.xml =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/pom.xml 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/pom.xml 2008-02-22 21:27:59 UTC (rev 1206) @@ -93,6 +93,8 @@ <source>${maven.vcs.src.dir}/resources/commandline.properties</source> <parserPackageName>fr.cemagref.simexplorer.is.ui.swing.commandline</parserPackageName> <actionSuperClass>fr.cemagref.simexplorer.is.ui.swing.commandline.actions.SimExplorerAbstractOptionAction</actionSuperClass> + <configSuperClass>fr.cemagref.simexplorer.is.ui.swing.commandline.configs.SimExplorerConfig</configSuperClass> + <concreteConfig>true</concreteConfig> </configuration> <executions> <execution> Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConfigAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConfigAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConfigAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -19,7 +19,6 @@ package fr.cemagref.simexplorer.is.ui.swing.actions; import fr.cemagref.simexplorer.is.ui.swing.actions.util.SimExplorerAbstractAction; -import org.codelutin.option.ui.ConfigTableModel; import org.codelutin.option.ui.ConfigUI; /** @@ -38,6 +37,8 @@ ) public class ConfigAction extends SimExplorerAbstractAction { + ConfigUI ui; + private static final long serialVersionUID = 1449553547444065616L; public ConfigAction(String name) { @@ -46,6 +47,22 @@ @Override public void doAction(java.awt.event.ActionEvent e) { - ConfigUI.showUI(getContext().getConfig(), ConfigTableModel.TypeModel.all); + getUi().setVisible(true); } + + @Override + public void disposeUI() { + super.disposeUI(); + if (ui!=null) { + ui.dispose(); + ui=null; + } + } + + public ConfigUI getUi() { + if (ui == null) { + ui = new ConfigUI().init(getContext().getConfig(),getContext().getLocalConfig(),getContext().getRemoteConfig()); + } + return ui; + } } \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ConnectAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -81,8 +81,8 @@ @Override protected void doAction(ActionEvent e) throws Exception { super.doAction(e); - String login = getContext().getConfig().getRemoteLogin(); - String hashPassword = getContext().getConfig().getRemotePassword(); + String login = getContext().getRemoteConfig().getLogin(); + String hashPassword = getContext().getRemoteConfig().getPassword(); if (hashPassword == null || hashPassword.length() == 0 || !loginUIHandler.connect(login, hashPassword)) { ui.launch(login); } @@ -178,13 +178,13 @@ boolean isConnected = getContext().isConnected(); if (isConnected) { // keep password - getContext().getConfig().setRemotePassword(password); + getContext().getRemoteConfig().setPassword(password); } else { // delete password - getContext().getConfig().setRemotePassword(null); + getContext().getRemoteConfig().setPassword(null); } //always keep login - getContext().getConfig().setRemoteLogin(login); + getContext().getRemoteConfig().setLogin(login); //Save configuration, I don't like it, but required by client... getContext().getConfig().saveSafely(); return isConnected; Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -18,6 +18,7 @@ * ##% */ package fr.cemagref.simexplorer.is.ui.swing.actions; +import fr.cemagref.simexplorer.is.entities.EntityHelper; import fr.cemagref.simexplorer.is.entities.data.LoggableElement; import fr.cemagref.simexplorer.is.service.StorageService; import fr.cemagref.simexplorer.is.ui.swing.SimExplorerActionManager; @@ -32,9 +33,11 @@ import fr.cemagref.simexplorer.is.ui.swing.ui.JListTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SimExplorerTab; import fr.cemagref.simexplorer.is.ui.swing.ui.SynchronizeTabRefreshHelper; +import jaxx.runtime.UIHelper; import jaxx.runtime.builder.TabModel; import static org.codelutin.i18n.I18n.n_; +import javax.swing.Action; import java.awt.event.ActionEvent; /** @@ -46,7 +49,6 @@ actionCommand = "exportElement", name = "simexplorer.action.exportElement", longDescription = "simexplorer.action.exportElement.help", - smallIcon = "action/export-element.png", mnemonic = 'x', hideActionText = true ) @@ -69,6 +71,7 @@ public ExportElementAction(String name) { super(name); + putValue(Action.SMALL_ICON, UIHelper.createImageIcon(getIcon(name))); } @Override @@ -86,6 +89,18 @@ return result; } + public String getIcon(String action) { + String result = "action/export-element"; + if (!action.equals("exportElement")) { + if (action.endsWith("ToLocal")) { + result += "-to-local"; + } else { + result += "-to-remote"; + } + } + return result + ".png"; + } + @Override protected boolean beforeAction(ActionEvent e) throws Exception { if (!super.beforeAction(e)) { @@ -95,6 +110,7 @@ // on retrouve l'onglet concerné à partir de son model TabModel tabModel = getModel(); + boolean result = true; if (tabModel instanceof DetailTabModel) { DetailTabModel model = (DetailTabModel) tabModel; selected = model.getSelectedItem(); @@ -102,13 +118,28 @@ ListTabModel model = (ListTabModel) getModel(); selected = model.getSelectedItem(); } else if (tabModel instanceof SimExplorerTabModel) { + SynchronizeTabModel model = (SynchronizeTabModel) getModel(); // on doit traiter ça dans les classes étendues // car cela ne depend pas uniquement du model mais aussi de l'action // choisie - return true; + // on utilise le nom de l'action pour savoir quoi faire + String actionName = getActionName(); + if (actionName.equals("exportElementToLocal")) { + LoggableElement element = model.getSelectedNode(true); + if (result = EntityHelper.Action.EXPORT.accept(element)) { + selected = new DataEntityModel(); + selected.synch(true, element); + } + } else if (actionName.equals("exportElementToRemote")) { + LoggableElement element = model.getSelectedNode(false); + + if (result = EntityHelper.Action.EXPORT.accept(element)) { + selected = new DataEntityModel(); + selected.synch(false, element); + } + } } - boolean result; - result = selected != null && selected.getUuid() != null; + result = result && (selected != null && selected.getUuid() != null); if (result) { // on garde toujours une copie, pas l'original selected = selected.clone(); @@ -155,7 +186,7 @@ // update detail model (delegue a l'action d'historique) if (synchronizeModified != null && synchronizeModified) { - SynchronizeTabRefreshHelper.updateTree(getMainUI(),getContext(), getTabContainer(), oldLocalRoot, oldRemoteRoot); + SynchronizeTabRefreshHelper.updateTree(getMainUI(), getContext(), getTabContainer(), oldLocalRoot, oldRemoteRoot); } } Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToLocalAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToLocalAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToLocalAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -34,7 +34,7 @@ actionCommand = "exportElementToLocal", name = "simexplorer.action.exportElementToLocal", longDescription = "simexplorer.action.exportElementToLocal.help", - smallIcon = "action/export-to-local.png", + smallIcon = "action/export-element-to-local.png", mnemonic = 'x', hideActionText = true ) Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToRemoteAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToRemoteAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ExportElementToRemoteAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -34,7 +34,7 @@ actionCommand = "exportElementToRemote", name = "simexplorer.action.exportElementToRemote", longDescription = "simexplorer.action.exportElementToRemote.help", - smallIcon = "action/export-to-remote.png", + smallIcon = "action/export-element-to-remote.png", mnemonic = 'x', hideActionText = true ) Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/ResetPasswordAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -48,14 +48,12 @@ @Override public void doAction(java.awt.event.ActionEvent e) { - getContext().getConfig().setRemotePassword(null); + getContext().getRemoteConfig().setPassword(null); getContext().getConfig().saveSafely(); if (getContext().isConnected()) { // unconnect SimExplorerActionManager.fireAction("unconnect", e.getSource(), (AbstractButton) null); } - // reconnect ? - //SimExplorerActionManager.fireAction("connect", e.getSource(), (AbstractButton) null); } } \ No newline at end of file Modified: trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ChangeLocaleAction.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ChangeLocaleAction.java 2008-02-22 21:25:25 UTC (rev 1205) +++ trunk/simexplorer-is/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/ui/swing/actions/util/ChangeLocaleAction.java 2008-02-22 21:27:59 UTC (rev 1206) @@ -19,9 +19,8 @@ package fr.cemagref.simexplorer.is.ui.swing.actions.util; import fr.cemagref.simexplorer.is.ui.swing.SimExplorer; -import org.codelutin.i18n.I18n; +import static org.codelutin.i18n.I18n._; import org.codelutin.i18n.LocaleEnum; -import static org.codelutin.i18n.I18n.*; import javax.swing.Action; import java.awt.event.ActionEvent; @@ -35,16 +34,12 @@ * et YY le pays de la locale à charger. * * @author chemit - * @see org.codelutin.i18n.LanguageEnum - * @see org.codelutin.i18n.CountryEnum + * @see org.codelutin.i18n.LocaleEnum */ @jaxx.runtime.builder.ActionConfig( actionCommand = "changeLocale", - //name = "simexplorer.action.changeLocale", shortDescription = "simexplorer.action.changeLocale.tooltip", longDescription = "simexplorer.action.changeLocale.help", - //mnemonic = 'F', - //smallIcon = "action/i18n-fr.png", hideActionText = false ) public class ChangeLocaleAction extends SimExplorerAbstractAction { @@ -59,14 +54,13 @@ super(name); Matcher matcher = PATTERN_NAME.matcher(name); if (!matcher.matches()) { - throw new IllegalArgumentException(_(getClass().getName() + " should have a nmae like this 'i18n_XX', but was {0}", name)); + throw new IllegalArgumentException(_(getClass().getName() + " should have a name like this 'i18n_XX', but was {0}", name)); } locale = LocaleEnum.valueOf(matcher.group(1)); putValue(Action.NAME, _(locale.getLibelle())); putValue(Action.SMALL_ICON, jaxx.runtime.UIHelper.createImageIcon(getIcon())); - putValue(Action.SHORT_DESCRIPTION, jaxx.runtime.UIHelper.createImageIcon(getIcon())); } @Override @@ -81,23 +75,17 @@ @Override public void doAction(ActionEvent e) { - //TODO Should ask confirm from user since it will close ui, and re instanciate ui - //getMainUI().getQuit().getAction().actionPerformed(new ActionEvent(this, ActionEvent.ACTION_FIRST, "cancel")); - getContext().getConfig().setI18n(locale); + getContext().getConfig().setUserLocale(locale); // on doit initialiser la nouvelle locale avant de decharger les ui // au cas ou un appel à une ui surviendrait et dans quel cas la locale // serait toujours sur l'ancienne valeur ... - getContext().getConfig().initI18n(); + getContext().initI18n(); // save config - getContext().saveSafely(); + getContext().getConfig().saveSafely(); // dispose then reload main ui SimExplorer.dispose(true); } - //public boolean equalsLocale(LanguageEnum lang, CountryEnum countr) { - // return language == lang && country == countr; - //} - @Override public String toString() { return super.toString() + " Locale " + locale;