@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);
}
mTypeList.add(annotationType);
mTypeList.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
itemSelected();
}
});
Composite settingsComposite = new Composite(base, SWT.NONE);
GridLayout settingsLayout = new GridLayout();
settingsLayout.numColumns = 2;
settingsComposite.setLayout(settingsLayout);
// text style combo
Label styleText = new Label(settingsComposite, SWT.READ_ONLY);
styleText.setText("Style:");
// style combo
mStyleCombo = new Combo(settingsComposite, SWT.READ_ONLY | SWT.DROP_DOWN);
mStyleCombo.setEnabled(false);
mStyleCombo.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
AnnotationStyle style = getWorkingCopyAnnotationStyle(getSelectedType());
AnnotationStyle newStyle = new AnnotationStyle(style.getAnnotation(), AnnotationStyle.Style
.valueOf(mStyleCombo.getText()), style.getColor(), style.getLayer(), style.getConfiguration());
updateCustomStyleControl(newStyle, getSelectedType());
// Is there a nice way to do this ?!
if (styleConfigurationWidget.isVisible()) {
String configString = styleConfigurationWidget.getConfiguration();
if (configString != null) {
newStyle = new AnnotationStyle(newStyle.getAnnotation(), newStyle.getStyle(),
newStyle.getColor(), newStyle.getLayer(), configString);
}
}
setAnnotationStyle(newStyle);
}
public void widgetDefaultSelected(SelectionEvent e) {
// called when enter is pressed, not needed
}
});
AnnotationStyle.Style possibleStyles[] = AnnotationStyle.Style.values();
for (AnnotationStyle.Style style : possibleStyles) {
mStyleCombo.add(style.name());
}
// text color label
Label colorText = new Label(settingsComposite, SWT.NONE);
colorText.setText("Color:");
mColorSelector = new ColorSelector(settingsComposite);
mColorSelector.setEnabled(false);
mColorSelector.addListener(new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
AnnotationStyle style = getWorkingCopyAnnotationStyle( getSelectedType());
RGB colorRGB = mColorSelector.getColorValue();
Color color = new Color(colorRGB.red, colorRGB.green, colorRGB.blue);
setAnnotationStyle(new AnnotationStyle(
style.getAnnotation(), style.getStyle(),
color, style.getLayer(), style.getConfiguration()));
}
});
moveLayerUpButton = new Button(settingsComposite, SWT.NONE);
moveLayerUpButton.setText("Move layer up");
GridDataFactory.fillDefaults().span(2, 1).applyTo(moveLayerUpButton);
moveLayerUpButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
AnnotationStyle style = getWorkingCopyAnnotationStyle(getSelectedType());
setAnnotationStyle(new AnnotationStyle(
style.getAnnotation(), AnnotationStyle.Style.valueOf(mStyleCombo.getText()),
style.getColor(), style.getLayer() + 1, style.getConfiguration()));
mTypeList.update(getSelectedType(), null);
}
});
moveLayerDownButton = new Button(settingsComposite, SWT.NONE);
moveLayerDownButton.setText("Move layer down");
GridDataFactory.fillDefaults().span(2, 1).applyTo(moveLayerDownButton);
moveLayerDownButton.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e) {
}
public void widgetSelected(SelectionEvent e) {
AnnotationStyle style = getWorkingCopyAnnotationStyle(getSelectedType());
if (style.getLayer() - 1 >= 0) {
setAnnotationStyle(new AnnotationStyle(style
.getAnnotation(), AnnotationStyle.Style.valueOf(mStyleCombo.getText()),
style.getColor(), style.getLayer() - 1, style.getConfiguration()));
mTypeList.update(getSelectedType(), null);
}
}
});
// Insert style dependent configuration widget
styleConfigurationWidget = new TagStyleConfigWidget(settingsComposite);
GridDataFactory.fillDefaults().span(2, 1).applyTo(styleConfigurationWidget);
styleConfigurationWidget.setVisible(false);
styleConfigurationWidget.addListener(new CustomStyleConfigChangeListener() {
public void styleChanged(String configuration) {
AnnotationStyle style = getWorkingCopyAnnotationStyle(getSelectedType());
setAnnotationStyle(new AnnotationStyle(style.getAnnotation(),
style.getStyle(), style.getColor(), style.getLayer(), configuration));
}
});
// There is always at least the AnnotationFS type
mTypeList.getTable().select(0);