IDEMPIERE-5923 Info Window should use key and display columns setting from lookup (#2108)
This commit is contained in:
parent
ce48a8835e
commit
6f484ee701
|
@ -56,6 +56,13 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, null, null);
|
value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InfoPanel create(int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection,
|
||||||
|
String whereClause, int AD_InfoWindow_ID, Lookup lookup) {
|
||||||
|
return create(WindowNo, tableName, keyColumn,
|
||||||
|
value, multiSelection, whereClause, AD_InfoWindow_ID, (lookup != null), null, null, lookup);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InfoPanel create(int WindowNo, String tableName, String keyColumn,
|
public InfoPanel create(int WindowNo, String tableName, String keyColumn,
|
||||||
String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field) {
|
String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field) {
|
||||||
|
@ -76,20 +83,40 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
* @param predefinedContextVariables
|
* @param predefinedContextVariables
|
||||||
* @param field
|
* @param field
|
||||||
* @return InfoPanel
|
* @return InfoPanel
|
||||||
*/
|
*/
|
||||||
public InfoPanel create(int WindowNo, String tableName, String keyColumn,
|
public InfoPanel create(int WindowNo, String tableName, String keyColumn,
|
||||||
String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, String predefinedContextVariables, GridField field) {
|
String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, String predefinedContextVariables, GridField field) {
|
||||||
|
return create(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, predefinedContextVariables, field,
|
||||||
|
(field != null ? field.getLookup() : null));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param value
|
||||||
|
* @param multiSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param field
|
||||||
|
* @param lookupModel
|
||||||
|
* @return InfoPanel
|
||||||
|
*/
|
||||||
|
public InfoPanel create(int WindowNo, String tableName, String keyColumn,
|
||||||
|
String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, String predefinedContextVariables, GridField field, Lookup lookupModel) {
|
||||||
InfoPanel info = null;
|
InfoPanel info = null;
|
||||||
setSOTrxBasedOnDocType(WindowNo);
|
setSOTrxBasedOnDocType(WindowNo);
|
||||||
|
|
||||||
if (tableName.equals("C_BPartner")) {
|
if (tableName.equals("C_BPartner")) {
|
||||||
info = new InfoBPartnerWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoBPartnerWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoBPartnerPanel (value,WindowNo, !Env.getContext(Env.getCtx(), WindowNo, "IsSOTrx").equals("N"),
|
info = new InfoBPartnerPanel (value,WindowNo, !Env.getContext(Env.getCtx(), WindowNo, "IsSOTrx").equals("N"),
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else if (tableName.equals("M_Product")) {
|
} else if (tableName.equals("M_Product")) {
|
||||||
info = new InfoProductWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoProductWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoProductPanel ( WindowNo,
|
info = new InfoProductPanel ( WindowNo,
|
||||||
Env.getContextAsInt(Env.getCtx(), WindowNo, "M_Warehouse_ID"),
|
Env.getContextAsInt(Env.getCtx(), WindowNo, "M_Warehouse_ID"),
|
||||||
|
@ -97,31 +124,31 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
multiSelection, value,whereClause, lookup);
|
multiSelection, value,whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else if (tableName.equals("C_Invoice")) {
|
} else if (tableName.equals("C_Invoice")) {
|
||||||
info = new InfoInvoiceWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoInvoiceWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoInvoicePanel ( WindowNo, value,
|
info = new InfoInvoicePanel ( WindowNo, value,
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else if (tableName.equals("A_Asset")) {
|
} else if (tableName.equals("A_Asset")) {
|
||||||
info = new InfoAssetWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoAssetWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoAssetPanel (WindowNo, 0, value,
|
info = new InfoAssetPanel (WindowNo, 0, value,
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else if (tableName.equals("C_Order")) {
|
} else if (tableName.equals("C_Order")) {
|
||||||
info = new InfoOrderWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoOrderWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoOrderPanel ( WindowNo, value,
|
info = new InfoOrderPanel ( WindowNo, value,
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else if (tableName.equals("M_InOut")) {
|
} else if (tableName.equals("M_InOut")) {
|
||||||
info = new InfoInOutWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoInOutWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoInOutPanel (WindowNo, value,
|
info = new InfoInOutPanel (WindowNo, value,
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else if (tableName.equals("C_Payment")) {
|
} else if (tableName.equals("C_Payment")) {
|
||||||
info = new InfoPaymentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoPaymentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoPaymentPanel (WindowNo, value, multiSelection, whereClause, lookup);
|
info = new InfoPaymentPanel (WindowNo, value, multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
|
@ -129,13 +156,13 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
info = new InfoCashLinePanel (WindowNo, value,
|
info = new InfoCashLinePanel (WindowNo, value,
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
} else if (tableName.equals("S_ResourceAssignment")) {
|
} else if (tableName.equals("S_ResourceAssignment")) {
|
||||||
info = new InfoAssignmentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoAssignmentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoAssignmentPanel (WindowNo, value,
|
info = new InfoAssignmentPanel (WindowNo, value,
|
||||||
multiSelection, whereClause, lookup);
|
multiSelection, whereClause, lookup);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
info = new InfoWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
info = new InfoWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables, lookupModel);
|
||||||
if (!info.loadedOK()) {
|
if (!info.loadedOK()) {
|
||||||
info = new InfoGeneralPanel (value, WindowNo,
|
info = new InfoGeneralPanel (value, WindowNo,
|
||||||
tableName, keyColumn,
|
tableName, keyColumn,
|
||||||
|
@ -164,7 +191,7 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
|
|
||||||
if (col.equals("M_Product_ID"))
|
if (col.equals("M_Product_ID"))
|
||||||
{
|
{
|
||||||
InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field);
|
InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field, null, lookup);
|
||||||
if (infoWindow.loadedOK())
|
if (infoWindow.loadedOK())
|
||||||
return infoWindow;
|
return infoWindow;
|
||||||
|
|
||||||
|
@ -195,7 +222,7 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
String tempIsSOTrx = ("Y".equals(originalIsSOTrx) ? "N" : "Y");
|
String tempIsSOTrx = ("Y".equals(originalIsSOTrx) ? "N" : "Y");
|
||||||
Env.setContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx", tempIsSOTrx);
|
Env.setContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx", tempIsSOTrx);
|
||||||
}
|
}
|
||||||
InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field);
|
InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field, null, lookup);
|
||||||
if (infoWindow.loadedOK())
|
if (infoWindow.loadedOK())
|
||||||
return infoWindow;
|
return infoWindow;
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -213,7 +240,7 @@ public class DefaultInfoFactory implements IInfoFactory {
|
||||||
}
|
}
|
||||||
else // General Info
|
else // General Info
|
||||||
{
|
{
|
||||||
info = create(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field);
|
info = create(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, (String)null, field, lookup);
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,22 @@ public interface IInfoFactory {
|
||||||
public InfoPanel create (int WindowNo,
|
public InfoPanel create (int WindowNo,
|
||||||
String tableName, String keyColumn, String value,
|
String tableName, String keyColumn, String value,
|
||||||
boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup);
|
boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param value
|
||||||
|
* @param multiSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @return {@link InfoPanel}
|
||||||
|
*/
|
||||||
|
public InfoPanel create (int WindowNo,
|
||||||
|
String tableName, String keyColumn, String value,
|
||||||
|
boolean multiSelection, String whereClause, int AD_InfoWindow_ID, Lookup lookup);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
import org.compiere.model.MAsset;
|
import org.compiere.model.MAsset;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
@ -91,6 +92,26 @@ public class InfoAssetWindow extends InfoWindow {
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoAssetWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveSelectionDetail() {
|
protected void saveSelectionDetail() {
|
||||||
int row = contentPanel.getSelectedRow();
|
int row = contentPanel.getSelectedRow();
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Info window for S_ResourceAssignment
|
* Info window for S_ResourceAssignment
|
||||||
|
@ -89,4 +90,25 @@ public class InfoAssignmentWindow extends InfoWindow {
|
||||||
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection,
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection,
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoAssignmentWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.webui.panel.InvoiceHistory;
|
import org.adempiere.webui.panel.InvoiceHistory;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
import org.compiere.model.MBPartner;
|
import org.compiere.model.MBPartner;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
@ -95,6 +96,26 @@ public class InfoBPartnerWindow extends InfoWindow {
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoBPartnerWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Has History
|
* Has History
|
||||||
* @return true
|
* @return true
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Info window for M_InOut
|
* Info window for M_InOut
|
||||||
|
@ -88,4 +89,25 @@ public class InfoInOutWindow extends InfoWindow {
|
||||||
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection,
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection,
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoInOutWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
import org.compiere.model.MInvoice;
|
import org.compiere.model.MInvoice;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
|
||||||
|
@ -90,7 +91,27 @@ public class InfoInvoiceWindow extends InfoWindow {
|
||||||
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection,
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection,
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoInvoiceWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveSelectionDetail() {
|
protected void saveSelectionDetail() {
|
||||||
int row = contentPanel.getSelectedRow();
|
int row = contentPanel.getSelectedRow();
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Info window for C_Order
|
* Info window for C_Order
|
||||||
|
@ -89,4 +90,24 @@ public class InfoOrderWindow extends InfoWindow {
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoOrderWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Info window for C_Payment
|
* Info window for C_Payment
|
||||||
|
@ -89,4 +90,24 @@ public class InfoPaymentWindow extends InfoWindow {
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoPaymentWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,7 @@ import org.adempiere.webui.util.ZKUpdateUtil;
|
||||||
import org.compiere.minigrid.ColumnInfo;
|
import org.compiere.minigrid.ColumnInfo;
|
||||||
import org.compiere.minigrid.EmbedWinInfo;
|
import org.compiere.minigrid.EmbedWinInfo;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
import org.compiere.model.MDocType;
|
import org.compiere.model.MDocType;
|
||||||
import org.compiere.model.MInfoWindow;
|
import org.compiere.model.MInfoWindow;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
|
@ -182,6 +183,26 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoProductWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field,
|
||||||
|
String predefinedContextVariables, Lookup lookupModel) {
|
||||||
|
super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field,
|
||||||
|
predefinedContextVariables, lookupModel);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getSQLWhere() {
|
protected String getSQLWhere() {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -31,7 +31,6 @@ import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -225,6 +224,10 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
|
|
||||||
/** true to auto collapse parameter panel after execution of query */
|
/** true to auto collapse parameter panel after execution of query */
|
||||||
private boolean autoCollapsedParameterPanel = false;
|
private boolean autoCollapsedParameterPanel = false;
|
||||||
|
|
||||||
|
protected Lookup lookupModel = null;
|
||||||
|
|
||||||
|
private ArrayList<String> lookupIdentifiers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param WindowNo
|
* @param WindowNo
|
||||||
|
@ -285,6 +288,25 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
*/
|
*/
|
||||||
public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, String predefinedContextVariables) {
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, String predefinedContextVariables) {
|
||||||
|
this(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, lookup, field, predefinedContextVariables,
|
||||||
|
(field != null ? field.getLookup() : null));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param WindowNo
|
||||||
|
* @param tableName
|
||||||
|
* @param keyColumn
|
||||||
|
* @param queryValue
|
||||||
|
* @param multipleSelection
|
||||||
|
* @param whereClause
|
||||||
|
* @param AD_InfoWindow_ID
|
||||||
|
* @param lookup
|
||||||
|
* @param field
|
||||||
|
* @param predefinedContextVariables
|
||||||
|
* @param lookupModel
|
||||||
|
*/
|
||||||
|
public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue,
|
||||||
|
boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup, GridField field, String predefinedContextVariables, Lookup lookupModel) {
|
||||||
super(WindowNo, tableName, keyColumn, multipleSelection, whereClause,
|
super(WindowNo, tableName, keyColumn, multipleSelection, whereClause,
|
||||||
lookup, AD_InfoWindow_ID, queryValue);
|
lookup, AD_InfoWindow_ID, queryValue);
|
||||||
this.m_gridfield = field;
|
this.m_gridfield = field;
|
||||||
|
@ -315,6 +337,14 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
|
|
||||||
Env.setPredefinedVariables(Env.getCtx(), getWindowNo(), predefinedContextVariables);
|
Env.setPredefinedVariables(Env.getCtx(), getWindowNo(), predefinedContextVariables);
|
||||||
infoContext = new Properties(Env.getCtx());
|
infoContext = new Properties(Env.getCtx());
|
||||||
|
if (lookupModel != null) {
|
||||||
|
this.lookupModel = lookupModel;
|
||||||
|
if (lookupModel instanceof MLookup mLookup) {
|
||||||
|
if (mLookup.getLookupInfo().lookupDisplayColumnNames != null && mLookup.getLookupInfo().lookupDisplayColumnNames.size() > 0) {
|
||||||
|
this.lookupIdentifiers = new ArrayList<String>(mLookup.getLookupInfo().lookupDisplayColumnNames);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
p_loadedOK = loadInfoDefinition();
|
p_loadedOK = loadInfoDefinition();
|
||||||
|
|
||||||
// make process button only in window mode
|
// make process button only in window mode
|
||||||
|
@ -705,57 +735,12 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void testQueryForSplit(String [] values) {
|
protected void testQueryForSplit(String [] values) {
|
||||||
// store identifiers on info window, sort to follow identifier on m_table
|
// do fill value to editor
|
||||||
List<WEditor> fillIdentifiers = new ArrayList<>();
|
for(int i = 0; i < values.length && i < identifiers.size(); i++) {
|
||||||
// store query value, ignore value for identifier not exists on info window
|
WEditor editor = identifiers.get(i);
|
||||||
// this list is sync with fillIdentifiers (size and order)
|
editor.setValue(values[i].trim());
|
||||||
List<String> fillValues = new ArrayList<>();
|
|
||||||
|
|
||||||
List<String> tableIdentifiers = null;
|
|
||||||
if (m_gridfield != null && m_gridfield.getLookup() != null
|
|
||||||
&& m_gridfield.getLookup() instanceof MLookup) {
|
|
||||||
|
|
||||||
MLookup mLookup = (MLookup)m_gridfield.getLookup();
|
|
||||||
if (mLookup.getLookupInfo().lookupDisplayColumnNames.size() > 0)
|
|
||||||
tableIdentifiers = mLookup.getLookupInfo().lookupDisplayColumnNames;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tableIdentifiers != null) {
|
|
||||||
for (int i = 0; i < tableIdentifiers.size(); i++) {
|
|
||||||
// final local variable to access inside lambda expression
|
|
||||||
int indexFinal = i;
|
|
||||||
List<String> tableIdentifiersFinal = tableIdentifiers;
|
|
||||||
|
|
||||||
// sort identifiers of info window to follow m_table
|
|
||||||
// ignore identifiers exists on m_table but not exists on info window
|
|
||||||
identifiers.forEach((Consumer<WEditor>)(identifierEditor) -> {
|
|
||||||
if (identifierEditor.getColumnName().equals(tableIdentifiersFinal.get(indexFinal))) {
|
|
||||||
fillIdentifiers.add(identifierEditor);
|
|
||||||
fillValues.add(values[indexFinal]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// case not exists mLookup.getLookupInfo().lookupDisplayColumnNames
|
|
||||||
// or no identifiers on info window exists on m_table
|
|
||||||
// fall back to old logic and just set values to identifiers
|
|
||||||
if (fillIdentifiers.size() == 0) {
|
|
||||||
for(int i = 0; i < values.length && i < identifiers.size(); i++) {
|
|
||||||
fillIdentifiers.add(identifiers.get(i));
|
|
||||||
fillValues.add(values[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// do fill value to editor (for both corrected order and fall back)
|
|
||||||
for(int i = 0; i < fillIdentifiers.size(); i++) {
|
|
||||||
WEditor editor = fillIdentifiers.get(i);
|
|
||||||
editor.setValue(fillValues.get(i).trim());
|
|
||||||
}
|
}
|
||||||
testCount(false);
|
testCount(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1887,6 +1872,20 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
|
|
||||||
if (!isAutoComplete)
|
if (!isAutoComplete)
|
||||||
dynamicDisplay(null);
|
dynamicDisplay(null);
|
||||||
|
|
||||||
|
//if using lookupIdentifiers, sort identifiers in the order of lookupIdentifiers
|
||||||
|
if (lookupIdentifiers != null && lookupIdentifiers.size() > 0 && identifiers.size() > 0) {
|
||||||
|
List<WEditor> list = new ArrayList<WEditor>();
|
||||||
|
for(String columnName : lookupIdentifiers) {
|
||||||
|
for(WEditor editor : identifiers) {
|
||||||
|
if (columnName.equals(editor.getColumnName())) {
|
||||||
|
list.add(editor);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
identifiers = list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1982,7 +1981,12 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
|
|
||||||
editor.showMenu();
|
editor.showMenu();
|
||||||
|
|
||||||
if (infoColumn.isIdentifier()) {
|
//if MLookup is available, use display columns of MLookup instead of InfoColumn's IsIdentifier flag
|
||||||
|
if (lookupIdentifiers != null && lookupIdentifiers.size() > 0) {
|
||||||
|
if (lookupIdentifiers.contains(infoColumn.getColumnName()) ) {
|
||||||
|
identifiers.add(editor);
|
||||||
|
}
|
||||||
|
} else if (infoColumn.isIdentifier()) {
|
||||||
identifiers.add(editor);
|
identifiers.add(editor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue