IDEMPIERE-3667 Callouts not working properly in Quick Entry Windows
This commit is contained in:
parent
47f3ce46b9
commit
e3769972ee
|
@ -18,7 +18,6 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.base.Core;
|
|
||||||
import org.adempiere.webui.ClientInfo;
|
import org.adempiere.webui.ClientInfo;
|
||||||
import org.adempiere.webui.component.ConfirmPanel;
|
import org.adempiere.webui.component.ConfirmPanel;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
|
@ -34,6 +33,7 @@ import org.adempiere.webui.util.ZKUpdateUtil;
|
||||||
import org.adempiere.webui.window.FDialog;
|
import org.adempiere.webui.window.FDialog;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
import org.compiere.model.GridTab;
|
import org.compiere.model.GridTab;
|
||||||
|
import org.compiere.model.GridTable;
|
||||||
import org.compiere.model.GridWindow;
|
import org.compiere.model.GridWindow;
|
||||||
import org.compiere.model.MField;
|
import org.compiere.model.MField;
|
||||||
import org.compiere.model.MLookup;
|
import org.compiere.model.MLookup;
|
||||||
|
@ -66,7 +66,7 @@ public class WQuickEntry extends Window implements EventListener<Event>, ValueCh
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -8530102231615195037L;
|
private static final long serialVersionUID = -1397302187339942732L;
|
||||||
|
|
||||||
public static final String QUICK_ENTRY_MODE = "_QUICK_ENTRY_MODE_";
|
public static final String QUICK_ENTRY_MODE = "_QUICK_ENTRY_MODE_";
|
||||||
public static final String QUICK_ENTRY_CALLER_WINDOW = "_QUICK_ENTRY_CALLER_WINDOW_";
|
public static final String QUICK_ENTRY_CALLER_WINDOW = "_QUICK_ENTRY_CALLER_WINDOW_";
|
||||||
|
@ -532,12 +532,16 @@ public class WQuickEntry extends Window implements EventListener<Event>, ValueCh
|
||||||
WEditor editor = quickEditors.get(idx);
|
WEditor editor = quickEditors.get(idx);
|
||||||
GridTab gridTab = field.getGridTab();
|
GridTab gridTab = field.getGridTab();
|
||||||
String columnName = field.getColumnName();
|
String columnName = field.getColumnName();
|
||||||
|
GridTable mTable = gridTab.getTableModel();
|
||||||
|
int row = gridTab.getCurrentRow();
|
||||||
|
int col = mTable.findColumn(columnName);
|
||||||
// process dependencies and callouts for the changed field
|
// process dependencies and callouts for the changed field
|
||||||
if (evt.getSource() instanceof WLocationEditor && evt.getNewValue() == null && editor.getValue() != null) {
|
if (evt.getSource() instanceof WLocationEditor && evt.getNewValue() == null && editor.getValue() != null) {
|
||||||
// ignore first call of WLocationEditor valuechange set to null
|
// ignore first call of WLocationEditor valuechange set to null
|
||||||
// it will be called later with correct value
|
// it will be called later with correct value
|
||||||
// see WLocationEditor firing twice ValueChangeEvent (first with null and then with value)
|
// see WLocationEditor firing twice ValueChangeEvent (first with null and then with value)
|
||||||
} else {
|
} else {
|
||||||
|
mTable.setValueAt(evt.getNewValue(), row, col);
|
||||||
field.setValue(evt.getNewValue(), field.getGridTab().getTableModel().isInserting());
|
field.setValue(evt.getNewValue(), field.getGridTab().getTableModel().isInserting());
|
||||||
gridTab.processFieldChange(field);
|
gridTab.processFieldChange(field);
|
||||||
}
|
}
|
||||||
|
@ -555,12 +559,8 @@ public class WQuickEntry extends Window implements EventListener<Event>, ValueCh
|
||||||
mLookup.refresh();
|
mLookup.refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // for all dependent fields
|
|
||||||
if ( dependants.size() > 0
|
|
||||||
|| field.getCallout().length() > 0
|
|
||||||
|| Core.findCallout(gridTab.getTableName(), columnName).size() > 0) {
|
|
||||||
dynamicDisplay();
|
|
||||||
}
|
}
|
||||||
|
dynamicDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -572,8 +572,13 @@ public class WQuickEntry extends Window implements EventListener<Event>, ValueCh
|
||||||
{
|
{
|
||||||
for (int idxf = 0; idxf < quickFields.size(); idxf++) {
|
for (int idxf = 0; idxf < quickFields.size(); idxf++) {
|
||||||
GridField field = quickFields.get(idxf);
|
GridField field = quickFields.get(idxf);
|
||||||
|
GridTab gridTab = field.getGridTab();
|
||||||
|
String columnName = field.getColumnName();
|
||||||
|
GridTable mTable = gridTab.getTableModel();
|
||||||
|
int row = gridTab.getCurrentRow();
|
||||||
|
int col = mTable.findColumn(columnName);
|
||||||
WEditor editor = quickEditors.get(idxf);
|
WEditor editor = quickEditors.get(idxf);
|
||||||
editor.setValue(field.getValue());
|
editor.setValue(mTable.getValueAt(row, col)); //In case a callout changed the value and it is not reflected in field yet
|
||||||
editor.setReadWrite(field.isEditable(true));
|
editor.setReadWrite(field.isEditable(true));
|
||||||
editor.setVisible(field.isDisplayed(true));
|
editor.setVisible(field.isDisplayed(true));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue