Viewing Issue Advanced Details

ID 0003724 Category [DMDirc] *Unsorted Severity minor
Reproducibility always Date Submitted 2010-02-03 04:53 Last Update 2010-03-06 21:32
Reporter MD87 Assigned To Greboid View Status public
Priority normal Status closed Resolution fixed
Platform Fixed in Version Target Version 0.6.3
Product Version Product Build
Summary 0003724: AED shows validation error on name when editing an existing action
Description
AED shows validation error on name when editing an existing action
Needs unit test no
Upstream Bug URL

Relationships

Notes

A patchset (1) related to this change has been added to gerrit by Gregory Holmes

Fixes issue 3724: AED shows validation error on name when editing an existing
action

Change-Id: Ie1ac0a8eb2c05403f4a926479f85cf79e85b8203

A patchset (1) related to this change has been added to gerrit by Gregory Holmes

Fixes issue 3724: AED shows validation error on name when editing an existing
action

Change-Id: I36585648b134f38def4c641ed1218da517221495
authorGregory Holmes <greg@dmdirc.com>2010-02-03 19:08:26 (GMT)
committer Shane Mc Cormack <shane@dmdirc.com>2010-02-04 22:37:59 (GMT)
commitae60dbd2407664ad048267681cfe14d152dff19f (patch) (side-by-side diff)
Fixes issue 3724: AED shows validation error on name when editing an existing action
Change-Id: I36585648b134f38def4c641ed1218da517221495 Reviewed-on: http://gerrit.dmdirc.com/846 Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com> Reviewed-by: Shane Mc Cormack <shane@dmdirc.com>
-rw-r--r--src/com/dmdirc/config/prefs/validator/ActionNameValidator.java16
1 files changed, 15 insertions, 1 deletions
Click to Expand/Collapse
diff src/com/dmdirc/config/prefs/validator/ActionNameValidator.java
@@ -38,6 +38,8 @@ public class ActionNameValidator implements Validator<String> {
private static final String FAILURE_EXISTS = "Name must not already exist.";
/** Associated action group. */
private final ActionGroup group;
+ /** Original name. */
+ private final String originalName;
/**
* Instantiates a new action name validator.
@@ -45,7 +47,19 @@ public class ActionNameValidator implements Validator<String> {
* @param group Associated action group
*/
public ActionNameValidator(final ActionGroup group) {
+ this (group, "");
+ }
+
+ /**
+ * Instantiates a new action name validator for an existing action.
+ *
+ * @param group Associated action group
+ * @param originalName Existing action name
+ */
+ public ActionNameValidator(final ActionGroup group,
+ final String originalName) {
this.group = group;
+ this.originalName = originalName;
}
/** {@inheritDoc} */
@@ -53,7 +67,7 @@ public class ActionNameValidator implements Validator<String> {
public ValidationResponse validate(final String object) {
final List<Action> actions = group.getActions();
for (Action action : actions) {
- if (action.getName().equals(object)) {
+ if (action.getName().equals(object) && !action.getName().equals(originalName)) {
return new ValidationResponse(FAILURE_EXISTS);
}
}
authorGregory Holmes <greg@dmdirc.com>2010-02-03 17:14:55 (GMT)
commit732bbc91a94d97fbf8019baad707ef6456ea0591 (patch) (side-by-side diff)
Fixes issue 3724: AED shows validation error on name when editing an existing action
Change-Id: Ie1ac0a8eb2c05403f4a926479f85cf79e85b8203 Reviewed-on: http://gerrit.dmdirc.com/845 Reviewed-by: Shane Mc Cormack <shane@dmdirc.com> Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com>
-rw-r--r--src/com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.java10
-rw-r--r--src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.java26
2 files changed, 27 insertions, 9 deletions
Click to Expand/Collapse
diff src/com/dmdirc/addons/ui_swing/components/validating/ValidatingJTextField.java
@@ -94,6 +94,16 @@ public class ValidatingJTextField extends JComponent implements DocumentListener
}
/**
+ * Updates the validator for this textfield.
+ *
+ * @param validator new validator
+ */
+ public void setValidator(final Validator<String> validator) {
+ this.validator = validator;
+ checkError();
+ }
+
+ /**
* Checks the text for errors and sets the error state accordingly.
*/
public void checkError() {
Click to Expand/Collapse
diff src/com/dmdirc/addons/ui_swing/dialogs/actioneditor/ActionNamePanel.java
@@ -52,7 +52,7 @@ public class ActionNamePanel extends JPanel implements PropertyChangeListener {
*/
private static final long serialVersionUID = 1;
/** Original name. */
- private final String originalName;
+ private String existingName;
/** Action name field. */
private ValidatingJTextField name;
/** Action group. */
@@ -77,9 +77,9 @@ public class ActionNamePanel extends JPanel implements PropertyChangeListener {
super();
if (name == null) {
- this.originalName = "";
+ this.existingName = "";
} else {
- this.originalName = name;
+ this.existingName = name;
}
this.group = ActionManager.getGroup(group);
@@ -92,10 +92,18 @@ public class ActionNamePanel extends JPanel implements PropertyChangeListener {
/**
* Sets the action name.
*
- * @param name new name
+ * @param newName new name
*/
- void setActionName(final String name) {
- this.name.setText(name);
+ @SuppressWarnings("unchecked")
+ void setActionName(final String newName) {
+ if (newName == null) {
+ this.existingName = "";
+ } else {
+ this.existingName = newName;
+ }
+ name.setValidator(new ValidatorChain<String>(new FileNameValidator(),
+ new ActionNameValidator(group, existingName)));
+ this.name.setText(newName);
}
/** Validates the name. */
@@ -106,9 +114,9 @@ public class ActionNamePanel extends JPanel implements PropertyChangeListener {
/** Initialises the components. */
@SuppressWarnings("unchecked")
private void initComponents() {
- name = new ValidatingJTextField(new JTextField(originalName),
+ name = new ValidatingJTextField(new JTextField(existingName),
new ValidatorChain<String>(new FileNameValidator(),
- new ActionNameValidator(group)));
+ new ActionNameValidator(group, existingName)));
}
/** Adds the listeners. */
@@ -134,7 +142,7 @@ public class ActionNamePanel extends JPanel implements PropertyChangeListener {
*/
public boolean hasNameChanged() {
- return getActionName().equals(originalName);
+ return getActionName().equals(existingName);
}
/**

Issue History

Date Modified Username Field Change
2010-02-03 04:53 MD87 New Issue
2010-02-03 04:53 MD87 Status new => assigned
2010-02-03 04:53 MD87 Assigned To => Greboid
2010-02-03 17:15 Version Control Checkin
2010-02-03 17:15 Version Control Note Added: 0009722
2010-02-03 17:15 Version Control Status assigned => fix pending
2010-02-03 19:09 Version Control Checkin
2010-02-03 19:09 Version Control Note Added: 0009725
2010-02-04 22:38 Greboid Checkin
2010-02-04 22:38 Greboid Note Added: 0009737
2010-02-04 22:38 Greboid Status fix pending => resolved
2010-02-04 22:38 Greboid Resolution open => fixed
2010-02-04 22:45 Greboid Checkin
2010-02-04 22:45 Greboid Note Added: 0009742
2010-03-06 21:32 Greboid Status resolved => closed