diff --git a/migration/i3.1/oracle/201605061800_Ticket_1006003.sql b/migration/i3.1/oracle/201605061800_Ticket_1006003.sql index ca8a5989ba..7afcbcf546 100644 --- a/migration/i3.1/oracle/201605061800_Ticket_1006003.sql +++ b/migration/i3.1/oracle/201605061800_Ticket_1006003.sql @@ -157,9 +157,9 @@ value := strings or numbers
logic operators := AND or OR with the previous result from left to right
operand := eq{=}, gt{>}, le{<}, not{~^!}
Examples:
-@AD_Table_ID@=14 | @Language@!GERGER
-@PriceLimit@>10 | @PriceList@>@PriceActual@
-@Name@>J
+'||chr(64)||'AD_Table_ID@=14 | @Language@!GERGER
+'||chr(64)||'PriceLimit@>10 | @PriceList@>@PriceActual@
+'||chr(64)||'Name@>J
Strings may be in single quotes (optional)','Display Logic','Y','Y',100,100,'N','N',0,0,TO_DATE('2016-05-05 17:22:49','YYYY-MM-DD HH24:MI:SS'),'D','N','N',283,14,200208) ; @@ -303,9 +303,9 @@ value := strings or numbers
logic operators := AND or OR with the previous result from left to right
operand := eq{=}, gt{>}, le{<}, not{~^!}
Examples:
-@AD_Table_ID@=14 | @Language@!GERGER
-@PriceLimit@>10 | @PriceList@>@PriceActual@
-@Name@>J
+'||chr(64)||'AD_Table_ID@=14 | @Language@!GERGER
+'||chr(64)||'PriceLimit@>10 | @PriceList@>@PriceActual@
+'||chr(64)||'Name@>J
Strings may be in single quotes (optional)',0,TO_DATE('2016-05-05 17:50:50','YYYY-MM-DD HH24:MI:SS'),'If the Field is displayed, the result determines if the field is actually displayed','Display Logic','7deca1bb-f53f-4585-ad4c-92ed64a9f73e','Y','N',100,100,'Y',0,TO_DATE('2016-05-05 17:50:50','YYYY-MM-DD HH24:MI:SS'),5,3,212749,'D',200214) ; diff --git a/migration/i3.1/oracle/20160523170239_IDEMPIERE-3073.sql b/migration/i3.1/oracle/20160523170239_IDEMPIERE-3073.sql new file mode 100644 index 0000000000..eae1f0f1c2 --- /dev/null +++ b/migration/i3.1/oracle/20160523170239_IDEMPIERE-3073.sql @@ -0,0 +1,11 @@ +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- IDEMPIERE-3073 improve set of max text lenght on grid panel +-- May 23, 2016 5:02:39 PM CEST +INSERT INTO AD_SysConfig (AD_SysConfig_ID,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive,Name,Value,Description,EntityType,ConfigurationLevel,AD_SysConfig_UU) VALUES (200077,0,0,TO_DATE('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),TO_DATE('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),100,100,'Y','MAX_TEXT_LENGTH_ON_GRID_VIEW','60','Max length of a text in grid view after wihich it is cut off (IDEMPIERE-3073)','D','C','092aeedc-22d9-4a70-9c90-d27aa68d47e7') +; + +SELECT register_migration_script('20160523170239_IDEMPIERE-3073.sql') FROM dual +; + diff --git a/migration/i3.1/postgresql/20160523170239_IDEMPIERE-3073.sql b/migration/i3.1/postgresql/20160523170239_IDEMPIERE-3073.sql new file mode 100644 index 0000000000..795cde4c0c --- /dev/null +++ b/migration/i3.1/postgresql/20160523170239_IDEMPIERE-3073.sql @@ -0,0 +1,8 @@ +-- IDEMPIERE-3073 improve set of max text lenght on grid panel +-- May 23, 2016 5:02:39 PM CEST +INSERT INTO AD_SysConfig (AD_SysConfig_ID,AD_Client_ID,AD_Org_ID,Created,Updated,CreatedBy,UpdatedBy,IsActive,Name,Value,Description,EntityType,ConfigurationLevel,AD_SysConfig_UU) VALUES (200077,0,0,TO_TIMESTAMP('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),TO_TIMESTAMP('2016-05-23 17:02:39','YYYY-MM-DD HH24:MI:SS'),100,100,'Y','MAX_TEXT_LENGTH_ON_GRID_VIEW','60','Max length of a text in grid view after wihich it is cut off (IDEMPIERE-3073)','D','C','092aeedc-22d9-4a70-9c90-d27aa68d47e7') +; + +SELECT register_migration_script('20160523170239_IDEMPIERE-3073.sql') FROM dual +; + diff --git a/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java b/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java index 58d5066125..bcafcf39b9 100644 --- a/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java +++ b/org.adempiere.base.process/src/org/compiere/process/RequestEMailProcessor.java @@ -143,6 +143,8 @@ public class RequestEMailProcessor extends SvrProcess implements ProcessEmailHan */ protected String doIt() throws Exception { + parseParameter(); + EmailSrv emailSrv = new EmailSrv(p_IMAPHost, p_IMAPUser, p_IMAPPwd, p_IMAPPort); checkInputParameter (emailSrv); @@ -155,7 +157,7 @@ public class RequestEMailProcessor extends SvrProcess implements ProcessEmailHan return msgreturn.toString(); } // doIt - protected void checkInputParameter (EmailSrv emailSrv) throws MessagingException, Exception { + protected void parseParameter() { // === check input parameter === int portStartIndex = p_IMAPHost.lastIndexOf(":"); if (portStartIndex > 0){ @@ -169,6 +171,9 @@ public class RequestEMailProcessor extends SvrProcess implements ProcessEmailHan }else if (p_IMAPHost.startsWith("imap.gmail.com")){ p_IMAPPort = 993; } + } + + protected void checkInputParameter (EmailSrv emailSrv) throws MessagingException, Exception { if (log.isLoggable(Level.INFO)) log.info("doIt - IMAPHost=" + p_IMAPHost + " IMAPPort=" + p_IMAPPort + " IMAPUser=" + p_IMAPUser + diff --git a/org.adempiere.base/src/org/compiere/model/MInOut.java b/org.adempiere.base/src/org/compiere/model/MInOut.java index c1bc584936..ab20a57dfd 100644 --- a/org.adempiere.base/src/org/compiere/model/MInOut.java +++ b/org.adempiere.base/src/org/compiere/model/MInOut.java @@ -1851,11 +1851,8 @@ public class MInOut extends X_M_InOut implements DocAction for(MInOutLineMA sMA : shipmentMAS){ BigDecimal lineMAQty = qtyToReturn; - BigDecimal qtyReturnable = (BigDecimal)sMA.get_Value(MInOutLineMA.COLUMNNAME_ReturnedQty); - if (qtyReturnable == null) - qtyReturnable = Env.ZERO; - if(lineMAQty.compareTo(qtyReturnable)>0){ - lineMAQty = qtyReturnable; + if(lineMAQty.compareTo(Env.ZERO)>0){ + lineMAQty = Env.ZERO; } MInOutLineMA ma = MInOutLineMA.addOrCreate(line, sMA.getM_AttributeSetInstance_ID(), lineMAQty, sMA.getDateMaterialPolicy(),true); diff --git a/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java b/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java index 71f879543c..8aa3526801 100644 --- a/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java +++ b/org.adempiere.base/src/org/compiere/model/MInOutLineMA.java @@ -43,12 +43,11 @@ public class MInOutLineMA extends X_M_InOutLineMA /** * */ - private static final long serialVersionUID = -4131812777103744727L; - + private static final long serialVersionUID = -2610075295914545809L; + /** Log */ private static CLogger s_log = CLogger.getCLogger (MInOutLineMA.class); - public static String COLUMNNAME_ReturnedQty ="returnedQty"; - + /** * Get Material Allocations for Line * @param ctx context @@ -237,7 +236,6 @@ public class MInOutLineMA extends X_M_InOutLineMA while (rs.next()) { MInOutLineMA lineMA = new MInOutLineMA(ctx, rs, trxName); - lineMA.set_Value(COLUMNNAME_ReturnedQty, rs.getBigDecimal(COLUMNNAME_ReturnedQty)); list.add(lineMA); } diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index e922b9f2da..be79425bae 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -629,7 +629,7 @@ public class MLookupFactory String BaseColumn, String BaseTable, int AD_Reference_Value_ID) { String sql = "SELECT t.TableName,ck.ColumnName AS KeyColumn," - + "cd.ColumnName AS DisplayColumn,rt.isValueDisplayed,cd.IsTranslated " + + "cd.ColumnName AS DisplayColumn,rt.isValueDisplayed,cd.IsTranslated, cd.AD_Column_ID AS columnDisplay_ID " + "FROM AD_Ref_Table rt" + " INNER JOIN AD_Table t ON (rt.AD_Table_ID=t.AD_Table_ID)" + " INNER JOIN AD_Column ck ON (rt.AD_Key=ck.AD_Column_ID)" @@ -639,6 +639,7 @@ public class MLookupFactory // String KeyColumn, DisplayColumn, TableName, TableNameAlias; boolean IsTranslated, isValueDisplayed; + Integer columnDisplay_ID = 0; PreparedStatement pstmt = null; ResultSet rs = null; @@ -659,6 +660,7 @@ public class MLookupFactory DisplayColumn = rs.getString(3); isValueDisplayed = rs.getString(4).equals("Y"); IsTranslated = rs.getString(5).equals("Y"); + columnDisplay_ID = rs.getInt(6); } catch (SQLException e) @@ -682,15 +684,26 @@ public class MLookupFactory } StringBuilder embedSQL = new StringBuilder("SELECT "); + + if (isValueDisplayed) + embedSQL.append(TableNameAlias).append(".Value||'-'||"); + + MColumn columnDisplay = new MColumn(Env.getCtx(), columnDisplay_ID, null); + boolean translated = false; // Translated if (IsTranslated && !Env.isBaseLanguage(language, TableName)) { translated = true; - if (isValueDisplayed) - embedSQL.append(TableNameAlias).append(".Value||'-'||"); + + if (columnDisplay.isVirtualColumn()) + { + s_log.warning("Column SQL should not be Translated"); + return null; + } + else embedSQL.append(TableName).append("_Trl.").append(DisplayColumn); - // + embedSQL.append(" FROM ").append(TableName).append(" ").append(TableNameAlias) .append(" INNER JOIN ").append(TableName).append("_TRL ON (") .append(TableNameAlias).append(".").append(KeyColumn) @@ -701,10 +714,11 @@ public class MLookupFactory // Not Translated else { - if (isValueDisplayed) - embedSQL.append(TableNameAlias).append(".Value||'-'||"); + if (columnDisplay.isVirtualColumn()) + embedSQL.append(columnDisplay.getColumnSQL()).append(" AS ").append(KeyColumn); + else embedSQL.append(TableNameAlias).append(".").append(DisplayColumn); - // + embedSQL.append(" FROM ").append(TableName).append(" ").append(TableNameAlias); } diff --git a/org.adempiere.base/src/org/compiere/model/MProduction.java b/org.adempiere.base/src/org/compiere/model/MProduction.java index 31df16dc80..a4abcb63e0 100644 --- a/org.adempiere.base/src/org/compiere/model/MProduction.java +++ b/org.adempiere.base/src/org/compiere/model/MProduction.java @@ -102,7 +102,13 @@ public class MProduction extends X_M_Production implements DocAction { StringBuilder errors = new StringBuilder(); int processed = 0; - + + //IDEMPIERE-3107 Check if End Product in Production Lines exist + if(!isHaveEndProduct(getLines())) { + m_processMsg = "Production does not contain End Product"; + return DocAction.STATUS_Invalid; + } + if (!isUseProductionPlan()) { MProductionLine[] lines = getLines(); errors.append(processLines(lines)); @@ -142,6 +148,15 @@ public class MProduction extends X_M_Production implements DocAction { return DocAction.STATUS_Completed; } + private boolean isHaveEndProduct(MProductionLine[] lines) { + + for(MProductionLine line : lines) { + if(line.isEndProduct()) + return true; + } + return false; + } + private Object processLines(MProductionLine[] lines) { StringBuilder errors = new StringBuilder(); for ( int i = 0; i - + diff --git a/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere b/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere index 0f1188ef3d..eeb90d5fa6 100755 --- a/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere +++ b/org.adempiere.server-feature/utils.unix/unix/DebianInstaller/etc/init.d/idempiere @@ -618,23 +618,30 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - log_warning_msg "Trying direct kill with signal -15" - # try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -15" + log_success_msg "Service stopped with OSGi shutdown" else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -9" - else - log_warning_msg "Service hasn't stopped" - fi + log_warning_msg "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -15" + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -9" + else + log_warning_msg "Service hasn't stopped" + fi + fi fi return $RETVAL } diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh index 431a703d7b..fe77f58b75 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Debian.sh @@ -87,24 +87,31 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - . $ENVFILE - log_warning_msg "Trying direct kill with signal -15" - # try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + . $ENVFILE + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -15" + log_success_msg "Service stopped with OSGi shutdown" else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - log_success_msg "Service stopped with kill -9" - else - log_warning_msg "Service hasn't stopped" - fi + log_warning_msg "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -15" + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + log_success_msg "Service stopped with kill -9" + else + log_warning_msg "Service hasn't stopped" + fi + fi fi return $RETVAL } diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh index 7d193968ae..1cc8d34e76 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_RedHat.sh @@ -83,24 +83,31 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - source $ENVFILE - echo "Trying direct kill with signal -15" - # iDempiere didn't finish - try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + source $ENVFILE + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo_success + echo_success else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo_success - else - echo_warning - fi + log_warning_msg "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo_success + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo_success + else + echo_warning + fi + fi fi RETVAL=$? return $RETVAL diff --git a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh index 14b63b532f..ed5ca0a404 100644 --- a/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh +++ b/org.adempiere.server-feature/utils.unix/unix/idempiere_Suse.sh @@ -114,25 +114,32 @@ stop () { fi echo -n "Stopping iDempiere ERP: " cd $IDEMPIERE_HOME/utils - . $ENVFILE - echo "Trying direct kill with signal -15" - # try direct kill with signal 15, then signal 9 - kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 + . $ENVFILE + # try shutdown from OSGi console, then direct kill with signal 15, then signal 9 + log_warning_msg "Trying shutdown from OSGi console" + ( echo exit; echo y; sleep 5 ) | telnet localhost 12612 > /dev/null 2>&1 getidempierestatus if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo "Service stopped with kill -15" + echo "Service stopped with OSGi shutdown" else - echo "Trying direct kill with signal -9" - kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` - sleep 5 - getidempierestatus - if [ $IDEMPIERESTATUS -ne 0 ] ; then - echo "Service stopped with kill -9" - else - echo "Service hasn't stopped" - rc_failed 1 - fi + echo "Trying direct kill with signal -15" + kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo "Service stopped with kill -15" + else + echo "Trying direct kill with signal -9" + kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u` + sleep 5 + getidempierestatus + if [ $IDEMPIERESTATUS -ne 0 ] ; then + echo "Service stopped with kill -9" + else + echo "Service hasn't stopped" + rc_failed 1 + fi + fi fi rc_status -v } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java index 1f12252b4c..b3c582f6f3 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/adwindow/GridTabRowRenderer.java @@ -43,6 +43,7 @@ import org.adempiere.webui.util.ZKUpdateUtil; import org.compiere.model.GridField; import org.compiere.model.GridTab; import org.compiere.model.MStyle; +import org.compiere.model.MSysConfig; import org.compiere.model.X_AD_StyleLine; import org.compiere.util.DisplayType; import org.compiere.util.Env; @@ -83,7 +84,7 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt private static final String CELL_DIV_STYLE_ALIGN_CENTER = CELL_DIV_STYLE + "text-align:center; "; private static final String CELL_DIV_STYLE_ALIGN_RIGHT = CELL_DIV_STYLE + "text-align:right; "; - private static final int MAX_TEXT_LENGTH = 60; + private static final int MAX_TEXT_LENGTH_DEFAULT = 60; private GridTab gridTab; private int windowNo; private GridTabDataBinder dataBinder; @@ -307,6 +308,7 @@ public class GridTabRowRenderer implements RowRenderer, RowRendererExt */ private void setLabelText(String text, Label label) { String display = text; + final int MAX_TEXT_LENGTH = MSysConfig.getIntValue(MSysConfig.MAX_TEXT_LENGTH_ON_GRID_VIEW,MAX_TEXT_LENGTH_DEFAULT,Env.getAD_Client_ID(Env.getCtx())); if (text != null && text.length() > MAX_TEXT_LENGTH) display = text.substring(0, MAX_TEXT_LENGTH - 3) + "..."; // since 5.0.8, the org.zkoss.zhtml.Text is encoded by default