[ 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()))
{
Object newValue = getValue();
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);
super.fireValueChange(changeEvent);
oldValue = newValue;
if (isValueChange(newValue)) {
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);
super.fireValueChange(changeEvent);
oldValue = newValue;
}
}
else if (Events.ON_BLUR.equalsIgnoreCase(event.getName()))
{
@ -296,13 +298,19 @@ ContextMenuListener, IZoomableEditor
if (item.getLabel().equals(""))
{
Object newValue = getValue();
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);
super.fireValueChange(changeEvent);
oldValue = newValue;
if (isValueChange(newValue)) {
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), 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()
{