private void postProcessChangeVO( ChangeVO change, int windowNo, Map<String, String> context, String[] dataRow, UITab tab) { // make an updated context to get the necessary listboxvos Map<String, String> contextAfterUpdate = new HashMap<String, String>(context); int j = 0; for (UIField field : tab.getFields()) { contextAfterUpdate.put(field.getColumnName(), dataRow[j]); j++; } // now change rowData to remove password, and reload the changed // listboxes j = 0; for (UIField field : tab.getFields()) { // return an empty string for passwords etc if (field.isEncryptedField() || field.isEncryptedColumn() || "Password".equals(field.getColumnName())) change.rowData[j] = ""; if (FieldType.isClientLookup(field.getAD_Reference_ID()) && field.isDependentValue()) { if (change.changedDropDowns == null) change.changedDropDowns = new HashMap<String, ArrayList<NamePair>>(); ArrayList<NamePair> values; if (field.getAD_Reference_ID() == DisplayTypeConstants.Search) { ArrayList<String> t = new ArrayList<String>(1); t.add(context.get(field.getColumnName())); values = getLookupValueDirect(field.getAD_Field_ID(), t, true); } else values = getLookupData(windowNo, field.getAD_Field_ID(), context, true); change.changedDropDowns.put(field.getColumnName(), values); } j++; } }