diff --git a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java
index 47277056a3..79acfcdad8 100644
--- a/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java
+++ b/org.adempiere.base/src/org/adempiere/impexp/GridTabCSVImporter.java
@@ -765,7 +765,7 @@ public class GridTabCSVImporter implements IGridTabImporter
return new StringBuilder(Msg.getMsg(Env.getCtx(), "FieldNotDisplayed",new Object[] {header.get(i)}));
MColumn column = MColumn.get(Env.getCtx(), field.getAD_Column_ID());
- if((field.isMandatory(true) || column.isMandatory()) && value == null && field.getDefault()==null){
+ if((field.isMandatory(false) || column.isMandatory()) && value == null && field.getDefault()==null){
mandatoryColumns.append(" / ");
mandatoryColumns.append(header.get(i));
}
diff --git a/org.adempiere.base/src/org/compiere/model/GridField.java b/org.adempiere.base/src/org/compiere/model/GridField.java
index 2fa008600e..354e2ca333 100644
--- a/org.adempiere.base/src/org/compiere/model/GridField.java
+++ b/org.adempiere.base/src/org/compiere/model/GridField.java
@@ -180,13 +180,6 @@ public class GridField
log.log(Level.SEVERE, "(" + m_vo.ColumnName + ") - No LookupInfo");
return;
}
- // Prevent loading of CreatedBy/UpdatedBy
- if (m_vo.displayType == DisplayType.Table
- && (m_vo.ColumnName.equals("CreatedBy") || m_vo.ColumnName.equals("UpdatedBy")) )
- {
- m_vo.lookupInfo.IsCreadedUpdatedBy = true;
- m_vo.lookupInfo.DisplayType = DisplayType.Search;
- }
//
loadLookupNoValidate();
}
@@ -220,6 +213,14 @@ public class GridField
if (m_vo.lookupInfo == null) {
return;
}
+ // Prevent loading of CreatedBy/UpdatedBy
+ if (m_vo.displayType == DisplayType.Table
+ && (m_vo.ColumnName.equals("CreatedBy") || m_vo.ColumnName.equals("UpdatedBy")) )
+ {
+ m_vo.lookupInfo.IsCreadedUpdatedBy = true;
+ m_vo.lookupInfo.DisplayType = DisplayType.Search;
+ m_vo.displayType = DisplayType.Search;
+ }
m_vo.lookupInfo.IsKey = isKey();
loadLookupFromFactory();
}
diff --git a/org.adempiere.base/src/org/compiere/model/GridTab.java b/org.adempiere.base/src/org/compiere/model/GridTab.java
index 6c7c5f846e..74ac2160b8 100644
--- a/org.adempiere.base/src/org/compiere/model/GridTab.java
+++ b/org.adempiere.base/src/org/compiere/model/GridTab.java
@@ -113,7 +113,7 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
/**
*
*/
- private static final long serialVersionUID = 1377113168185797983L;
+ private static final long serialVersionUID = 1151723870943569774L;
public static final String DEFAULT_STATUS_MESSAGE = "NavigateOrUpdate";
@@ -157,6 +157,10 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
// The window of this tab
private GridWindow m_window;
+ public GridWindow getGridWindow() {
+ return m_window;
+ }
+
/** The Table Model for Query */
private GridTable m_mTable = null;
diff --git a/org.adempiere.base/src/org/compiere/model/MMovementLine.java b/org.adempiere.base/src/org/compiere/model/MMovementLine.java
index fc6af5ec14..118dac29b3 100644
--- a/org.adempiere.base/src/org/compiere/model/MMovementLine.java
+++ b/org.adempiere.base/src/org/compiere/model/MMovementLine.java
@@ -211,11 +211,11 @@ public class MMovementLine extends X_M_MovementLine
// Mandatory Instance
MProduct product = getProduct();
if (getM_AttributeSetInstance_ID() == 0) {
- if (product != null && product.getAttributeSet()==null) {
- log.saveError("NoAttributeSet", product.getValue());
- return false;
- }
if (product != null && product.isASIMandatory(true)) {
+ if (product.getAttributeSet()==null) {
+ log.saveError("NoAttributeSet", product.getValue());
+ return false;
+ }
if (! product.getAttributeSet().excludeTableEntry(MMovementLine.Table_ID, true /*outgoing*/)) {
log.saveError("FillMandatory", Msg.getElement(getCtx(), COLUMNNAME_M_AttributeSetInstance_ID));
return false;
@@ -231,12 +231,12 @@ public class MMovementLine extends X_M_MovementLine
setM_AttributeSetInstanceTo_ID(getM_AttributeSetInstance_ID());
}
- if (product != null && product.getAttributeSet()==null) {
- log.saveError("NoAttributeSet", product.getValue());
- return false;
- }
if (product != null && product.isASIMandatory(false) && getM_AttributeSetInstanceTo_ID() == 0)
{
+ if (product.getAttributeSet()==null) {
+ log.saveError("NoAttributeSet", product.getValue());
+ return false;
+ }
if (! product.getAttributeSet().excludeTableEntry(MMovementLine.Table_ID, false /*incoming*/)) {
log.saveError("FillMandatory", Msg.getElement(getCtx(), COLUMNNAME_M_AttributeSetInstanceTo_ID));
return false;
diff --git a/org.adempiere.base/src/org/compiere/model/MPayment.java b/org.adempiere.base/src/org/compiere/model/MPayment.java
index 7d7158835a..eaa222be18 100644
--- a/org.adempiere.base/src/org/compiere/model/MPayment.java
+++ b/org.adempiere.base/src/org/compiere/model/MPayment.java
@@ -660,8 +660,6 @@ public class MPayment extends X_C_Payment
|| is_ValueChanged(COLUMNNAME_C_Charge_ID)
|| is_ValueChanged(COLUMNNAME_C_Currency_ID)
|| is_ValueChanged(COLUMNNAME_C_DocType_ID)
- || is_ValueChanged(COLUMNNAME_C_Invoice_ID)
- || is_ValueChanged(COLUMNNAME_C_Order_ID)
|| is_ValueChanged(COLUMNNAME_DateAcct)
|| is_ValueChanged(COLUMNNAME_DateTrx)
|| is_ValueChanged(COLUMNNAME_DiscountAmt)
diff --git a/org.adempiere.base/src/org/compiere/util/DisplayType.java b/org.adempiere.base/src/org/compiere/util/DisplayType.java
index c42aa653cd..0c639249dc 100644
--- a/org.adempiere.base/src/org/compiere/util/DisplayType.java
+++ b/org.adempiere.base/src/org/compiere/util/DisplayType.java
@@ -476,7 +476,7 @@ public final class DisplayType
//
if ( pattern != null && pattern.length() > 0)
{
- SimpleDateFormat format = (SimpleDateFormat)DateFormat.getInstance();
+ SimpleDateFormat format = (SimpleDateFormat)DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, language.getLocale());
try {
format.applyPattern(pattern);
return format;
diff --git a/org.adempiere.base/src/org/compiere/util/EMail.java b/org.adempiere.base/src/org/compiere/util/EMail.java
index 70f25d0844..b0241e12ef 100644
--- a/org.adempiere.base/src/org/compiere/util/EMail.java
+++ b/org.adempiere.base/src/org/compiere/util/EMail.java
@@ -48,7 +48,6 @@ import javax.mail.internet.MimeMultipart;
import org.compiere.model.MClient;
import org.compiere.model.MSysConfig;
-
import com.sun.mail.smtp.SMTPMessage;
/**
@@ -338,7 +337,7 @@ public final class EMail implements Serializable
m_msg.setHeader("Comments", "iDempiereMail");
// m_msg.setDescription("Description");
// SMTP specifics
- m_msg.setAllow8bitMIME(true);
+ //m_msg.setAllow8bitMIME(true);
// Send notification on Failure & Success - no way to set envid in Java yet
// m_msg.setNotifyOptions (SMTPMessage.NOTIFY_FAILURE | SMTPMessage.NOTIFY_SUCCESS);
// Bounce only header
@@ -974,18 +973,34 @@ public final class EMail implements Serializable
else // Multi part message ***************************************
{
// First Part - Message
- MimeBodyPart mbp_1 = new MimeBodyPart();
- mbp_1.setText("");
- if (m_messageHTML == null || m_messageHTML.length () == 0)
- mbp_1.setText (getMessageCRLF(), charSetName);
- else
- mbp_1.setDataHandler (new DataHandler
- (new ByteArrayDataSource (m_messageHTML, charSetName, "text/html")));
+ MimeBodyPart htmlPart= null;
+ MimeBodyPart planPart = new MimeBodyPart();
+ //TODO: get plan text form html, i see getMessageCRLF just return empty string
+ planPart.setText (getMessageCRLF(), charSetName);
+ htmlPart = new MimeBodyPart();
+ if (m_messageHTML == null){
+ m_messageHTML = "
" + getMessageCRLF() + "";
+ }
+ htmlPart.setDataHandler (new DataHandler
+ (new ByteArrayDataSource (m_messageHTML, charSetName, "text/html")));
+
// Create Multipart and its parts to it
- Multipart mp = new MimeMultipart("related");
- mp.addBodyPart(mbp_1);
- if (log.isLoggable(Level.FINE)) log.fine("(multi) " + getSubject() + " - " + mbp_1);
+ Multipart mainPart = new MimeMultipart("mixed");
+
+ Multipart viewContentPart = new MimeMultipart("related");
+ MimeBodyPart viewBodyPart = new MimeBodyPart();
+ viewBodyPart.setContent(viewContentPart);
+ mainPart.addBodyPart(viewBodyPart);
+
+ Multipart textAlternativePart = new MimeMultipart("alternative");
+ //textAlternativePart.addBodyPart(planPart);
+ textAlternativePart.addBodyPart(htmlPart);
+ MimeBodyPart alternativeBodyPart = new MimeBodyPart();
+ alternativeBodyPart.setContent(textAlternativePart);
+ viewContentPart.addBodyPart(alternativeBodyPart);
+
+ if (log.isLoggable(Level.FINE)) log.fine("(multi) " + getSubject() + " - " + htmlPart);
// for all attachments
for (int i = 0; i < m_attachments.size(); i++)
@@ -1024,12 +1039,14 @@ public final class EMail implements Serializable
if (m_messageHTML != null && m_messageHTML.contains("cid:"+ds.getName())) {
mbp_2.setContentID("<" + ds.getName() + ">");
mbp_2.setDisposition(MimeBodyPart.INLINE);
+ viewContentPart.addBodyPart(mbp_2);
+ }else{
+ mainPart.addBodyPart(mbp_2);
}
- mp.addBodyPart(mbp_2);
}
// Add to Message
- m_msg.setContent(mp);
+ m_msg.setContent(mainPart);
} // multi=part
} // setContent
diff --git a/org.adempiere.base/src/org/compiere/util/Env.java b/org.adempiere.base/src/org/compiere/util/Env.java
index 7d74195772..b62e2ca110 100644
--- a/org.adempiere.base/src/org/compiere/util/Env.java
+++ b/org.adempiere.base/src/org/compiere/util/Env.java
@@ -1509,8 +1509,9 @@ public final class Env
if (column.isSecure()) {
outStr.append("********");
} else {
- outStr.append(DB.getSQLValueString(trxName,
- "SELECT " + columnName + " FROM " + tableName + " WHERE " + tableName + "_ID = ?", (Integer)v));
+ String value = DB.getSQLValueString(trxName,"SELECT " + columnName + " FROM " + tableName + " WHERE " + tableName + "_ID = ?", (Integer)v);
+ if (value != null)
+ outStr.append(value);
}
}
}
diff --git a/org.adempiere.base/src/org/compiere/wf/MWFActivity.java b/org.adempiere.base/src/org/compiere/wf/MWFActivity.java
index d38fc37c96..d6185dcac8 100644
--- a/org.adempiere.base/src/org/compiere/wf/MWFActivity.java
+++ b/org.adempiere.base/src/org/compiere/wf/MWFActivity.java
@@ -1011,6 +1011,7 @@ public class MWFActivity extends X_AD_WF_Activity implements Runnable
if (!m_po.save())
{
success = false;
+ m_docStatus = null;
processMsg = "SaveError";
}
if (!success)
diff --git a/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java
index d704ea1cde..0e3cd5f497 100644
--- a/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java
+++ b/org.adempiere.report.jasper/src/org/adempiere/report/jasper/ReportStarter.java
@@ -60,6 +60,7 @@ import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JRDesignQuery;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRCsvExporter;
+import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRPrintServiceExporter;
@@ -714,8 +715,12 @@ public class ReportStarter implements ProcessCall, ClientProcess
exporter = new JRPrintServiceExporter(ljrContext);
else if (ext.equals("xml"))
exporter = new JRXmlExporter(ljrContext);
- else if (ext.equals("csv") || ext.equals("ssv"))
+ else if (ext.equals("csv"))
exporter = new JRCsvExporter(ljrContext);
+ else if (ext.equals("ssv")) {
+ exporter = new JRCsvExporter(ljrContext);
+ exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, ";");
+ }
else if (ext.equals("txt"))
exporter = new JRTextExporter(ljrContext);
else if (ext.equals("html") || ext.equals("htm"))
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java
index d008c7d65b..7b921b7484 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java
@@ -22,6 +22,8 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
@@ -43,11 +45,13 @@ import org.compiere.model.MRole;
import org.compiere.model.MSession;
import org.compiere.model.MSysConfig;
import org.compiere.model.MSystem;
+import org.compiere.model.MTable;
import org.compiere.model.MUser;
import org.compiere.util.CLogger;
import org.compiere.util.Env;
import org.compiere.util.Language;
import org.compiere.util.Msg;
+import org.compiere.util.Util;
import org.zkforge.keylistener.Keylistener;
import org.zkoss.web.Attributes;
import org.zkoss.web.servlet.Servlets;
@@ -77,7 +81,7 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb
/**
*
*/
- private static final long serialVersionUID = 5875869799688466929L;
+ private static final long serialVersionUID = 2030098494203345181L;
private static final String SAVED_CONTEXT = "saved.context";
@@ -107,12 +111,16 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb
private static boolean eventThreadEnabled = false;
+ private ConcurrentMap m_URLParameters;
+
public AdempiereWebUI()
{
this.addEventListener(Events.ON_CLIENT_INFO, this);
this.setVisible(false);
userPreference = new UserPreference();
+ // preserve the original URL parameters as is destroyed later on loging
+ m_URLParameters = new ConcurrentHashMap(Executions.getCurrent().getParameterMap());
}
public void onCreate()
@@ -275,9 +283,54 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb
}
Env.setContext(ctx, "#LocalHttpAddr", localHttpAddr.toString());
Clients.response(new AuScript("zAu.cmd0.clearBusy()"));
+
+ processParameters();
}
-
- /**
+
+ private void processParameters() {
+ String action = getPrmString("Action");
+ if ("Zoom".equalsIgnoreCase(action)) {
+ int tableID = getPrmInt("AD_Table_ID");
+ if (tableID == 0) {
+ String tableName = getPrmString("TableName");
+ if (!Util.isEmpty(tableName)) {
+ MTable table = MTable.get(Env.getCtx(), tableName);
+ if (table != null) {
+ tableID = table.getAD_Table_ID();
+ }
+ }
+ }
+ int recordID = getPrmInt("Record_ID");
+ if (tableID > 0) {
+ AEnv.zoom(tableID, recordID);
+ }
+ }
+ m_URLParameters = null;
+ }
+
+ private String getPrmString(String prm) {
+ String retValue = "";
+ if (m_URLParameters != null) {
+ String[] strs = m_URLParameters.get(prm);
+ if (strs != null && strs.length == 1 && strs[0] != null)
+ retValue = strs[0];
+ }
+ return retValue;
+ }
+
+ private int getPrmInt(String prm) {
+ int retValue = 0;
+ String str = getPrmString(prm);
+ try {
+ if (!Util.isEmpty(str))
+ retValue = Integer.parseInt(str);
+ } catch (NumberFormatException e) {
+ // ignore
+ }
+ return retValue;
+ }
+
+ /**
* @return key listener
*/
@Override
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java
index 0d9ea60ad5..fd8fd2a64c 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/AbstractADWindowContent.java
@@ -1622,8 +1622,8 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
toolbar.enablePrint(adTabbox.getSelectedGridTab().isPrinted() && !isNewRow);
toolbar.enableReport(!isNewRow);
- toolbar.enableExport(!adTabbox.getSelectedGridTab().isSortTab());
- toolbar.enableFileImport(!changed && !adTabbox.getSelectedGridTab().isSortTab() && adTabbox.getSelectedGridTab().isInsertRecord());
+ toolbar.enableExport(!isNewRow && !adTabbox.getSelectedGridTab().isSortTab());
+ toolbar.enableFileImport(!isNewRow && !changed && !adTabbox.getSelectedGridTab().isSortTab() && adTabbox.getSelectedGridTab().isInsertRecord());
toolbar.enableTabNavigation(breadCrumb.hasParentLink(), adTabbox.getSelectedDetailADTabpanel() != null);
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WReportCustomization.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WReportCustomization.java
index d4f08a49ed..cf28bd4715 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WReportCustomization.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/form/WReportCustomization.java
@@ -468,12 +468,18 @@ public class WReportCustomization implements IFormController,EventListener columnNames = new Vector();
diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java
index 62e54d548e..4ae7e562d6 100644
--- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java
+++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java
@@ -96,7 +96,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
/**
*
*/
- private static final long serialVersionUID = 6606023722122538154L;
+ private static final long serialVersionUID = -2192106603768665006L;
protected Grid parameterGrid;
private Borderlayout layout;
@@ -399,7 +399,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
btMenuProcess.setVisible(ipMenu.getChildren().size() > 0);
}
- private void processQueryValue() {
+ protected void processQueryValue() {
isQueryByUser = true;
for (int i = 0; i < identifiers.size(); i++) {
WEditor editor = identifiers.get(i);
@@ -434,7 +434,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
isQueryByUser = false;
}
- private boolean loadInfoDefinition() {
+ protected boolean loadInfoDefinition() {
String tableName = null;
if (AD_InfoWindow_ID > 0) {
infoWindow = new MInfoWindow(Env.getCtx(), AD_InfoWindow_ID, null);
@@ -514,7 +514,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
}
//private MInfoColumn[] topinfoColumns;//infoWindow.getInfoColumns(tableInfos);
- private boolean loadInfoRelatedTabs() {
+ protected boolean loadInfoRelatedTabs() {
if (infoWindow == null)
return false;
@@ -654,7 +654,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
prepareTable(columnInfos, infoWindow.getFromClause(), p_whereClause, infoWindow.getOrderByClause());
}
- private ColumnInfo createLookupColumnInfo(TableInfo[] tableInfos,
+ protected ColumnInfo createLookupColumnInfo(TableInfo[] tableInfos,
GridField gridField, MInfoColumn infoColumn) {
String columnName = gridField.getColumnName();
String validationCode = "";
@@ -801,7 +801,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
return sql;
}
- private MInfoColumn findInfoColumn(GridField gridField) {
+ protected MInfoColumn findInfoColumn(GridField gridField) {
for(int i = 0; i < gridFields.size(); i++) {
if (gridFields.get(i) == gridField) {
return infoColumns[i];
@@ -1138,7 +1138,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
dynamicDisplay(null);
}
- private void evalDisplayLogic() {
+ protected void evalDisplayLogic() {
for(WEditor editor : editors) {
if (editor.getGridField() != null && !editor.getGridField().isDisplayed(true)) {
editor.getComponent().setVisible(false);
@@ -1256,7 +1256,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
panel.appendChild(fieldEditor);
}
- private void createAndCheckbox() {
+ protected void createAndCheckbox() {
checkAND = new Checkbox();
checkAND.setLabel(Msg.getMsg(Env.getCtx(), "SearchAND", true));
String tips = Msg.getMsg(Env.getCtx(), "SearchAND", false);
@@ -1502,7 +1502,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
* Test Row Count
* @return true if display
*/
- private boolean testCount(boolean promptError)
+ protected boolean testCount(boolean promptError)
{
long start = System.currentTimeMillis();
String dynWhere = getSQLWhere();
@@ -1640,7 +1640,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
* @author xolali IDEMPIERE-1045
* refresh(Object obj, EmbedWinInfo relatedInfo)
*/
- private void refresh(Object obj, EmbedWinInfo relatedInfo)
+ protected void refresh(Object obj, EmbedWinInfo relatedInfo)
{
StringBuilder sql = new StringBuilder();
sql.append(relatedInfo.getInfoSql()); // delete get sql method from MInfoWindow
@@ -1703,7 +1703,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
* @author xolali IDEMPIERE-1045
* GridField getGridField(MInfoColumn infoColumn)
*/
- private GridField getGridField(MInfoColumn infoColumn){
+ protected GridField getGridField(MInfoColumn infoColumn){
String columnName = infoColumn.getColumnName();
GridFieldVO vo = GridFieldVO.createParameter(infoContext, p_WindowNo, 0,
columnName, infoColumn.get_Translation("Name"), infoColumn.getAD_Reference_ID(),
@@ -1725,7 +1725,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
return gridField;
}
- private ArrayList