in uimaj-ep-configurator/src/main/java/org/apache/uima/taeconfigurator/editors/ui/IndexSection.java [270:396]
public void handleEvent(Event event) {
if (event.widget == addIndexButton) {
if (notAllowed("Adding an Index"))
return;
// creating the dialog and open it
AddIndexDialog dialog = new AddIndexDialog(this);
if (dialog.open() == Window.CANCEL)
return;
FsIndexDescription id = UIMAFramework.getResourceSpecifierFactory()
.createFsIndexDescription();
id.setLabel(dialog.indexName);
id.setTypeName(dialog.indexType);
id.setKeys(dialog.keys);
id.setKind(dialog.indexKind);
addFsIndexDescription(id);
updateIndexSpec(new TreeItem(tt, SWT.NONE), id);
maybeSetSelection(tt, tt.getItemCount() - 1);
packTree(tt);
setFileDirty();
} else if (event.widget == addKeyButton) {
if (notAllowed("Adding an Index"))
return;
TreeItem parent = tt.getSelection()[0];
if (null != parent.getParentItem())
parent = parent.getParentItem();
if (foolingAroundWithAnnotationIndex(parent))
return;
FsIndexDescription fsid = getFsIndexDescriptionFromTableTreeItem(parent);
AddIndexKeyDialog dialog = new AddIndexKeyDialog(this, fsid.getTypeName(),
handleDefaultIndexKind(fsid.getKind()), getAlreadyUsedFeatures(fsid));
FsIndexKeyDescription newKey = addOrEditIndexKey(dialog, null);
if (null != newKey) {
addFsIndexKeyDescription(fsid, newKey);
updateKeySpec(new TreeItem(parent, SWT.NONE), newKey);
parent.setExpanded(true);
setFileDirty();
}
} else if (event.widget == removeButton) {
TreeItem item = tt.getSelection()[0];
if (foolingAroundWithAnnotationIndex(item))
return;
Object o = item.getData();
if (o instanceof FsIndexDescription) {
if (Window.CANCEL == Utility.popOkCancel("Confirm Remove",
"Do you want to remove this index?", MessageDialog.WARNING))
return;
removeFsIndexDescription((FsIndexDescription) o);
} else {
if (Window.CANCEL == Utility.popOkCancel("Confirm Remove",
"Do you want to remove this key?", MessageDialog.WARNING))
return;
TreeItem parent = item.getParentItem();
FsIndexDescription fsid = getFsIndexDescriptionFromTableTreeItem(parent);
removeFsIndexKeyDescription(fsid, (FsIndexKeyDescription) o);
}
setSelectionOneUp(tt, item);
// tt.setSelection(tt.getTable().getSelectionIndex() - 1);
item.dispose();
setFileDirty();
} else if (event.widget == editButton || event.type == SWT.MouseDoubleClick) {
if (notAllowed("Adding an Index"))
return;
if (tt.getSelectionCount() != 1)
return;
TreeItem item = tt.getSelection()[0];
if (foolingAroundWithAnnotationIndex(item))
return;
Object o = item.getData();
if (o instanceof FsIndexDescription) {
FsIndexDescription fsid = (FsIndexDescription) o;
AddIndexDialog dialog = new AddIndexDialog(this, fsid);
if (dialog.open() == Window.CANCEL)
return;
valueChanged = false;
fsid.setLabel(setValueChanged(dialog.indexName, fsid.getLabel()));
fsid.setTypeName(setValueChanged(dialog.indexType, fsid.getTypeName()));
fsid.setKeys(setValueChangedKeys(dialog.keys, fsid.getKeys()));
fsid.setKind(setValueChanged(dialog.indexKind, handleDefaultIndexKind(fsid.getKind())));
updateIndexSpec(item, fsid);
if (valueChanged) {
packTree(tt);
setFileDirty();
}
} else { // editing a key
if (notAllowed("Adding an Index"))
return;
FsIndexKeyDescription key = (FsIndexKeyDescription) o;
TreeItem parent = item.getParentItem();
FsIndexDescription fsid = getFsIndexDescriptionFromTableTreeItem(parent);
AddIndexKeyDialog dialog = new AddIndexKeyDialog(this, fsid.getTypeName(),
handleDefaultIndexKind(fsid.getKind()), getAlreadyUsedFeatures(fsid), key);
valueChanged = false;
addOrEditIndexKey(dialog, key);
if (valueChanged) {
updateKeySpec(item, key);
packTree(tt);
setFileDirty();
}
}
} else if (event.widget == upButton) {
int i = getIndex(tt.getSelection()[0]);
swapIndexKeys(tt.getSelection()[0], i - 1);
setFileDirty();
} else if (event.widget == downButton) {
int i = getIndex(tt.getSelection()[0]);
TreeItem[] items = tt.getSelection()[0].getParentItem().getItems();
swapIndexKeys(items[i + 1], i + 1);
} else if (event.widget == exportButton) {
try {
indexImportSection.exportImportablePart("<fsIndexCollection>",
FsIndexCollectionNewWizard.FSINDEXCOLLECTION_TEMPLATE);
} finally {
refresh(); // update in case of throw, even
}
}
enable();
}