(1)调用原始函数DefaultColumnModelFactory
columnModelFactory = new DefaultColumnModelFactory(new ColumnModelImpl(this.getFieldList()));
public DefaultColumnModelFactory(ColumnModel columnModel)
{
this.columnModel = columnModel;
}
(2)重写函数DefaultColumnModelFactory——updateColumnModel
columnModelFactory = new DefaultColumnModelFactory(pos, uiFieldLists, canCustomColumn, tableType)
{
@Override
public ColumnModel updateColumnModel(List<UIField> uiFieldList,ColumnModel colModel)
{
List<ColumnField> columnFieldList = new ArrayList<ColumnField>();
for (UIField uiField:uiFieldList)
{
ColumnField columnField = null;
if (uiField.getName().equalsIgnoreCase(SystemClassFieldEnum.ID.getName()))
{
boolean isTitleVisible = uiField.isTitleVisible();
String title = null;
if (isTitleVisible)
{
title = uiField.getTitle(MessageManager.getCurrentLanguage());
}
int width = uiField.getWidth() == null ? 100 : Integer.valueOf(uiField.getWidth());
columnField = new ColumnFieldIDImpl(uiField, uiField.getName(), title, width, true);
}
else
{
columnField = DefaultCustomColumnFieldFactory.createNormalField(uiField, classFieldMap.get(uiField.getName()), false);
columnField.setSortable(true);
if (SystemClassFieldEnum.UPDATETIME.getName().equalsIgnoreCase(uiField.getName()))
{
columnField.setSortDirection(SWT.DOWN);
}
}
columnField.setFieldFrom(FieldOrignTypeEnum.CLASS.toString());
columnFieldList.add(columnField);
}
colModel.setFieldList(columnFieldList);
setColumnModel(colModel);
return colModel;
}
};
(3)调用重写函数——updateColumnModel
List<UIField> uiFieldList = getUIFieldList(tableType, pos, defaultUIList, classifFK, classFKList);
ColumnModel colModel = new ColumnModelImpl();
this.columnModel = columnModelFactory.updateColumnModel(uiFieldList,colModel);