[ 2656713 ] List editor fire redundant ValueChange event

This commit is contained in:
Heng Sin Low 2009-03-03 09:26:06 +00:00
parent 1b55b59f68
commit 33c2f1ee70
1 changed files with 14 additions and 6 deletions

View File

@ -279,9 +279,11 @@ ContextMenuListener, IZoomableEditor
if (Events.ON_SELECT.equalsIgnoreCase(event.getName())) if (Events.ON_SELECT.equalsIgnoreCase(event.getName()))
{ {
Object newValue = getValue(); Object newValue = getValue();
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue); if (isValueChange(newValue)) {
super.fireValueChange(changeEvent); ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);
oldValue = newValue; super.fireValueChange(changeEvent);
oldValue = newValue;
}
} }
else if (Events.ON_BLUR.equalsIgnoreCase(event.getName())) else if (Events.ON_BLUR.equalsIgnoreCase(event.getName()))
{ {
@ -296,13 +298,19 @@ ContextMenuListener, IZoomableEditor
if (item.getLabel().equals("")) if (item.getLabel().equals(""))
{ {
Object newValue = getValue(); Object newValue = getValue();
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue); if (isValueChange(newValue)) {
super.fireValueChange(changeEvent); ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);
oldValue = newValue; super.fireValueChange(changeEvent);
oldValue = newValue;
}
} }
} }
} }
} }
private boolean isValueChange(Object newValue) {
return (oldValue == null && newValue != null) || (oldValue != null && newValue == null) || (!oldValue.equals(newValue));
}
public String[] getEvents() public String[] getEvents()
{ {