private Info_Column createColumnInfo(final I_AD_InfoColumn field) { final Properties ctx = getCtx(); String columnName = field.getAD_Element().getColumnName(); String name = msgBL.translate(ctx, columnName); final int displayType = field.getAD_Reference_ID(); Class<?> colClass = DisplayType.getClass(displayType, true); String colSQL = Check.isEmpty(field.getDisplayField(), true) ? field.getSelectClause() : field.getDisplayField(); String idColSQL = null; if (DisplayType.isLookup(field.getAD_Reference_ID())) { colClass = KeyNamePair.class; idColSQL = field.getSelectClause(); final String displayColumnSQL = MLookupFactory.getLookupEmbed( ctx, colSQL, // BaseColumn null, // BaseTable field.getAD_Reference_ID(), field.getAD_Reference_Value_ID()); if (!Check.isEmpty(displayColumnSQL, true)) { colSQL = "(" + displayColumnSQL + ")"; } } if (DisplayType.List == field.getAD_Reference_ID()) { columnName = field.getName(); } if (columnName.endsWith("_ID") && DisplayType.ID == field.getAD_Reference_ID()) // should be only ID, 02883 { name = " "; colClass = IDColumn.class; } final Info_Column ic = new Info_Column(name, columnName, colClass); ic.setDisplayType(displayType); ic.setIDcolSQL(idColSQL); ic.setColSQL(colSQL); ic.setColumnName(columnName); // // Check/Load Column Controller final IInfoColumnController columnController = getInfoColumnControllerOrNull(field); if (columnController != null) { ic.setColumnController(columnController); columnController.customize(this, ic); } return ic; }