diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java index 19fb703ef7..41c4e1bd7a 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java @@ -107,6 +107,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value protected ADWindow adwindow; private EventListener autoCompleteListener; + protected boolean multipleSelection = false; + /** * * @param gridField @@ -133,6 +135,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value init(); getComponent().setAttribute(ATTRIBUTE_IS_INFO_PANEL_OPEN, false); + multipleSelection = true; } @@ -176,6 +179,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value columnName = lookup.getColumnName(); super.setColumnName(columnName); init(); + multipleSelection = false; } /** @@ -200,6 +204,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value this.columnName = columnName; super.setColumnName(columnName); init(); + multipleSelection = false; } @@ -512,7 +517,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value setTableAndKeyColumn(); // process input text with infopanel/infowindow - final InfoPanel ip = InfoManager.create(lookup, gridField, m_tableName, m_keyColumnName, getComponent().getText(), true, getWhereClause()); + final InfoPanel ip = InfoManager.create(lookup, gridField, m_tableName, m_keyColumnName, getComponent().getText(), multipleSelection, getWhereClause()); if (ip != null && ip.loadedOK() && ip.getRowCount() == 1) { if (ip.getFirstRowKey() instanceof Integer) @@ -742,7 +747,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value if (m_tableName == null) // sets table name & key column setTableAndKeyColumn(); - final InfoPanel ip = InfoManager.create(lookup, gridField, m_tableName, m_keyColumnName, queryValue, true, whereClause); + final InfoPanel ip = InfoManager.create(lookup, gridField, m_tableName, m_keyColumnName, queryValue, multipleSelection, whereClause); if (ip != null) showInfoPanel(ip); } @@ -977,6 +982,20 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value return s; } + /** + * @return true if info window allow multiple selection + */ + public boolean isMultipleSelection() { + return multipleSelection; + } + + /** + * @param multipleSelection + */ + public void setMultipleSelection(boolean multipleSelection) { + this.multipleSelection = multipleSelection; + } + /** * Search box component */ diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java index beda0a8c2c..62e1ac5672 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java @@ -164,7 +164,7 @@ public class DefaultInfoFactory implements IInfoFactory { if (col.equals("M_Product_ID")) { - InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, true, whereClause, AD_InfoWindow_ID, true, field); + InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID, true, field); if (infoWindow.loadedOK()) return infoWindow; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java index 51648ac7be..a763ff02f4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java @@ -141,7 +141,7 @@ public class InfoManager if (service != null) { s_infoFactoryCache.put(serviceId, serviceReference); - ip = service.create(lookup, field, tableName, keyColumn, queryValue, false, whereClause, AD_InfoWindow_ID); + ip = service.create(lookup, field, tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID); if (ip != null) break; }