Author: tchemit Date: 2008-05-14 16:59:17 +0000 (Wed, 14 May 2008) New Revision: 669 Modified: trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/VCSConnexionConfig.java trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/type/VCSConnexionConfigProperty.java trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/util/SimpleVCSConnexionConfig.java trunk/lutinvcs/provider/svn/src/main/java/org/codelutin/vcs/provider/svn/SVNConnexion.java trunk/lutinvcs/tools/src/test/java/org/codelutin/vcs/UITest.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConnexionConfigUI.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/UIActionHelper.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/ShowConfigAction.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/TestConnexionAction.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConnexionConfigUIHandler.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConnexionConfigUIModel.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/RootConfigUIModel.java trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/JaxxConnexionConfigUI.jaxx trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/config.css Log: use generic config dialog for connexionconfig Modified: trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/VCSConnexionConfig.java =================================================================== --- trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/VCSConnexionConfig.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/VCSConnexionConfig.java 2008-05-14 16:59:17 UTC (rev 669) @@ -68,6 +68,8 @@ void setSshPrivateKeyFile(File sshPrivateKeyFile); - boolean isNoPassPhrase(); + boolean isSshNoPassphrase(); + void setSshNoPassphrase(boolean newNoPassPhrase); + } Modified: trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/type/VCSConnexionConfigProperty.java =================================================================== --- trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/type/VCSConnexionConfigProperty.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/type/VCSConnexionConfigProperty.java 2008-05-14 16:59:17 UTC (rev 669) @@ -14,41 +14,58 @@ */ package org.codelutin.vcs.type; +import org.codelutin.vcs.VCSRootConfig; + +import java.io.File; + /** * Enumaration of properties useable in a {@link org.codelutin.vcs.VCSConnexionConfig} * * @author chemit * @see org.codelutin.vcs.VCSConnexionConfig */ -public enum VCSConnexionConfigProperty { +public enum VCSConnexionConfigProperty implements org.codelutin.util.config.Property { /** property <code>rootConfig</code>, as a {@link org.codelutin.vcs.VCSRootConfig} */ - rootConfig, + rootConfig(VCSRootConfig.class), /** property <code>typeRepo</code>, type of repo to use, as a {@link VCSTypeRepo} */ - typeRepo, + typeRepo(VCSTypeRepo.class), /** property <code>typeRepoValue</code>, the value associated to typeRepo (eg, branch or tag name, null for a head connexion) */ - typeRepoValue, + typeRepoValue(String.class), /** property <code>workingCopyFile</code>, the location of local working copy, it null (no working copy declared) */ - workingCopyFile, + workingCopyFile(File.class), /** property <code>connexionMode</code>, as a {@link org.codelutin.vcs.type.VCSConnexionMode} */ - connexionMode, + connexionMode(VCSConnexionMode.class), /** property <code>login</code>, login for a password connexion */ - login, + login(String.class), /** property <code>password</code>, password for a password connexion */ - password, + password(String.class), /** property <code>sshLogin</code>, login for a ssh connexion */ - sshLogin, + sshLogin(String.class), + /** property <code>sshNoPassphrase</code>, to tell if use of passphrase for a ssh connexion */ + sshNoPassphrase(Boolean.class), + /** property <code>sshPassphrase</code>, passphrase for a ssh connexion */ - sshPassphrase, + sshPassphrase(String.class), + + /** property <code>sshPrivateKey</code>, path of the ssh private key file for a ssh connexion */ + sshPrivateKeyFile(File.class); - /** property <code>sshPrivateKey</code>, path of the ssh private key file for a ssh connexion */ - sshPrivateKeyFile + private Class<?> type; + + public Class<?> getType() { + return type; + } + + VCSConnexionConfigProperty(Class<?> type) { + this.type = type; + } } \ No newline at end of file Modified: trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/util/SimpleVCSConnexionConfig.java =================================================================== --- trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/util/SimpleVCSConnexionConfig.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/core/src/main/java/org/codelutin/vcs/util/SimpleVCSConnexionConfig.java 2008-05-14 16:59:17 UTC (rev 669) @@ -115,7 +115,16 @@ setProperty(sshPrivateKeyFile, newSshPrivateKeyFile); } - public boolean isNoPassPhrase() { - return getSshPassphrase() == null; + public boolean isSshNoPassphrase() { + Boolean o = (Boolean) getProperty(sshNoPassphrase); + return o == null || o; } + + public void setSshNoPassphrase(boolean newNoPassPhrase) { + setProperty(sshNoPassphrase, newNoPassPhrase); + //if (newNoPassPhrase!=null && newNoPassPhrase) { + // remove passphrase if any + // setSshPassphrase(null); + //} + } } Modified: trunk/lutinvcs/provider/svn/src/main/java/org/codelutin/vcs/provider/svn/SVNConnexion.java =================================================================== --- trunk/lutinvcs/provider/svn/src/main/java/org/codelutin/vcs/provider/svn/SVNConnexion.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/provider/svn/src/main/java/org/codelutin/vcs/provider/svn/SVNConnexion.java 2008-05-14 16:59:17 UTC (rev 669) @@ -78,7 +78,7 @@ // just push in System properties that's we need for this... System.setProperty("svnkit.ssh2.key", config.getSshPrivateKeyFile().getAbsolutePath()); System.setProperty("svnkit.ssh2.username", config.getSshLogin()); - if (!config.isNoPassPhrase()) { + if (!config.isSshNoPassphrase()) { char[] pass = getConfig().getSshPassphrase().toCharArray(); if (pass != null) { System.setProperty("svnkit.ssh2.passphrase", Arrays.toString(pass)); Modified: trunk/lutinvcs/tools/src/test/java/org/codelutin/vcs/UITest.java =================================================================== --- trunk/lutinvcs/tools/src/test/java/org/codelutin/vcs/UITest.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/tools/src/test/java/org/codelutin/vcs/UITest.java 2008-05-14 16:59:17 UTC (rev 669) @@ -19,7 +19,12 @@ import org.codelutin.ui.DialogUIDef; import org.codelutin.util.config.IdentityConfig; import org.codelutin.vcs.type.VCSConnexionConfigProperty; -import static org.codelutin.vcs.type.VCSConnexionConfigProperty.*; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.connexionMode; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshLogin; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshNoPassphrase; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshPassphrase; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshPrivateKeyFile; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.workingCopyFile; import org.codelutin.vcs.ui.UIActionHelper; import org.codelutin.vcs.ui.VCSUIFactory; import org.codelutin.vcs.ui.model.SynchUIModel; @@ -32,9 +37,7 @@ import java.util.EnumMap; import java.util.List; -/** - * @author chemit - */ +/** @author chemit */ public class UITest { static protected final Log log = LogFactory.getLog(UITest.class); @@ -110,6 +113,7 @@ EnumMap<VCSConnexionConfigProperty, Object> props = new EnumMap<VCSConnexionConfigProperty, Object>(VCSConnexionConfigProperty.class); props.put(sshPrivateKeyFile, new File("/home/tony/.ssh/id_dsa")); props.put(sshPassphrase, "passphrase"); + props.put(sshNoPassphrase, false); props.put(sshLogin, "login"); props.put(connexionMode, org.codelutin.vcs.type.VCSConnexionMode.SSH); props.put(workingCopyFile, root); Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConnexionConfigUI.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConnexionConfigUI.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConnexionConfigUI.java 2008-05-14 16:59:17 UTC (rev 669) @@ -15,51 +15,25 @@ package org.codelutin.vcs.ui; import static org.codelutin.i18n.I18n._; -import org.codelutin.ui.FormElement; +import org.codelutin.ui.config.DialogConfigUI; import org.codelutin.util.FileUtil; +import org.codelutin.vcs.type.VCSConnexionConfigProperty; import org.codelutin.vcs.type.VCSConnexionMode; import org.codelutin.vcs.ui.handler.ConnexionConfigUIHandler; -import org.codelutin.vcs.ui.util.ui.AbstractUI; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; import javax.swing.JCheckBox; -import javax.swing.JComponent; import javax.swing.JEditorPane; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; import java.io.File; -import java.util.Arrays; /** @author chemit */ -public abstract class ConnexionConfigUI extends AbstractUI<ConnexionConfigUIHandler> { +public abstract class ConnexionConfigUI extends DialogConfigUI<VCSConnexionConfigProperty, ConnexionConfigUIHandler> { - public enum Element implements FormElement<ConnexionConfigUI> { - connexion, - login, - sshLogin, - password, - passphrase, - nopassphrase, - privateKeyFile, - workingCopyFile; - - public Object getValue(ConnexionConfigUI ui) { - return ui.getElementValue(this); - } - - public void setValue(ConnexionConfigUI ui, String value) { - //TODO - JComponent component = ui.getElement(this); - } - - public JLabel getLabel(ConnexionConfigUI ui) { - return ui.getElementLabel(this); - } - } - public abstract ButtonGroup getConnexionMode(); public abstract AbstractButton getChangePrivateKeyFile(); @@ -68,12 +42,6 @@ public abstract AbstractButton getGenerateKey(); - public abstract AbstractButton getOk(); - - public abstract AbstractButton getReset(); - - public abstract AbstractButton getCancel(); - public abstract AbstractButton getTestConnection(); public abstract AbstractButton getAddRoot(); @@ -82,32 +50,6 @@ public abstract AbstractButton getEditRoot(); - public String getElementValue(Element element) { - JComponent o = getElement(element); - if (o instanceof JPasswordField) { - return Arrays.toString(((JPasswordField) o).getPassword()); - } - if (o instanceof JTextField) { - return ((JTextField) o).getText(); - } - if (o instanceof JRadioButton) { - return String.valueOf(((JRadioButton) o).isSelected()); - } - if (o instanceof JCheckBox) { - return String.valueOf(((JCheckBox) o).isSelected()); - } - return ""; - } - - public JLabel getElementLabel(Element element) { - return (JLabel) getObjectById(element.name() + "Label"); - } - - public JComponent getElement(Element element) { - return (JComponent) getObjectById(element.name()); - } - - public abstract JEditorPane getDoc(); public abstract JRadioButton getConnexionModeAnonymous(); @@ -122,11 +64,11 @@ public abstract JPasswordField getPassword(); - public abstract JPasswordField getPassphrase(); + public abstract JPasswordField getSshPassphrase(); - public abstract JCheckBox getNoPassPhrase(); + public abstract JCheckBox getSshNoPassphrase(); - public abstract JTextField getPrivateKeyFile(); + public abstract JTextField getSshPrivateKeyFile(); public abstract JTextField getWorkingCopyFile(); @@ -136,10 +78,12 @@ public abstract JLabel getPasswordLabel(); - public abstract JLabel getPassphraseLabel(); + public abstract JLabel getSshPassphraseLabel(); - public abstract JLabel getPrivateKeyFileLabel(); + //public abstract JLabel getSshNoPassphraseLabel(); + public abstract JLabel getSshPrivateKeyFileLabel(); + public abstract JLabel getWorkingCopyFileLabel(); public abstract javax.swing.JPanel getConnexionPanel(); @@ -155,26 +99,9 @@ public abstract javax.swing.JComboBox getRootsList(); - public boolean isConfigValid() { - return getHandler().isConfigValid(); - } - - protected void reset() { - getHandler().reset(); - } - - protected void save() { - getHandler().save(); - dispose(); - } - - protected void doCheck(Element element) { - getHandler().doCheck(element); - } - protected void changeAutheticationMode(VCSConnexionMode mode) { getHandler().getModel().setConnexionMode(mode); - doCheck(Element.connexion); + doCheck(VCSConnexionConfigProperty.connexionMode); } protected void changePrivateKeyFile() { @@ -182,8 +109,8 @@ File file = FileUtil.getFile(".*.pub$", _("lutinvcs.config.find.public.key")); if (file != null) { String path = file.getAbsolutePath(); - getPrivateKeyFile().setText(path.substring(0, path.length() - 4)); - doCheck(Element.privateKeyFile); + getSshPrivateKeyFile().setText(path.substring(0, path.length() - 4)); + doCheck(VCSConnexionConfigProperty.sshPrivateKeyFile); } } @@ -193,7 +120,7 @@ if (file != null) { String path = new File(file).getAbsolutePath(); getWorkingCopyFile().setText(path); - doCheck(Element.workingCopyFile); + doCheck(VCSConnexionConfigProperty.workingCopyFile); } } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/UIActionHelper.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/UIActionHelper.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/UIActionHelper.java 2008-05-14 16:59:17 UTC (rev 669) @@ -46,7 +46,7 @@ public static void showConfigUI(VCSConnexionConfig config, DialogUI ui, String position) { ShowConfigAction action = new ShowConfigAction(ui, false); - action.setConfig(config); + action.setSrc(config); action.setPosition(position); fireAction(ui, action); } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/ShowConfigAction.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/ShowConfigAction.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/ShowConfigAction.java 2008-05-14 16:59:17 UTC (rev 669) @@ -16,27 +16,37 @@ import org.codelutin.ui.DialogUI; import org.codelutin.ui.DialogUIHandler; +import org.codelutin.ui.ShowUIAction; import org.codelutin.vcs.ui.ConnexionConfigUI; import org.codelutin.vcs.ui.VCSUIFactory; import org.codelutin.vcs.ui.handler.ConnexionConfigUIHandler; import org.codelutin.vcs.ui.model.ConnexionConfigUIModel; -import org.codelutin.vcs.ui.util.AbstractVCSShowUIAction; import java.awt.event.ActionEvent; /** @author chemit */ -public class ShowConfigAction extends AbstractVCSShowUIAction<ConnexionConfigUIModel, ConnexionConfigUI, ConnexionConfigUIHandler> { +public class ShowConfigAction extends ShowUIAction<ConnexionConfigUIModel, ConnexionConfigUI, ConnexionConfigUIHandler> { private static final long serialVersionUID = 1L; + protected transient Object src; + + public Object getSrc() { + return src; + } + + public void setSrc(Object src) { + this.src = src; + } + public ShowConfigAction(DialogUI<DialogUIHandler<?, ?>> ui, boolean showText) { - super(ui, VCSUIFactory.CONNEXION_CONFIG_UI, showText); + super(ui, VCSUIFactory.CONNEXION_CONFIG_UI, VCSUIFactory.getInstance(), showText); } @Override protected ConnexionConfigUI initUI(ActionEvent e) { ConnexionConfigUI ui = super.initUI(e); - ui.getHandler().getModel().populate(getConfig()); + ui.getHandler().getModel().populate(src); ui.pack(); return ui; } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/TestConnexionAction.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/TestConnexionAction.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/action/TestConnexionAction.java 2008-05-14 16:59:17 UTC (rev 669) @@ -42,7 +42,7 @@ public void actionPerformed(java.awt.event.ActionEvent e) { checkInit(); ConnexionConfigUIHandler uiHandler = getHandler(); - VCSConnexionConfig config = uiHandler.getConfig(); + VCSConnexionConfig config = uiHandler.getModel().getCurrent(); VCSConnexion connexion = VCSFactory.newConnexion(config); ConnexionConfigUI ui = uiHandler.getUi(); boolean result = false; Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConnexionConfigUIHandler.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConnexionConfigUIHandler.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConnexionConfigUIHandler.java 2008-05-14 16:59:17 UTC (rev 669) @@ -14,43 +14,34 @@ */ package org.codelutin.vcs.ui.handler; +import org.codelutin.ui.config.DialogConfigUIHandler; import org.codelutin.vcs.VCSConnexionConfig; +import org.codelutin.vcs.type.VCSConnexionConfigProperty; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.connexionMode; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.login; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.password; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshLogin; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshNoPassphrase; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshPassphrase; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.sshPrivateKeyFile; import org.codelutin.vcs.type.VCSConnexionMode; import org.codelutin.vcs.ui.ConnexionConfigUI; -import org.codelutin.vcs.ui.ConnexionConfigUI.Element; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.login; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.nopassphrase; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.passphrase; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.password; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.privateKeyFile; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.sshLogin; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.values; import org.codelutin.vcs.ui.model.ConnexionConfigUIModel; -import org.codelutin.vcs.ui.util.handler.AbstractUIHandler; -import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingUtilities; -import javax.swing.text.JTextComponent; -import java.awt.Color; import java.beans.PropertyChangeEvent; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.EnumSet; /** @author chemit */ -public class ConnexionConfigUIHandler extends AbstractUIHandler<ConnexionConfigUIModel, ConnexionConfigUI> { +public class ConnexionConfigUIHandler extends DialogConfigUIHandler<VCSConnexionConfigProperty, ConnexionConfigUIModel, ConnexionConfigUI> { - protected List<Element> errors; - - - public ConnexionConfigUIHandler(ConnexionConfigUI ui,ConnexionConfigUIModel model, VCSConnexionConfig config) { - super(ui, model, config); + public ConnexionConfigUIHandler(ConnexionConfigUI ui, ConnexionConfigUIModel model) { + super(ui, model); ui.setHandler(this); - errors = new ArrayList<Element>(); } + @Override public void init() { super.init(); ConnexionConfigUI ui = getUi(); @@ -60,32 +51,19 @@ connexionPanel.add(ui.getSshPanel(), VCSConnexionMode.SSH.name()); } + @Override public void propertyChange(PropertyChangeEvent evt) { if (log.isDebugEnabled()) { log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); } String action = evt.getPropertyName(); - if (ConnexionConfigUIModel.CONFIG_PROPERTY_CHANGED.equals(action)) { - // update ui with model values, - populateUI((ConnexionConfigUIModel) evt.getNewValue()); - doCheck(null); - return; - } if (ConnexionConfigUIModel.MODE_PROPERTY_CHANGED.equals(action)) { + doCheckAll(); updateUI((VCSConnexionMode) evt.getNewValue()); - doCheck(null); return; } - if (ConnexionConfigUIModel.MODIFIED_PROPERTY_CHANGED.equals(action)) { - Boolean newValue = (Boolean) evt.getNewValue(); - boolean modified = newValue != null && newValue; - getUi().getReset().setEnabled(modified); - getUi().getTestConnection().setEnabled(modified && isConfigValid()); - return; - } - if (ConnexionConfigUIModel.CONNEXION_STATE_PROPERTY_CHANGED.equals(action)) { Boolean newValue = (Boolean) evt.getNewValue(); boolean validConnexion = newValue != null && newValue; @@ -93,151 +71,150 @@ getUi().getTestConnection().setEnabled(!validConnexion); return; } - throw new IllegalStateException("unimplemented property changed : " + evt + " for " + this); - } - public synchronized List<Element> validateModel(Element element) { - errors.clear(); - ConnexionConfigUI ui = getUi(); - if (element != null) { - // compute modifed - setModified(element, ui); + if (ConnexionConfigUIModel.MODIFIED_PROPERTY_CHANGED.equals(action)) { + Boolean newValue = (Boolean) evt.getNewValue(); + boolean modified = newValue != null && newValue; + + getUi().getTestConnection().setEnabled(modified && getModel().isConfigValid()); + // do not return, use super class code } - switch (getModel().getMode()) { - case ANONYMOUS: - // nothing to validate - break; - case PASSWORD: - // login + password not empty - checkData(ui.getLogin(), login); - checkData(ui.getPassword().getPassword().length == 0, password); - break; - case SSH: - // login + private key exists - checkData(ui.getSshLogin(), sshLogin); - String s = ui.getPrivateKeyFile().getText(); - File file = new File(s); - checkData(s.isEmpty() || !file.exists(), privateKeyFile); - if (ui.getElementValue(nopassphrase).equals("false")) { - // check it there is a pass-phrase - checkData(ui.getPassphrase().getPassword().length == 0, passphrase); - } else { - errors.remove(passphrase); - } - break; - } - return errors; + + // try in super class + super.propertyChange(evt); } - public void setModified(Element element, ConnexionConfigUI ui) { - boolean modify = false; - ConnexionConfigUIModel model = getModel(); + public void doCheck(VCSConnexionConfigProperty key) { + switch (key) { - String value = ui.getElementValue(element); - - switch (element) { - case connexion: - modify = model.getMode() != model.getConfig().getConnexionMode(); + case connexionMode: + // special case (not checkable property) + doCheck(getModel().getMode()); break; - case login: - modify = !value.equals(model.getConfig().getLogin()); + case sshNoPassphrase: + Boolean noPass = (Boolean) getUi().getElementValue(key); + getModel().setNoSshPassPhrase(noPass); + //super.doCheck(key); + if (noPass) { + getModel().clear(sshPassphrase); + } //else { + super.doCheck(sshPassphrase); + //} break; + case login: + case password: + case rootConfig: case sshLogin: - modify = !value.equals(model.getConfig().getSshLogin()); + case sshPassphrase: + case sshPrivateKeyFile: + case workingCopyFile: + super.doCheck(key); break; - case password: - modify = !Arrays.toString(ui.getPassword().getPassword()).equals(model.getConfig().getPassword()); + case typeRepo: + case typeRepoValue: break; - case nopassphrase: - boolean b = ui.getNoPassPhrase().isSelected(); - modify = (model.getConfig().getSshPassphrase() != null && !model.getConfig().getSshPassphrase().isEmpty()) == b; - if (!b) { - model.removeModified(passphrase); - } else { - char[] password = ui.getPassphrase().getPassword(); - boolean modify2; - if (model.getConfig().getSshPassphrase() == null || model.getConfig().getSshPassphrase().isEmpty()) { - modify2 = password.length == 0; - } else { - modify2 = model.getConfig().getSshPassphrase().equals(Arrays.toString(password)); - } - if (modify2) { - model.addModified(passphrase); - } - } - break; - case passphrase: - modify = !value.equals(model.getConfig().getSshPassphrase()); - break; - case privateKeyFile: - modify = !value.equals(model.getConfig().getSshPrivateKeyFile() + ""); - break; + } + } - case workingCopyFile: - modify = !value.equals(model.getConfig().getWorkingCopyFile() + ""); + protected boolean doCheck(VCSConnexionMode value) { + + boolean result = value != null; + switch (value) { + case ANONYMOUS: + // always valid :) + return true; + case PASSWORD: + doCheck(login); + doCheck(password); break; + case SSH: + doCheck(sshLogin); + doCheck(sshNoPassphrase); + doCheck(sshPassphrase); + doCheck(sshPrivateKeyFile); + break; } - if (modify) { - model.addModified(element); - // reset connexion state - model.setConnexionState(null); - } else if (model.getModifieds().contains(element)) { - model.removeModified(element); - // reset connexion state - model.setConnexionState(null); - } + return result; } - public void doCheck(Element element) { - List<Element> errors = validateModel(element); - updateUI(errors); - } - public boolean isConfigValid() { - return errors.isEmpty() && getModel().isConnexionState(); + @Override + public void doCheckAll() { + super.doCheckAll(); } - public void reset() { - getModel().reset(); - } + @Override + protected void populateUI() { + super.populateUI(); - protected void populateUI(ConnexionConfigUIModel model) { ConnexionConfigUI ui = getUi(); - VCSConnexionConfig config = model.getConfig(); + ConnexionConfigUIModel model = getModel(); + VCSConnexionConfig config = model.getCurrent(); switch (config.getConnexionMode()) { case ANONYMOUS: + populateUI(ui, login, null); + populateUI(ui, password, null); + populateUI(ui, sshLogin, null); + populateUI(ui, sshNoPassphrase, true); + populateUI(ui, sshPassphrase, null); + populateUI(ui, sshPrivateKeyFile, null); break; case PASSWORD: - ui.getLogin().setText(config.getLogin()); - ui.getPassword().setText(config.getPassword() == null ? "" : config.getPassword()); + populateUI(ui, sshLogin, null); + populateUI(ui, sshNoPassphrase, true); + populateUI(ui, sshPassphrase, null); + populateUI(ui, sshPrivateKeyFile, null); break; case SSH: - ui.getSshLogin().setText(config.getSshLogin()); - ui.getNoPassPhrase().setSelected(config.isNoPassPhrase()); - ui.getPrivateKeyFile().setText(config.getSshPrivateKeyFile() == null ? "" : config.getSshPrivateKeyFile().getAbsolutePath()); - ui.getPassphrase().setText(config.getSshPassphrase() == null ? "" : config.getSshPassphrase()); + populateUI(ui, login, null); + populateUI(ui, password, null); break; } ui.getTestConnection().setEnabled(true); } + + @Override + protected boolean prepareSave() { + boolean b = super.prepareSave(); + if (b) { + VCSConnexionConfig current = getModel().getCurrent(); + EnumSet<VCSConnexionConfigProperty> modifieds = getModel().getModifieds(); + if (modifieds.contains(connexionMode)) { + current.setConnexionMode(getModel().getMode()); + } + + if (modifieds.contains(sshNoPassphrase)) { + boolean o = getModel().isNoSshPassPhrase(); + current.setSshNoPassphrase(o); + if (o) { + // no passphrase + current.setSshPassphrase(null); + modifieds.add(VCSConnexionConfigProperty.sshPassphrase); + } + } + + } + return b; + } + protected void updateUI(final VCSConnexionMode mode) { ConnexionConfigUI ui = getUi(); - //getModel().removeModified(sshLogin, nopassphrase, passphrase, privateKeyFile, login, password); switch (mode) { case ANONYMOUS: ui.getConnexionModeAnonymous().setSelected(true); break; case PASSWORD: + doCheck(login); + doCheck(password); ui.getConnexionModePassword().setSelected(true); - setModified(login, ui); - setModified(password, ui); break; case SSH: - setModified(sshLogin, ui); - setModified(nopassphrase, ui); - setModified(passphrase, ui); - setModified(privateKeyFile, ui); + + doCheck(sshLogin); + doCheck(sshNoPassphrase); + doCheck(sshPassphrase); + doCheck(sshPrivateKeyFile); ui.getConnexionModeSsh().setSelected(true); break; } @@ -249,44 +226,4 @@ }); } - protected void updateUI(List<Element> errors) { - ConnexionConfigUI ui = getUi(); - boolean valid = isConfigValid(); - ui.getOk().setEnabled(valid && getModel().isModified()); - //ui.getTestConnection().setEnabled(valid); - ui.getGenerateKey().setEnabled(getModel().getMode() == VCSConnexionMode.SSH && !errors.contains(sshLogin) && !errors.contains(passphrase)); - for (Element element : values()) { - setLabelColor(errors, element); - } - } - - protected void checkData(JTextComponent component, Element errorName) { - if (component.getText().isEmpty()) { - errors.add(errorName); - } - } - - protected void checkData(boolean notValid, Element errorName) { - if (notValid) { - errors.add(errorName); - } - } - - protected void setLabelColor(List<Element> errors, Element element) { - JComponent component = getUi().getElementLabel(element); - if (component != null && component.isVisible()) { - component.setForeground(errors.contains(element) ? Color.red : Color.black); - } - } - - public void save() { - if (!getModel().isModified()) { - log.warn("nothing to save"); - } - for (Element element : getModel().getModifieds()) { - String value = getUi().getElementValue(element); - getModel().save(element, value); - log.info("save " + element); - } - } -} \ No newline at end of file +} Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConnexionConfigUIModel.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConnexionConfigUIModel.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConnexionConfigUIModel.java 2008-05-14 16:59:17 UTC (rev 669) @@ -14,53 +14,56 @@ */ package org.codelutin.vcs.ui.model; +import org.codelutin.ui.config.DialogConfigUIModel; import org.codelutin.vcs.VCSConnexionConfig; +import org.codelutin.vcs.type.VCSConnexionConfigProperty; +import static org.codelutin.vcs.type.VCSConnexionConfigProperty.*; import org.codelutin.vcs.type.VCSConnexionMode; -import org.codelutin.vcs.ui.ConnexionConfigUI.Element; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.connexion; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.login; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.nopassphrase; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.passphrase; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.password; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.privateKeyFile; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.sshLogin; -import org.codelutin.vcs.ui.util.model.AbstractUIModel; +import org.codelutin.vcs.util.SimpleVCSConnexionConfig; -import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.util.EnumSet; /** * Model of a a confirmation of action on entries (single type of action possible) * * @author chemit */ -public class ConnexionConfigUIModel extends AbstractUIModel { +public class ConnexionConfigUIModel extends DialogConfigUIModel<VCSConnexionConfigProperty, VCSConnexionConfig> { - public static final String CONFIG_PROPERTY_CHANGED = "config"; public static final String CONNEXION_STATE_PROPERTY_CHANGED = "connexionState"; public static final String MODE_PROPERTY_CHANGED = "mode"; - public static final String MODIFIED_PROPERTY_CHANGED = "modify"; - protected VCSConnexionMode mode; - protected List<Element> modifieds; - protected VCSConnexionConfig config; protected Boolean connexionState; + protected Boolean noSshPassPhrase; + protected VCSConnexionMode mode; + public ConnexionConfigUIModel() { - modifieds = new ArrayList<Element>(); + super(VCSConnexionConfigProperty.class); + uncheckedKeys = EnumSet.noneOf(VCSConnexionConfigProperty.class); + uncheckedKeys.add(connexionMode); + uncheckedKeys.add(rootConfig); + uncheckedKeys.add(typeRepo); + uncheckedKeys.add(typeRepoValue); } - public void populate(VCSConnexionConfig config) { - this.config = config; - setConnexionMode(config.getConnexionMode()); - setModified(false); - firePropertyChange(CONFIG_PROPERTY_CHANGED, null, this); + @Override + public void populate(Object src) { + current.copyFrom(src, EnumSet.of(sshNoPassphrase)); + noSshPassPhrase = current.isSshNoPassphrase(); + super.populate(src); + /*if (noSshPassPhrase) { + clear(sshPassphrase); + }*/ + setConnexionMode(current.getConnexionMode()); } - public void reset() { - checkConnexionInit(); - populate(config); + public void setNoSshPassPhrase(Boolean noSshPassPhrase) { + Boolean old = this.noSshPassPhrase; + this.noSshPassPhrase = noSshPassPhrase; + if (old!=null) { + changeModifiedState(sshNoPassphrase, noSshPassPhrase,current.isSshNoPassphrase()); + } } public void setConnexionMode(VCSConnexionMode mode) { @@ -72,114 +75,90 @@ // nothing to clean break; case PASSWORD: - removeModified(login, password); + clear(login); + clear(password); break; case SSH: - removeModified(sshLogin, passphrase, nopassphrase, privateKeyFile); + clear(sshLogin); + clear(sshPassphrase); + clear(sshNoPassphrase); + clear(sshPrivateKeyFile); break; } } - if (mode == getConfig().getConnexionMode()) { - removeModified(connexion); - } else { - addModified(connexion); - } + changeModifiedState(connexionMode, mode, getCurrent().getConnexionMode()); + firePropertyChange(MODE_PROPERTY_CHANGED, oldMode, mode); setConnexionState(null); } - public boolean isModified() { - return !modifieds.isEmpty(); + protected VCSConnexionConfig newConfig() { + return new SimpleVCSConnexionConfig(); } - public List<Element> getModifieds() { - return modifieds; - } - - public Boolean isConnexionState() { - return connexionState != null && connexionState; - } - - public VCSConnexionConfig getConfig() throws IllegalStateException { - checkConnexionInit(); - return config; - } - - public VCSConnexionMode getMode() throws IllegalStateException { - checkConnexionInit(); - return mode; - } - - public void addModified(Element elementname) { - if (!modifieds.contains(elementname)) { - modifieds.add(elementname); - } - setModified(!modifieds.isEmpty()); - } - - public void removeModified(Element... elementnames) { - for (Element elementname : elementnames) { - if (modifieds.contains(elementname)) { - modifieds.remove(elementname); - } - setModified(!modifieds.isEmpty()); - } - - } - - public void setModified(boolean modified) { - if (!modified) { - modifieds.clear(); - } - firePropertyChange(MODIFIED_PROPERTY_CHANGED, null, modified); - } - - public void save(Element element, String value) { - checkConnexionInit(); - switch (element) { - case connexion: - config.setConnexionMode(mode); + protected boolean isValid(VCSConnexionConfigProperty key, Object value) { + boolean result = value != null; + switch (key) { + case connexionMode: break; case login: - if (mode == VCSConnexionMode.PASSWORD) { - config.setLogin(value); - } + if (mode != VCSConnexionMode.PASSWORD) { + result = true; + } else + result &= !String.valueOf(value).trim().isEmpty(); break; - case nopassphrase: - if (mode == VCSConnexionMode.SSH) { - config.setSshPassphrase(null); - } - break; case password: - if (mode == VCSConnexionMode.PASSWORD) { - config.setPassword(value); - } - case passphrase: - if (mode == VCSConnexionMode.SSH) { - config.setSshPassphrase(value); - } + if (mode != VCSConnexionMode.PASSWORD) { + result = true; + } else + result &= !String.valueOf(value).trim().isEmpty(); break; - case privateKeyFile: - if (mode == VCSConnexionMode.SSH) { - config.setSshPrivateKeyFile(new File(value)); - } + case rootConfig: break; case sshLogin: - if (mode == VCSConnexionMode.SSH) { - config.setSshLogin(value); + if (mode != VCSConnexionMode.SSH) { + result = true; + } else + result &= !String.valueOf(value).trim().isEmpty(); + break; + case sshPassphrase: + if (mode != VCSConnexionMode.SSH || isNoSshPassPhrase()) { + result = true; + } else + result &= !String.valueOf(value).trim().isEmpty(); + break; + case sshPrivateKeyFile: + if (mode != VCSConnexionMode.SSH) { + result = true; + } else if (result) { + String f = String.valueOf(value).trim(); + result = !f.isEmpty() && new java.io.File(f).exists(); } break; + case typeRepo: + break; + case typeRepoValue: + break; case workingCopyFile: - config.setWorkingCopyFile(new File(value)); + if (result) { + String f = String.valueOf(value).trim(); + result = !f.isEmpty() && new java.io.File(f).exists(); + } break; + case sshNoPassphrase: + // always valid :) + result = true; + break; } + return result; } + public Boolean isConnexionState() { + return connexionState != null && connexionState; + } - protected void checkConnexionInit() throws IllegalStateException { - if (config == null) { - throw new IllegalStateException("no config found in model " + this); - } + public VCSConnexionMode getMode() throws IllegalStateException { + return mode; } public void setConnexionState(Boolean connexionState) { @@ -187,4 +166,8 @@ this.connexionState = connexionState; firePropertyChange(CONNEXION_STATE_PROPERTY_CHANGED, oldConnexionState, connexionState); } + + public boolean isNoSshPassPhrase() { + return noSshPassPhrase != null && noSshPassPhrase; + } } \ No newline at end of file Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/RootConfigUIModel.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/RootConfigUIModel.java 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/RootConfigUIModel.java 2008-05-14 16:59:17 UTC (rev 669) @@ -14,22 +14,8 @@ */ package org.codelutin.vcs.ui.model; -import org.codelutin.vcs.VCSConnexionConfig; -import org.codelutin.vcs.type.VCSConnexionMode; -import org.codelutin.vcs.ui.ConnexionConfigUI.Element; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.connexion; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.login; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.nopassphrase; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.passphrase; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.password; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.privateKeyFile; -import static org.codelutin.vcs.ui.ConnexionConfigUI.Element.sshLogin; import org.codelutin.vcs.ui.util.model.AbstractUIModel; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - /** * Model of a a confirmation of action on entries (single type of action possible) * @@ -37,156 +23,9 @@ */ public class RootConfigUIModel extends AbstractUIModel { - public static final String CONFIG_PROPERTY_CHANGED = "config"; - public static final String CONNEXION_STATE_PROPERTY_CHANGED = "connexionState"; - public static final String MODE_PROPERTY_CHANGED = "mode"; - public static final String MODIFIED_PROPERTY_CHANGED = "modify"; - protected VCSConnexionMode mode; - - protected List<Element> modifieds; - - protected VCSConnexionConfig config; - protected Boolean connexionState; - public RootConfigUIModel() { - modifieds = new ArrayList<Element>(); - } - public void populate(VCSConnexionConfig config) { - this.config = config; - setConnexionMode(config.getConnexionMode()); - setModified(false); - firePropertyChange(CONFIG_PROPERTY_CHANGED, null, this); } - public void reset() { - checkConnexionInit(); - populate(config); - } - - public void setConnexionMode(VCSConnexionMode mode) { - VCSConnexionMode oldMode = this.mode; - this.mode = mode; - if (oldMode != null) { - switch (oldMode) { - case ANONYMOUS: - // nothing to clean - break; - case PASSWORD: - removeModified(login, password); - break; - case SSH: - removeModified(sshLogin, passphrase, nopassphrase, privateKeyFile); - break; - } - } - if (mode == getConfig().getConnexionMode()) { - removeModified(connexion); - } else { - addModified(connexion); - } - firePropertyChange(MODE_PROPERTY_CHANGED, oldMode, mode); - setConnexionState(null); - } - - public boolean isModified() { - return !modifieds.isEmpty(); - } - - public List<Element> getModifieds() { - return modifieds; - } - - public Boolean isConnexionState() { - return connexionState != null && connexionState; - } - - public VCSConnexionConfig getConfig() throws IllegalStateException { - checkConnexionInit(); - return config; - } - - public VCSConnexionMode getMode() throws IllegalStateException { - checkConnexionInit(); - return mode; - } - - public void addModified(Element elementname) { - if (!modifieds.contains(elementname)) { - modifieds.add(elementname); - } - setModified(!modifieds.isEmpty()); - } - - public void removeModified(Element... elementnames) { - for (Element elementname : elementnames) { - if (modifieds.contains(elementname)) { - modifieds.remove(elementname); - } - setModified(!modifieds.isEmpty()); - } - - } - - public void setModified(boolean modified) { - if (!modified) { - modifieds.clear(); - } - firePropertyChange(MODIFIED_PROPERTY_CHANGED, null, modified); - } - - public void save(Element element, String value) { - checkConnexionInit(); - switch (element) { - case connexion: - config.setConnexionMode(mode); - break; - case login: - if (mode == VCSConnexionMode.PASSWORD) { - config.setLogin(value); - } - break; - case nopassphrase: - if (mode == VCSConnexionMode.SSH) { - config.setSshPassphrase(null); - } - break; - case password: - if (mode == VCSConnexionMode.PASSWORD) { - config.setPassword(value); - } - case passphrase: - if (mode == VCSConnexionMode.SSH) { - config.setSshPassphrase(value); - } - break; - case privateKeyFile: - if (mode == VCSConnexionMode.SSH) { - config.setSshPrivateKeyFile(new File(value)); - } - break; - case sshLogin: - if (mode == VCSConnexionMode.SSH) { - config.setSshLogin(value); - } - break; - case workingCopyFile: - config.setWorkingCopyFile(new File(value)); - break; - } - } - - - protected void checkConnexionInit() throws IllegalStateException { - if (config == null) { - throw new IllegalStateException("no config found in model " + this); - } - } - - public void setConnexionState(Boolean connexionState) { - Boolean oldConnexionState = this.connexionState; - this.connexionState = connexionState; - firePropertyChange(CONNEXION_STATE_PROPERTY_CHANGED, oldConnexionState, connexionState); - } } \ No newline at end of file Modified: trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/JaxxConnexionConfigUI.jaxx =================================================================== --- trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/JaxxConnexionConfigUI.jaxx 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/JaxxConnexionConfigUI.jaxx 2008-05-14 16:59:17 UTC (rev 669) @@ -2,6 +2,7 @@ <style source="config.css"/> <script> import static org.codelutin.vcs.type.VCSConnexionMode.*; + import org.codelutin.vcs.type.VCSConnexionConfigProperty; import static org.codelutin.vcs.ui.util.UIHelper.createActionIcon; import org.codelutin.vcs.ui.action.*; </script> @@ -20,15 +21,15 @@ <JLabel id='loginLabel'/> </cell> <cell> - <JTextField id='login' onKeyReleased="doCheck(Element.login)"/> + <JTextField id='login' onKeyReleased="doCheck(VCSConnexionConfigProperty.login)"/> </cell> </row> <row fill='horizontal'> <cell> - <JLabel id='passwordLabel' labelFor='{password}'/> + <JLabel id='passwordLabel' labelFor='{passwordLabel}'/> </cell> <cell> - <JPasswordField id='password' onKeyReleased="doCheck(Element.password)"/> + <JPasswordField id='password' onKeyReleased="doCheck(VCSConnexionConfigProperty.password)"/> </cell> </row> </Table> @@ -38,28 +39,28 @@ <JLabel id='sshLoginLabel'/> </cell> <cell> - <JTextField id='sshLogin' onKeyReleased="doCheck(Element.sshLogin)"/> + <JTextField id='sshLogin' onKeyReleased="doCheck(VCSConnexionConfigProperty.sshLogin)"/> </cell> </row> <row fill='horizontal'> <cell> - <JLabel id='passphraseLabel'/> + <JLabel id='sshPassphraseLabel'/> </cell> <cell> <JToolBar opaque='false' borderPainted='false' height="24"> - <JCheckBox id='noPassPhrase' onKeyReleased="doCheck(Element.nopassphrase)"/> - <JPasswordField id='passphrase' onKeyReleased="doCheck(Element.passphrase)" - enabled='{!noPassPhrase.isSelected()}'/> + <JCheckBox id='sshNoPassphrase' onActionPerformed="doCheck(VCSConnexionConfigProperty.sshNoPassphrase)"/> + <JPasswordField id='sshPassphrase' onKeyReleased="doCheck(VCSConnexionConfigProperty.sshPassphrase)" + enabled='{!sshNoPassphrase.isSelected()}'/> </JToolBar> </cell> </row> <row fill='horizontal'> <cell> - <JLabel id='privateKeyFileLabel'/> + <JLabel id='sshPrivateKeyFileLabel'/> </cell> <cell> <JToolBar opaque='false' borderPainted='false' height="24"> - <JTextField id='privateKeyFile' onKeyReleased="doCheck(Element.privateKeyFile)"/> + <JTextField id='sshPrivateKeyFile' onKeyReleased="doCheck(VCSConnexionConfigProperty.sshPrivateKeyFile)"/> <JButton id='changePrivateKeyFile' icon='{createActionIcon("filechooser")}' onActionPerformed="changePrivateKeyFile()"/> </JToolBar> @@ -75,7 +76,8 @@ <cell fill='both'/> </row> </Table> - <JButton id='reset' onActionPerformed="reset()" icon='{createActionIcon("revert")}' borderPainted='false'/> + <JButton id='reset' action='{newAction(org.codelutin.ui.config.ResetAction.class,false)}' borderPainted='false'/> + <!--JButton id='reset' onActionPerformed="reset()" icon='{createActionIcon("revert")}' borderPainted='false'/--> <JButton id='testConnection' action='{newAction(TestConnexionAction.class)}' borderPainted='false'/> <JButton id='help' action='{newAction(HelpAction.class)}' borderPainted='false'/> </JToolBar> @@ -124,7 +126,7 @@ <cell columns="2" fill='horizontal'> <JToolBar opaque='false' height="24"> <JLabel id='workingCopyFileLabel'/> - <JTextField id='workingCopyFile' onKeyReleased="doCheck(Element.workingCopyFile)"/> + <JTextField id='workingCopyFile' onKeyReleased="doCheck(VCSConnexionConfigProperty.workingCopyFile)"/> <JButton id='changeWorkingCopyFile' icon='{createActionIcon("filechooser")}' onActionPerformed="changeWorkingCopyFile()"/> </JToolBar> @@ -132,10 +134,10 @@ </row> <row fill='horizontal'> <cell weightx='1'> - <JButton id='ok' onActionPerformed="save()"/> + <JButton id='ok' action='{newAction(org.codelutin.ui.config.SaveAction.class,true)}'/> </cell> <cell weightx='1'> - <JButton id='cancel' onActionPerformed="dispose()"/> + <JButton id='cancel' action='{newAction(org.codelutin.ui.config.CancelAction.class,true)}'/> </cell> </row> </Table> Modified: trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/config.css =================================================================== --- trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/config.css 2008-05-14 16:58:23 UTC (rev 668) +++ trunk/lutinvcs/ui/jaxx/src/main/uimodel/org/codelutin/vcs/ui/config.css 2008-05-14 16:59:17 UTC (rev 669) @@ -61,15 +61,15 @@ text: "lutinvcs.config.server.password"; } -#noPassPhraseLabel { +#sshNoPassPhraseLabel { text: "lutinvcs.config.server.ssh.no.passphrase"; } -#passphraseLabel { +#sshPassphraseLabel { text: "lutinvcs.config.server.passphrase"; } -#privateKeyFileLabel { +#sshPrivateKeyFileLabel { text: "lutinvcs.config.server.ssh.privateKeyFile"; }