[Buix-commits] r527 - in trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui: . handler model util
Author: tchemit Date: 2008-04-16 20:46:32 +0000 (Wed, 16 Apr 2008) New Revision: 527 Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConfigUI.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConfigUIHandler.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConfigUIModel.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractBasicUI.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUI.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIHandler.java trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIModel.java Log: config ui Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConfigUI.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConfigUI.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/ConfigUI.java 2008-04-16 20:46:32 UTC (rev 527) @@ -27,55 +27,30 @@ import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; -import java.awt.Color; import java.io.File; -import java.util.Arrays; -import java.util.List; /** @author chemit */ public abstract class ConfigUI extends org.codelutin.vcs.ui.util.AbstractUI<org.codelutin.vcs.ui.handler.ConfigUIHandler> { public enum Element { - firstname { - public String getValue(ConfigUI ui) { - return ui.getFirstname().getText(); - }}, - lastname { - public String getValue(ConfigUI ui) { - return ui.getLastname().getText(); - }}, - email { - public String getValue(ConfigUI ui) { - return ui.getEmail().getText(); - }}, - connexion { - public String getValue(ConfigUI ui) { - return ui.getFirstname().getText(); - }}, - login { - public String getValue(ConfigUI ui) { - return ui.getServerLogin().getText(); - }}, - password { - public String getValue(ConfigUI ui) { - return Arrays.toString(ui.getServerPassword().getPassword()); - }}, - passphrase { - public String getValue(ConfigUI ui) { - return Arrays.toString(ui.getServerPassword().getPassword()); - }}, - nopassphrase { - public String getValue(ConfigUI ui) { - return String.valueOf(ui.getServerNoPassPhrase().isSelected()); - }}, - privatekey { - public String getValue(ConfigUI ui) { - return ui.getServerPrivateKeyFile().getText(); - }}; - - public abstract String getValue(ConfigUI ui); + firstname, + lastname, + email, + connexion, + login, + sshLogin, + password, + passphrase, + nopassphrase, + privateKeyFile } + public abstract String getElementValue(Element element); + + public abstract JLabel getElementLabel(Element element); + + public abstract JComponent getElement(Element element); + public abstract JEditorPane getDoc(); public abstract JTextField getFirstname(); @@ -84,33 +59,35 @@ public abstract JTextField getEmail(); - public abstract JRadioButton getServerAuthenticationMethodAnonymous(); + public abstract JRadioButton getConnexionModeAnonymous(); - public abstract JRadioButton getServerAuthenticationMethodPassword(); + public abstract JRadioButton getConnexionModePassword(); - public abstract JRadioButton getServerAuthenticationMethodSsh(); + public abstract JRadioButton getConnexionModeSsh(); - public abstract JTextField getServerLogin(); + public abstract JTextField getLogin(); - public abstract JPasswordField getServerPassword(); + public abstract JTextField getSshLogin(); - public abstract JPasswordField getServerPassphrase(); + public abstract JPasswordField getPassword(); - public abstract JCheckBox getServerNoPassPhrase(); + public abstract JPasswordField getPassphrase(); - public abstract JTextField getServerPrivateKeyFile(); + public abstract JCheckBox getNoPassPhrase(); - public abstract ButtonGroup getServerMethod(); + public abstract JTextField getPrivateKeyFile(); - public abstract AbstractButton getServerPrivateKeyChangeFile(); + public abstract ButtonGroup getConnexionMode(); - public abstract AbstractButton getServerPrivateKeyGenerate(); + public abstract AbstractButton getChangePrivateKeyFile(); + public abstract AbstractButton getGenerateKey(); + public abstract AbstractButton getOk(); public abstract AbstractButton getReset(); - public abstract AbstractButton getCancelAction(); + public abstract AbstractButton getCancel(); public abstract AbstractButton getTestConnection(); @@ -120,15 +97,27 @@ public abstract JLabel getEmailLabel(); - public abstract JLabel getServerLoginLabel(); + public abstract JLabel getLoginLabel(); - public abstract JLabel getServerPasswordLabel(); + public abstract JLabel getSshLoginLabel(); - public abstract JLabel getServerPassphraseLabel(); + public abstract JLabel getPasswordLabel(); - public abstract JLabel getServerPrivateKeyFileLabel(); + public abstract JLabel getPassphraseLabel(); + public abstract JLabel getPrivateKeyFileLabel(); + public abstract javax.swing.JPanel getConnexionPanel(); + + public abstract java.awt.CardLayout getConnexionPanelLayout(); + + public abstract javax.swing.JPanel getAnonymousPanel(); + + public abstract javax.swing.JPanel getPasswordPanel(); + + public abstract javax.swing.JPanel getSshPanel(); + + public abstract javax.swing.JScrollPane getIdentityScroll(); public boolean isConfigValid() { return getHandler().isConfigValid(); } @@ -146,22 +135,28 @@ getHandler().doCheck(element); } + protected void changeAutheticationMode(VCSConnexionMode mode) { + getHandler().getModel().setConnexionMode(mode); + doCheck(Element.connexion); + //doCheck(Element.connexion); + } + protected void changePrivateKeyFile() { + //TODO add title in lutinutil :) File file = FileUtil.getFile(".*.pub$", _("lutinvcs.config.find.public.key")); if (file != null) { String path = file.getAbsolutePath(); - getServerPrivateKeyFile().setText(path.substring(0, path.length() - 4)); - doCheck(Element.privatekey); + getPrivateKeyFile().setText(path.substring(0, path.length() - 4)); + doCheck(Element.privateKeyFile); } } - protected void setColor(List<String> errors, String name, JComponent component) { - component.setForeground(errors.contains(name) ? Color.red : Color.black); + protected void generateKey() { + //TODO } - public void changeAutheticationMode(VCSConnexionMode mode) { - getHandler().getModel().setConnexionMode(mode); - doCheck(Element.connexion); + protected void testConnexion() { + //TODO } } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConfigUIHandler.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConfigUIHandler.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/handler/ConfigUIHandler.java 2008-04-16 20:46:32 UTC (rev 527) @@ -18,10 +18,12 @@ import org.codelutin.vcs.type.VCSConnexionMode; import org.codelutin.vcs.ui.ConfigUI; import org.codelutin.vcs.ui.ConfigUI.Element; +import static org.codelutin.vcs.ui.ConfigUI.Element.*; import org.codelutin.vcs.ui.model.ConfigUIModel; import org.codelutin.vcs.ui.util.AbstractUIHandler; import javax.swing.JComponent; +import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.text.JTextComponent; import java.awt.Color; @@ -34,15 +36,25 @@ /** @author chemit */ public class ConfigUIHandler extends AbstractUIHandler<ConfigUIModel, ConfigUI> { - protected List<String> errors; + protected List<Element> errors; public ConfigUIHandler(ConfigUI ui) { super(ui, new ConfigUIModel()); ui.setHandler(this); - errors = new ArrayList<String>(); + errors = new ArrayList<Element>(); } + public void init() { + super.init(); + ConfigUI ui = getUi(); + JPanel connexionPanel = ui.getConnexionPanel(); + connexionPanel.add(ui.getAnonymousPanel(), VCSConnexionMode.ANONYMOUS.name()); + connexionPanel.add(ui.getPasswordPanel(), VCSConnexionMode.PASSWORD.name()); + connexionPanel.add(ui.getSshPanel(), VCSConnexionMode.SSH.name()); + //getUi().pack(); + } + public void propertyChange(PropertyChangeEvent evt) { if (log.isDebugEnabled()) { log.debug(evt.getPropertyName() + " old:" + evt.getOldValue() + ", new:" + evt.getNewValue()); @@ -51,7 +63,7 @@ if (ConfigUIModel.CONFIG_PROPERTY_CHANGED.equals(action)) { // update ui with model values, - updateUI((ConfigUIModel) evt.getNewValue()); + populateUI((ConfigUIModel) evt.getNewValue()); doCheck(null); return; } @@ -69,41 +81,40 @@ throw new IllegalStateException("unimplemented property changed : " + evt + " for " + this); } - - public synchronized List<String> validateModel(Element element) { + public synchronized List<Element> validateModel(Element element) { errors.clear(); + ConfigUI ui = getUi(); if (element != null) { // compute modifed - setModified(element, getUi()); + setModified(element, ui); } - ConfigUI ui = getUi(); - // validate firstname + lastname + email (only if visible) - if (ui.getFirstname().isVisible()) { - checkData(ui.getFirstname(), "firstname"); - checkData(ui.getLastname(), "lastname"); - checkData(ui.getEmail(), "email"); + // validate firstname + lastname + email (only if required) + if (getModel().isShowIdentity()) { + checkData(ui.getFirstname(), firstname); + checkData(ui.getLastname(), lastname); + checkData(ui.getEmail(), email); } + switch (getModel().getMode()) { case ANONYMOUS: // nothing to validate break; case PASSWORD: // login + password not empty - checkData(ui.getServerLogin(), "login"); - checkData(ui.getServerPassword().getPassword().length == 0, "password"); + checkData(ui.getLogin(), login); + checkData(ui.getPassword().getPassword().length == 0, password); break; case SSH: // login + private key exists - checkData(ui.getServerLogin(), "login"); - String s = ui.getServerPrivateKeyFile().getText(); + checkData(ui.getSshLogin(), sshLogin); + String s = ui.getPrivateKeyFile().getText(); File file = new File(s); - checkData(s.isEmpty() || !file.exists(), "privatekey"); - checkData(errors.contains("login") || file.exists(), "generatekey"); - if (Element.nopassphrase.getValue(ui).equals("false")) { + checkData(s.isEmpty() || !file.exists(), privateKeyFile); + if (ui.getElementValue(nopassphrase).equals("false")) { // check it there is a pass-phrase - checkData(ui.getServerPassphrase().getPassword().length == 0, "passphrase"); + checkData(ui.getPassphrase().getPassword().length == 0, passphrase); } else { - errors.remove("passphrase"); + errors.remove(passphrase); } break; } @@ -113,30 +124,35 @@ public void setModified(Element element, ConfigUI ui) { boolean modify = false; ConfigUIModel model = getModel(); + + String value = ui.getElementValue(element); + switch (element) { - case connexion: modify = model.getMode() != model.getConfig().getMode(); break; case email: - modify = !model.getEmail().equals(element.getValue(ui)); + modify = !model.getEmail().equals(value); break; case firstname: - modify = !model.getFirstname().equals(element.getValue(ui)); + modify = !model.getFirstname().equals(value); break; case lastname: - modify = !model.getLasttname().equals(element.getValue(ui)); + modify = !model.getLasttname().equals(value); break; case login: - modify = !model.getConfig().getUserName().equals(element.getValue(ui)); + modify = !model.getConfig().getUserName().equals(value); break; + case sshLogin: + modify = !model.getConfig().getUserName().equals(value); + break; case nopassphrase: - boolean b = ui.getServerNoPassPhrase().isSelected(); + boolean b = ui.getNoPassPhrase().isSelected(); modify = (model.getConfig().getPassphrase() != null && !model.getConfig().getPassphrase().isEmpty()) == b; if (!b) { - model.removeModified(Element.passphrase); + model.removeModified(passphrase); } else { - char[] password = ui.getServerPassphrase().getPassword(); + char[] password = ui.getPassphrase().getPassword(); boolean modify2; if (model.getConfig().getPassphrase() == null || model.getConfig().getPassphrase().isEmpty()) { modify2 = password.length == 0; @@ -144,18 +160,18 @@ modify2 = model.getConfig().getPassphrase().equals(Arrays.toString(password)); } if (modify2) { - model.addModified(Element.passphrase); + model.addModified(passphrase); } } break; case password: - modify = !model.getConfig().getPassphrase().equals(Arrays.toString(ui.getServerPassword().getPassword())); + modify = !model.getConfig().getPassphrase().equals(Arrays.toString(ui.getPassword().getPassword())); break; - case privatekey: - modify = !model.getConfig().getKeyFile().getAbsolutePath().equals(element.getValue(ui)); + case privateKeyFile: + modify = !model.getConfig().getKeyFile().getAbsolutePath().equals(value); break; case passphrase: - modify = !model.getConfig().getPassphrase().equals(Arrays.toString(ui.getServerPassphrase().getPassword())); + modify = !model.getConfig().getPassphrase().equals(value); break; } if (modify) { @@ -166,99 +182,100 @@ } public void doCheck(Element element) { - List<String> errors = validateModel(element); + List<Element> errors = validateModel(element); updateUI(errors); } - public boolean isConfigValid() { - return errors.isEmpty() || (errors.size() == 1 && errors.contains("generatekey")); + return errors.isEmpty(); } public void reset() { getModel().reset(); } - protected void updateUI(ConfigUIModel configUIModel) { + protected void populateUI(ConfigUIModel model) { ConfigUI ui = getUi(); - VCSConnexionConfig config = configUIModel.getConfig(); - ui.getServerLogin().setText(config.getUserName()); - ui.getServerNoPassPhrase().setSelected(config.isNoPassPhrase()); - ui.getServerPrivateKeyFile().setText(config.getKeyFile() == null ? "" : config.getKeyFile().getAbsolutePath()); - ui.getServerPassword().setText(configUIModel.getMode() != VCSConnexionMode.PASSWORD || config.getPassphrase() == null ? "" : config.getPassphrase()); - ui.getServerPassphrase().setText(configUIModel.getMode() != VCSConnexionMode.SSH || config.getPassphrase() == null ? "" : config.getPassphrase()); - boolean showIdenty = configUIModel.isShowIdentity(); - getUi().getFirstnameLabel().setVisible(showIdenty); - getUi().getLastnameLabel().setVisible(showIdenty); - getUi().getEmailLabel().setVisible(showIdenty); - getUi().getFirstname().setVisible(showIdenty); - getUi().getLastname().setVisible(showIdenty); - getUi().getEmail().setVisible(showIdenty); + VCSConnexionConfig config = model.getConfig(); + switch (config.getMode()) { + case ANONYMOUS: + break; + case PASSWORD: + ui.getLogin().setText(config.getUserName()); + ui.getPassword().setText(config.getPassphrase() == null ? "" : config.getPassphrase()); + break; + case SSH: + ui.getSshLogin().setText(config.getUserName()); + ui.getNoPassPhrase().setSelected(config.isNoPassPhrase()); + ui.getPrivateKeyFile().setText(config.getKeyFile() == null ? "" : config.getKeyFile().getAbsolutePath()); + ui.getPassphrase().setText(config.getPassphrase() == null ? "" : config.getPassphrase()); + break; + } + boolean showIdenty = model.isShowIdentity(); + ui.getIdentityScroll().setVisible(showIdenty); if (showIdenty) { - getUi().getFirstname().setText(configUIModel.getFirstname()); - getUi().getLastname().setText(configUIModel.getLasttname()); - getUi().getEmail().setText(configUIModel.getEmail()); + getUi().getFirstname().setText(model.getFirstname()); + getUi().getLastname().setText(model.getLasttname()); + getUi().getEmail().setText(model.getEmail()); } } - protected void updateUI(VCSConnexionMode mode) { + protected void updateUI(final VCSConnexionMode mode) { ConfigUI ui = getUi(); + //getModel().removeModified(sshLogin, nopassphrase, passphrase, privateKeyFile, login, password); switch (mode) { case ANONYMOUS: - ui.getServerAuthenticationMethodAnonymous().setSelected(true); + ui.getConnexionModeAnonymous().setSelected(true); break; case PASSWORD: - ui.getServerAuthenticationMethodPassword().setSelected(true); - setModified(Element.login, ui); - setModified(Element.password, ui); + ui.getConnexionModePassword().setSelected(true); + setModified(login, ui); + setModified(password, ui); break; case SSH: - setModified(Element.login, ui); - setModified(Element.nopassphrase, ui); - setModified(Element.passphrase, ui); - setModified(Element.privatekey, ui); - ui.getServerAuthenticationMethodSsh().setSelected(true); + setModified(sshLogin, ui); + setModified(nopassphrase, ui); + setModified(passphrase, ui); + setModified(privateKeyFile, ui); + ui.getConnexionModeSsh().setSelected(true); break; } SwingUtilities.invokeLater(new Runnable() { public void run() { + getUi().getConnexionPanelLayout().show(getUi().getConnexionPanel(), mode.name()); getUi().pack(); } }); } - protected void updateUI(List<String> errors) { + protected void updateUI(List<Element> errors) { ConfigUI ui = getUi(); boolean valid = isConfigValid(); ui.getOk().setEnabled(valid && getModel().isModified()); ui.getTestConnection().setEnabled(valid); - - setColor(errors, "firstname", ui.getFirstnameLabel()); - setColor(errors, "lastname", ui.getLastnameLabel()); - setColor(errors, "email", ui.getEmailLabel()); - setColor(errors, "login", ui.getServerLoginLabel()); - setColor(errors, "password", ui.getServerPasswordLabel()); - setColor(errors, "passphrase", ui.getServerPassphraseLabel()); - setColor(errors, "privatekey", ui.getServerPrivateKeyFileLabel()); - if (getModel().getMode() == VCSConnexionMode.SSH) { - ui.getServerPrivateKeyGenerate().setEnabled(!errors.contains("generatekey")); + 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, String errorName) { + protected void checkData(JTextComponent component, Element errorName) { if (component.getText().isEmpty()) { errors.add(errorName); } } - protected void checkData(boolean notValid, String errorName) { + protected void checkData(boolean notValid, Element errorName) { if (notValid) { errors.add(errorName); } } - protected void setColor(List<String> errors, String name, JComponent component) { - component.setForeground(errors.contains(name) ? Color.red : Color.black); + 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() { @@ -266,7 +283,7 @@ log.warn("nothing to save"); } for (Element element : getModel().getModifieds()) { - String value = element.getValue(getUi()); + String value = getUi().getElementValue(element); getModel().save(element, value); log.info("save " + element); } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConfigUIModel.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConfigUIModel.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/model/ConfigUIModel.java 2008-04-16 20:46:32 UTC (rev 527) @@ -17,6 +17,13 @@ import org.codelutin.vcs.VCSConnexionConfig; import org.codelutin.vcs.type.VCSConnexionMode; import org.codelutin.vcs.ui.ConfigUI.Element; +import static org.codelutin.vcs.ui.ConfigUI.Element.connexion; +import static org.codelutin.vcs.ui.ConfigUI.Element.login; +import static org.codelutin.vcs.ui.ConfigUI.Element.nopassphrase; +import static org.codelutin.vcs.ui.ConfigUI.Element.passphrase; +import static org.codelutin.vcs.ui.ConfigUI.Element.password; +import static org.codelutin.vcs.ui.ConfigUI.Element.privateKeyFile; +import static org.codelutin.vcs.ui.ConfigUI.Element.sshLogin; import org.codelutin.vcs.ui.util.AbstractUIModel; import java.io.File; @@ -81,17 +88,18 @@ // nothing to clean break; case PASSWORD: - modifieds.remove(Element.login); - modifieds.remove(Element.password); + removeModified(login, password); break; case SSH: - modifieds.remove(Element.login); - modifieds.remove(Element.passphrase); - modifieds.remove(Element.nopassphrase); - modifieds.remove(Element.privatekey); + removeModified(sshLogin, passphrase, nopassphrase, privateKeyFile); break; } } + if (mode == getConfig().getMode()) { + removeModified(connexion); + } else { + addModified(connexion); + } firePropertyChange(MODE_PROPERTY_CHANGED, oldMode, mode); } @@ -132,15 +140,19 @@ public void addModified(Element elementname) { if (!modifieds.contains(elementname)) { modifieds.add(elementname); - setModified(true); + } + setModified(!modifieds.isEmpty()); } - public void removeModified(Element elementname) { - if (modifieds.contains(elementname)) { - modifieds.remove(elementname); + public void removeModified(Element... elementnames) { + for (Element elementname : elementnames) { + if (modifieds.contains(elementname)) { + modifieds.remove(elementname); + } + setModified(!modifieds.isEmpty()); } - setModified(!modifieds.isEmpty()); + } public void setModified(boolean modified) { @@ -181,7 +193,7 @@ config.setPassPhrase(value); } break; - case privatekey: + case privateKeyFile: if (mode == VCSConnexionMode.SSH) { config.setKeyFile(new File(value)); } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractBasicUI.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractBasicUI.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractBasicUI.java 2008-04-16 20:46:32 UTC (rev 527) @@ -24,8 +24,4 @@ public abstract JTable getContentTable(); - protected AbstractBasicUI() { - super(); - } - } \ No newline at end of file Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUI.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUI.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUI.java 2008-04-16 20:46:32 UTC (rev 527) @@ -19,16 +19,23 @@ import javax.swing.AbstractAction; import javax.swing.AbstractButton; +import javax.swing.JDialog; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; -/** @author chemit */ -public abstract class AbstractUI<H extends AbstractUIHandler> extends javax.swing.JDialog implements WindowListener { +/** + * A abstract dialog contract to be realised by a dialog + * <p/> + * TODO : make jaxx authorized implementing interface for root tag :) + * + * @author chemit + */ +public abstract class AbstractUI<H extends AbstractUIHandler> extends JDialog implements WindowListener { + private H handler; + public abstract AbstractButton getHelp(); - private H handler; - protected AbstractUI() { UIHelper.setQuitAction(this); addWindowListener(this); Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIHandler.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIHandler.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIHandler.java 2008-04-16 20:46:32 UTC (rev 527) @@ -19,7 +19,11 @@ import java.beans.PropertyChangeListener; -/** @author chemit */ +/** + * TODO Move this classe in jaxx + * + * @author chemit + */ public abstract class AbstractUIHandler<M extends AbstractUIModel, U extends AbstractUI<? extends AbstractUIHandler>> implements PropertyChangeListener { protected static Log log = LogFactory.getLog(AbstractUIHandler.class); @@ -52,5 +56,5 @@ public void dispose() { model.removePropertyChangeListener(this); - } + } } Modified: trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIModel.java =================================================================== --- trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIModel.java 2008-04-16 20:40:48 UTC (rev 526) +++ trunk/lutinvcs/ui/common/src/main/java/org/codelutin/vcs/ui/util/AbstractUIModel.java 2008-04-16 20:46:32 UTC (rev 527) @@ -21,6 +21,7 @@ import java.beans.PropertyChangeSupport; /** + * TODO Move this classe in jaxx * Abstract ui model, with property change support. * * @author chemit
participants (1)
-
tchemit@users.labs.libre-entreprise.org