IDEMPIERE-691 Zk Combobox: Navigation using arrow key is broken.

This commit is contained in:
Heng Sin Low 2013-03-06 17:02:46 +08:00
parent 7cbf260bf9
commit c7d4c612bb
1 changed files with 17 additions and 6 deletions

View File

@ -87,6 +87,8 @@ ContextMenuListener, IZoomableEditor
private CCacheListener tableCacheListener; private CCacheListener tableCacheListener;
private boolean onselecting = false;
public WTableDirEditor(GridField gridField) public WTableDirEditor(GridField gridField)
{ {
super(new EditorCombobox(), gridField); super(new EditorCombobox(), gridField);
@ -247,6 +249,10 @@ ContextMenuListener, IZoomableEditor
public void setValue(Object value) public void setValue(Object value)
{ {
if (onselecting) {
return;
}
if (value != null && (value instanceof Integer || value instanceof String)) if (value != null && (value instanceof Integer || value instanceof String))
{ {
@ -373,12 +379,17 @@ ContextMenuListener, IZoomableEditor
{ {
if (Events.ON_SELECT.equalsIgnoreCase(event.getName())) if (Events.ON_SELECT.equalsIgnoreCase(event.getName()))
{ {
try {
onselecting = true;
Object newValue = getValue(); Object newValue = getValue();
if (isValueChange(newValue)) { if (isValueChange(newValue)) {
ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue); ValueChangeEvent changeEvent = new ValueChangeEvent(this, this.getColumnName(), oldValue, newValue);
super.fireValueChange(changeEvent); super.fireValueChange(changeEvent);
oldValue = newValue; oldValue = newValue;
} }
} finally {
onselecting = false;
}
} }
else if (Events.ON_BLUR.equalsIgnoreCase(event.getName())) else if (Events.ON_BLUR.equalsIgnoreCase(event.getName()))
{ {