diff --git a/org.adempiere.base/src/org/compiere/model/MQuery.java b/org.adempiere.base/src/org/compiere/model/MQuery.java index 6547eb66df..99d34788ff 100644 --- a/org.adempiere.base/src/org/compiere/model/MQuery.java +++ b/org.adempiere.base/src/org/compiere/model/MQuery.java @@ -45,6 +45,11 @@ import org.compiere.util.ValueNamePair; */ public class MQuery implements Serializable { + /** + * + */ + private static final long serialVersionUID = 481623650333512326L; + /** * Get Query from Parameter * @param ctx context (to determine language) @@ -357,9 +362,6 @@ public class MQuery implements Serializable m_TableName = MTable.getTableName (Env.getCtx(), AD_Table_ID); } // MQuery - /** Serialization Info **/ - private static final long serialVersionUID = 4883859385509199306L; - /** Table Name */ private String m_TableName = ""; /** PInstance */ @@ -448,6 +450,11 @@ public class MQuery implements Serializable new ValueNamePair (NULL, " NULL "), new ValueNamePair (NOT_NULL, " !NULL ") }; + /** Operators for encrypted fields */ + public static final ValueNamePair[] OPERATORS_ENCRYPTED = new ValueNamePair[] { + new ValueNamePair (NULL, " NULL "), + new ValueNamePair (NOT_NULL, " !NULL ") + }; /** Operators for Numbers, Dates, Integers */ public static final ValueNamePair[] OPERATORS_NUMBERS = new ValueNamePair[] { diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java index 515ac989e2..86330bc8c0 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/FindWindow.java @@ -675,7 +675,7 @@ public class FindWindow extends Window implements EventListener, ValueCha mField.getVO().FieldLength = 32767; // a conservative max literal string - like oracle extended mField.getVO().DisplayLength = mField.getVO().FieldLength; } - if (mField.getVO().displayType == DisplayType.YesNo || mField.isEncrypted()) { + if (mField.getVO().displayType == DisplayType.YesNo || mField.isEncrypted() || mField.isEncryptedColumn()) { // Make Yes-No searchable as list GridFieldVO vo = mField.getVO(); GridFieldVO ynvo = vo.clone(m_simpleCtx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly); @@ -1965,12 +1965,19 @@ public class FindWindow extends Window implements EventListener, ValueCha { String columnName = column.getValue().toString(); int referenceType = -1; + boolean isEncrypted = false; if (columnName != null) { MTable table = MTable.get(Env.getCtx(), m_tableName); MColumn col = table.getColumn(columnName); referenceType = col.getAD_Reference_ID(); + GridField field = getTargetMField(columnName); + isEncrypted = (col.isEncrypted() || field.isEncrypted()); } - if (DisplayType.isLookup(referenceType) + if (isEncrypted) + { + addOperators(MQuery.OPERATORS_ENCRYPTED, listOperator); + } + else if (DisplayType.isLookup(referenceType) || DisplayType.YesNo == referenceType || DisplayType.Button == referenceType) {