protected Control createContents(Composite parent) {
// Set a size to fix UIMA-2115
setSize(new Point(350,350));
TypeSystem typeSystem = getTypeSystem();
if (typeSystem == null) {
isTypeSystemPresent = false;
Label message = new Label(parent, SWT.NONE);
message.setText("Please set a valid typesystem file first.");
return message;
}
Composite base = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
base.setLayout(layout);
// type text
Label typeText = new Label(base, SWT.NONE);
typeText.setText("Annotation types:");
GridData typeTextGridData = new GridData();
typeTextGridData.horizontalSpan = 2;
typeText.setLayoutData(typeTextGridData);
// type list
mTypeList = new TableViewer(base, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
GridData typeListGridData = new GridData();
typeListGridData.horizontalAlignment = SWT.FILL;
typeListGridData.grabExcessVerticalSpace = true;
typeListGridData.verticalAlignment = SWT.FILL;
typeListGridData.verticalSpan = 2;
mTypeList.getControl().setLayoutData(typeListGridData);
mTypeList.getTable().setHeaderVisible(true);
TableViewerColumn typeColumn = new TableViewerColumn(mTypeList, SWT.LEFT);
typeColumn.getColumn().setText("Type");
typeColumn.getColumn().setWidth(250);
typeColumn.setLabelProvider(new CellLabelProvider(){
@Override
public void update(ViewerCell cell) {
Type type = (Type) cell.getElement();
cell.setText(type.getName());
}});
TableViewerColumn layerColumn = new TableViewerColumn(mTypeList, SWT.LEFT);
layerColumn.getColumn().setText("Layer");
layerColumn.getColumn().setWidth(50);
layerColumn.setLabelProvider(new CellLabelProvider() {
@Override
public void update(ViewerCell cell) {
Type type = (Type) cell.getElement();
AnnotationStyle style = getWorkingCopyAnnotationStyle(type);
cell.setText(Integer.toString(style.getLayer()));
}});
Type annotationType = typeSystem.getType(CAS.TYPE_NAME_ANNOTATION);
List<Type> types = typeSystem.getProperlySubsumedTypes(annotationType);
for (Type type : types) {
// inserts objects with type Type
mTypeList.add(type);
}