Author: tchemit Date: 2010-03-24 01:38:41 +0100 (Wed, 24 Mar 2010) New Revision: 1803 Log: add cleanValidators method + reformat code Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageListModel.java trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageListModel.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageListModel.java 2010-03-23 11:08:43 UTC (rev 1802) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageListModel.java 2010-03-24 00:38:41 UTC (rev 1803) @@ -175,9 +175,9 @@ for (int i = getSize() - 1; i > -1; i--) { SwingValidatorMessage error = data.get(i); - if (error.getValidator() == validator && + if (error.getValidator().equals(validator) && error.getScope() == scope && - error.getField() == field && + error.getField().equals(field) && messagesToDel.contains(error.getMessage())) { // remove the message data.remove(i); Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java 2010-03-23 11:08:43 UTC (rev 1802) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/swing/SwingValidatorMessageTableModel.java 2010-03-24 00:38:41 UTC (rev 1803) @@ -50,7 +50,7 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ private static Log log = - LogFactory.getLog(SwingValidatorMessageTableMouseListener.class); + LogFactory.getLog(SwingValidatorMessageTableModel.class); public static final String[] columnNames = {"validator.scope", "validator.field", "validator.message"}; @@ -110,12 +110,16 @@ public void removeMessages(JComponent editor, BeanValidatorScope scope) { + if (editor==null) { + // no editor, so nothing to do + return; + } // do it in reverse mode (only one pass in that way since index // will stay coherent while removing them) for (int i = getRowCount() - 1; i > -1; i--) { SwingValidatorMessage error = data.get(i); - if (error.getEditor() == editor && + if (editor.equals(error.getEditor()) && (scope == null || error.getScope() == scope)) { // remove the message data.remove(i); @@ -152,6 +156,13 @@ } } + public void clearValidators() { + for (SwingValidator<?> v : validators) { + v.removeBeanValidatorListener(this); + } + validators.clear(); + } + /** * Obtain the message for a given row. * @@ -378,7 +389,7 @@ for (int i = getRowCount() - 1; i > -1; i--) { SwingValidatorMessage error = data.get(i); - if (error.getValidator() == validator && + if (error.getValidator().equals(validator) && error.getScope() == scope && error.getFieldName().equals(field.getName()) && messagesToDel.contains(error.getMessage())) { @@ -405,7 +416,7 @@ for (int i = getRowCount() - 1; i > -1; i--) { SwingValidatorMessage error = data.get(i); - if (error.getValidator() == validator && + if (error.getValidator().equals(validator) && error.getScope() == scope && error.getFieldName().equals(fieldName) && messagesToDel.contains(error.getMessage())) { @@ -428,7 +439,7 @@ for (int i = getRowCount() - 1; i > -1; i--) { SwingValidatorMessage error = data.get(i); - if (error.getEditor() == editor && + if (error.getEditor().equals(editor) && (scope == null || error.getScope() == scope) && error.getFieldName().equals(fieldName)) { // remove the message