in CasViewerEclipsePlugin/uimaj-ep-casviewer-core/src/main/java/org/apache/uima/casviewer/ui/internal/style/ColoredTypeTreeSectionPart.java [365:608]
protected Section createContents ()
{
FormToolkit toolkit = managedForm.getToolkit();
Section section = getSection();
section.addControlListener(new ControlAdapter() {
public void controlResized(ControlEvent e) {
// section.layout(true);
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,
1, 10, 10);
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);
/*********************************************************************/
// Create Tree for Type System
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.grabExcessVerticalSpace = true;
gd.grabExcessHorizontalSpace = true;
gd.heightHint = 160;
tree.setLayoutData(gd);
// tree.setVisible(false);
tree.addSelectionListener(this);
// tree.addListener (SWT.Selection, new Listener () {
// public void handleEvent (Event event) {
// String string = event.detail == SWT.CHECK ? "Checked" : "Selected";
// System.out.println (tree.getSelection()[0] + " " + string);
// if ( ! ((TreeItem)event.item).getGrayed() ) {
// ((TreeItem)event.item).setGrayed(true);
// }
// event.doit = false;
// ((TreeItem)event.item).setChecked(false);
// }
// });
// Create Viewer for Tree
treeViewer = new CheckboxTreeViewer(tree);
treeViewer.setUseHashlookup(true);
treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
// Trace.trace();
if (_fireTreeSelection) {
setSelectedTreeNode (event);
managedForm.fireSelectionChanged(_instance, event.getSelection());
}
}
});
// For Table Tree Viewer
tree.setLinesVisible(true);
tree.setHeaderVisible(true);
String headers[] = { "Type Name", "", "FG","", "BG", "Selected", "Hide" };
final TreeColumn columns[] = new TreeColumn[headers.length];
for (int i = 0; i < headers.length; i++) {
TreeColumn tc = new TreeColumn(tree, SWT.NONE, i);
tc.setResizable(true);
tc.setText(headers[i]);
if (i==0) {
tc.setWidth(250);
} else if (i==1 || i==3) {
tc.setWidth(4);
} else {
tc.setWidth(60);
}
columns[i] = tc;
}
tree.pack(true);
contentProvider = new ColoredTypeTreeContentProvider(false);
treeViewer.setContentProvider(contentProvider);
treeViewer.setLabelProvider(new ColoredTypeTreeLabelProvider(treeViewer, false));
// _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 TreeBaseNode) {
// if ( ((TreeBaseNode) 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 ( ((TypeNode) element).getBgColor() == null ) {
// && ! treeViewer.getGrayed(element)) {
Trace.trace("Set gray: " + ((TypeNode) 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 TypeNode) {
// 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 ( ((TypeNode) element).getBgColor() == null ) {
// && ! treeViewer.getGrayed(element)) {
Trace.trace("Set gray: " + ((TypeNode) 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 ( ((TypeNode) 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 TypeNode) {
// 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 ( ((TypeNode) 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 ( ((TypeNode) 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