r1092 - in lutinjaxx/trunk/jaxx-core: . src/main/java/jaxx/runtime src/main/java/jaxx/runtime/swing src/main/java/jaxx/runtime/validator
Author: tchemit Date: 2008-12-27 14:19:59 +0000 (Sat, 27 Dec 2008) New Revision: 1092 Modified: lutinjaxx/trunk/jaxx-core/changelog.txt lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/Util.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/Utils.java lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/validator/ErrorTableMouseListener.java Log: add PCS on ValidatorErrorTable to be used by table validation Modified: lutinjaxx/trunk/jaxx-core/changelog.txt =================================================================== --- lutinjaxx/trunk/jaxx-core/changelog.txt 2008-12-23 10:35:41 UTC (rev 1091) +++ lutinjaxx/trunk/jaxx-core/changelog.txt 2008-12-27 14:19:59 UTC (rev 1092) @@ -1,4 +1,5 @@ 0.8 ??? 2009???? + * 20081227 [chemit] - add PCS on ValidatorErrorTable to be used by table validation * 20081218 [chemit] - improve generation of methods * 20081214 [chemit] - can now in validation, put error with args (all args must be separated by a ##) - improve event naming : replace the $evXXX by doMEthodName__on__field (except with optimize option) Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/Util.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/Util.java 2008-12-23 10:35:41 UTC (rev 1091) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/Util.java 2008-12-27 14:19:59 UTC (rev 1092) @@ -415,6 +415,17 @@ table.addMouseListener(new ErrorTableMouseListener()); } + public static ErrorTableMouseListener getErrorTableMouseListener(JTable table) { + if (table != null) { + for (MouseListener listener : table.getMouseListeners()) { + if (listener instanceof ErrorTableMouseListener) { + return (ErrorTableMouseListener) listener; + } + } + } + return null; + } + /** * Compute the string representation of an object. * <p/> Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/Utils.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/Utils.java 2008-12-23 10:35:41 UTC (rev 1091) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/swing/Utils.java 2008-12-27 14:19:59 UTC (rev 1092) @@ -126,4 +126,7 @@ column.setCellRenderer(editor); } + public static void setI18nTableHeaderRenderer(JTable table, String... libelles) { + table.getTableHeader().setDefaultRenderer(new I18nTableCellRenderer(table.getTableHeader().getDefaultRenderer(), libelles)); + } } Modified: lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/validator/ErrorTableMouseListener.java =================================================================== --- lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/validator/ErrorTableMouseListener.java 2008-12-23 10:35:41 UTC (rev 1091) +++ lutinjaxx/trunk/jaxx-core/src/main/java/jaxx/runtime/validator/ErrorTableMouseListener.java 2008-12-27 14:19:59 UTC (rev 1092) @@ -7,6 +7,8 @@ import javax.swing.JTable; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; /** * A mouse listener to put on a {@link javax.swing.JList} with a {@link jaxx.runtime.validator.BeanValidatorErrorListModel} as a model. @@ -18,8 +20,17 @@ public class ErrorTableMouseListener extends MouseAdapter { /** to use log facility, just put in your code: log.info(\"...\"); */ - static private Log log = LogFactory.getLog(ErrorTableMouseListener.class); + private static Log log = LogFactory.getLog(ErrorTableMouseListener.class); + public static final String HIGHLIGHT_ERROR_PROPERTY = "highlightError"; + + /** delgate property change support */ + protected PropertyChangeSupport pcs; + + public ErrorTableMouseListener() { + pcs = new PropertyChangeSupport(this); + } + @Override public void mouseClicked(MouseEvent e) { super.mouseClicked(e); @@ -32,7 +43,10 @@ } JComponent component = entry.getComponent(); if (component != null) { - component.requestFocus(); + pcs.firePropertyChange(HIGHLIGHT_ERROR_PROPERTY, null, entry.getError()); + if (component.isVisible()) { + component.requestFocus(); + } } } } @@ -59,4 +73,20 @@ return entry; } + public void addPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(listener); + } + + public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { + pcs.removePropertyChangeListener(propertyName, listener); + } + } \ No newline at end of file
participants (1)
-
tchemit@users.labs.libre-entreprise.org