in CasViewerEclipsePlugin/uimaj-ep-casviewer-core/src/main/java/org/apache/uima/casviewer/ui/internal/type/TypesTreeSectionPart.java [387:643]
protected Section createContents ()
{
FormToolkit toolkit = managedForm.getToolkit();
Section section = getSection();
section.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent e) {
// section.layout(true);
// TODO Resize
// managedForm.reflow(true);
}
});
// Expand | Collapse
section.addExpansionListener(new ExpansionAdapter() {
public void expansionStateChanged(ExpansionEvent e) {
// System.out.println("form.reflow");
// managedForm.getForm().layout(true);
// Point pt = __parent.getSize();
// System.err.println("parent x: " + pt.x + " ; parent y: " + pt.y);
// pt = getSection().getSize();
// System.err.println(" Section x: " + pt.x + " ; y: " + pt.y);
// if ( e.getState() ) {
// // Expand
// TableWrapData td = (TableWrapData) section.getLayoutData();
// td.maxHeight = 400;
// }
// __parent.layout(true);
// ((Composite) getSection().getClient()).layout(true);
// if (tree == null) {
// tree.layout(true);
// }
// __managedForm.getForm().layout(true);
managedForm.reflow(true);
// pt = getSection().getSize();
// System.err.println(" Section x: " + pt.x + " ; y: " + pt.y);
}
});
section.setExpanded(false);
///////////////////////////////////////////////////////////////////////
// Create ToolBar
Composite sectionToolbarComposite = FormSection.createGridLayoutContainer (toolkit, section,
4, 0, 0);
section.setTextClient(sectionToolbarComposite);
///////////////////////////////////////////////////////////////////////
// toolkit.createCompositeSeparator(section);
// Create Composite
Composite client = FormSection.createGridLayoutContainer (toolkit, section,
2, 0, 0);
GridData gd = new GridData(GridData.FILL_BOTH|GridData.VERTICAL_ALIGN_BEGINNING);
gd.grabExcessVerticalSpace = true;
gd.grabExcessHorizontalSpace = true;
client.setLayoutData(gd);
toolkit.paintBordersFor(client);
section.setClient(client);
// immediateCreationButton = toolkit.createButton(client,
// "Immediately create annotation after highliting text", SWT.CHECK);
// immediateCreationButton.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
// gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
// gd.horizontalSpan = 2;
// gd.grabExcessHorizontalSpace = true;
// immediateCreationButton.setLayoutData(gd);
//
// selectedTypesCombo = createLabelAndCombo (toolkit, client,
// "Type used for adding annotation:", SWT.READ_ONLY);
/*********************************************************************/
// Create Tree for Type System
// if (prefUseFilteredTree) {
// // Create Filtered Tree
// PatternFilter patternFilter = new PatternFilter();
// patternFilter.setIncludeLeadingWildcard(true);
// FilteredTree fFilteredTree = new FilteredTree(client,
// SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL,
// patternFilter);
// fFilteredTree.setBackground(parent.getDisplay().getSystemColor(
// SWT.COLOR_LIST_BACKGROUND));
// // Get Viewer
// // viewer = fFilteredTree.getViewer();
//
// }
Tree tree = toolkit.createTree(client, SWT.CHECK);
// final TableTree tree = new TableTree (client, SWT.NULL);
gd = new GridData(GridData.FILL_BOTH|GridData.VERTICAL_ALIGN_BEGINNING);
gd.horizontalSpan = 2;
gd.grabExcessVerticalSpace = true;
gd.grabExcessHorizontalSpace = true;
gd.heightHint = 160;
tree.setLayoutData(gd);
// Create Viewer for Tree
treeViewer = new CustomCheckedTreeViewer(tree);
treeViewer.setUseHashlookup(true);
// treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
// public void selectionChanged(SelectionChangedEvent event) {
// // Trace.trace();
// if (_fireTreeSelection) {
// setSelectedTreeNode (event);
// managedForm.fireSelectionChanged(_instance, event.getSelection());
// }
// }
// });
treeViewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
Object[] objs = treeViewer.getCheckedElements();
// Collect type names that are checkedand have annotations
List<String> checkedList = new ArrayList<String>();
for (Object obj: objs) {
if (obj instanceof TypeNode) {
if (((TypeNode) obj).getObjectType() == IItemTypeConstants.ITEM_TYPE_TYPE
&& ((TypeNode) obj).getBgColor() != null) {
checkedList.add(((TypeDescription) ((TypeNode) obj).getObject()).getName());
}
}
}
// Need to hide previous annotations even if checkedList.size()==0
casViewControl.showAnnotationsByTypenameForView(checkedList, AnnotatedTextSectionPart.TAB_VIEW_ANNOTATIONS);
}
});
contentProvider = new TypesTreeContentProvider(prefFlatLayout4Types);
contentProvider.hideFeature(prefHideFeaturesInTypeSystem);
treeViewer.setContentProvider(contentProvider);
labelProvider = new TypesTreeLabelProvider(treeViewer, false, prefFlatLayout4Types);
treeViewer.setLabelProvider(labelProvider);
// _typeTreeViewer.addFilter(_typeTreeViewerFiler = new TypeSystemViewerFilter());
treeViewer.setSorter(new TypeSystemSorter());
// TypeSystemToolTips treeListener = new TypeSystemToolTips (tree);
// tree.addListener (SWT.Dispose, treeListener);
// tree.addListener (SWT.KeyDown, treeListener);
// tree.addListener (SWT.MouseMove, treeListener);
// tree.addListener (SWT.MouseHover, treeListener);
// treeViewer.addCheckStateListener(new ICheckStateListener () {
// public void checkStateChanged(CheckStateChangedEvent event) {
// Object element = event.getElement();
// if (element instanceof TypeNode) {
// if ( ((TypeNode) element).getBgColor() == null ) {
// treeViewer.setGrayed(event.getElement(), true);
// treeViewer.setChecked(event.getElement(), true);
// }
// }
// }
// });
/*
treeViewer.addTreeListener(new ITreeViewerListener() {
public void treeCollapsed(TreeExpansionEvent event)
{
Object element= event.getElement();
if ( ((TreeBaseNode) element).getBgColor() == null ) {
// && ! treeViewer.getGrayed(element)) {
Trace.trace("Set gray: " + ((TreeBaseNode) element).getLabel());
treeViewer.setChecked(element, true);
treeViewer.setGrayed(element, true);
}
}
public void treeCollapsed_SAVE(TreeExpansionEvent event)
{
Trace.trace();
Object element= event.getElement();
if (element instanceof TreeBaseNode) {
// if (_typeTreeViewer.getGrayed(element) == false)
// BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
// public void run() {
// setSubtreeChecked(element, fTree.getChecked(element), false);
// }
// });
// Widget item = _typeTreeViewer.testFindItem(element);
// _typeTreeViewer.getTree().
if ( ((TreeBaseNode) element).getBgColor() == null ) {
// && ! treeViewer.getGrayed(element)) {
Trace.trace("Set gray: " + ((TreeBaseNode) element).getLabel());
// TreeItem treeItem = (TreeItem) treeViewer.testFindItem(element);
// treeItem.setChecked(true);
// treeItem.setGrayed(true);
// treeViewer.setChecked(element, true);
// treeViewer.setGrayed(element, true);
}
Object[] children = contentProvider.getChildren(element);
for (int i=0; i<children.length; ++i) {
if ( ((TreeBaseNode) children[i]).getBgColor() == null ) {
// && ! _typeTreeViewer.getGrayed(children[i])) {
treeViewer.setChecked(children[i], true);
treeViewer.setGrayed(children[i], true);
}
}
} else {
if (!treeViewer.getGrayed(element)) {
treeViewer.setChecked(element, true);
treeViewer.setGrayed(element, true);
}
}
}
public void treeExpanded(TreeExpansionEvent event) {
Object element= event.getElement();
if (element instanceof TreeBaseNode) {
// if (_typeTreeViewer.getGrayed(element) == false)
// BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
// public void run() {
// setSubtreeChecked(element, fTree.getChecked(element), false);
// }
// });
// Widget item = _typeTreeViewer.testFindItem(element);
// _typeTreeViewer.getTree().
if ( ((TreeBaseNode) element).getBgColor() == null ) {
// && ! treeViewer.getGrayed(element)) {
treeViewer.setChecked(element, true);
treeViewer.setGrayed(element, true);
}
Object[] children = contentProvider.getChildren(element);
for (int i=0; i<children.length; ++i) {
if ( ((TreeBaseNode) children[i]).getBgColor() == null ) {
// && ! _typeTreeViewer.getGrayed(children[i])) {
treeViewer.setChecked(children[i], true);
treeViewer.setGrayed(children[i], true);
}
}
} else {
if (!treeViewer.getGrayed(element)) {
treeViewer.setChecked(element, true);
treeViewer.setGrayed(element, true);
}
}
}
});
*/
createSectionToolbar (toolkit, section, sectionToolbarComposite,
treeViewer);
/*********************************************************************/
// DnDTreeViewer dnd = new DnDTreeViewer (this);
// dnd.initDragAndDrop (_typeTreeViewer);
/*********************************************************************/
/* Set Selection Provider */
/*********************************************************************/
/* if (__workbenchPartSite != null) {
__workbenchPartSite.setSelectionProvider(_typeTreeViewer);
}
*/
createContextMenu(treeViewer.getControl());
section.setExpanded(true);
// Trace.trace();
return section;
} // createContents