Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » GEF » Check box to be inserted for each node in the tree(Check box to be inserted for each node in the tree)
Check box to be inserted for each node in the tree [message #1440288] Wed, 08 October 2014 07:00
Abhishek SA is currently offline Abhishek SAFriend
Messages: 7
Registered: September 2014
Junior Member
Hi,

I have a treeView with nodes as in Image (current.png). I need to insert Check box for each node in the tree as in Image(required.png). I am slightly new to GEF . Kindly help . Here is the code:

protected Control createTreeContents(Composite parent) {

final Composite composite = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout(1, false);
composite.setLayout(layout);

Label label = new Label(composite, SWT.NONE);
//label.setBounds(new Rectangle(5, 5, 255, 16));

if (targetClasses.size() == 1) {
label.setText("Select the "
+ getTargetClassSimpleName((Class) targetClasses.get(0))
+ " by clicking on your selection:");
} else {
label.setText("Select the element by clicking on your selection:");
}


treeNode = new DiagramElementTreeNode(
(DiagramElement) model.getTopLevelPackages().get(0));
// Recursively creates the nodes of the tree, retaining only the list of
// target model classes.
treeNode.setTargetClasses(targetClasses);

final PageBook pageBook = new PageBook(composite, SWT.NULL);
GridData gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.grabExcessVerticalSpace = true;
gd.horizontalSpan = GridData.FILL;
gd.verticalSpan = GridData.FILL;
pageBook.setLayoutData(gd);

treeViewer = new TreeViewer(pageBook, SWT.H_SCROLL | SWT.V_SCROLL
| SWT.FILL);
treeViewer.setContentProvider(new TreeContentProvider());
treeViewer.setLabelProvider(new TreeLabelProvider());
treeViewer.setAutoExpandLevel(2);
treeViewer.setInput(treeNode);
treeViewer.setSorter(new ViewerSorter());

treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent arg0) {
IStructuredSelection selection = (IStructuredSelection) treeViewer
.getSelection();
DiagramElementTreeNode node = (DiagramElementTreeNode) selection
.getFirstElement();

if (!firstSelection) {
Iterator itTargetClasses = targetClasses.iterator();
while (itTargetClasses.hasNext()) {
Class targetClass = (Class) itTargetClasses.next();
if (targetClass.isInstance(node.getValue())) {
selectedElement = node.getValue();
close();
}
}
} else {
firstSelection = false;
}

}
});

return composite;
}


Contents of DiagramElementTreeNode.java

public class DiagramElementTreeNode implements ITreeNode {

private ITreeNode parent;

private List<ITreeNode> children = new ArrayList<ITreeNode>();

private DiagramElement element;

//private Class targetClass;

private List<Class> targetClasses = new ArrayList<Class>();

public DiagramElementTreeNode(DiagramElement element) {
this(null, element);
}

public DiagramElementTreeNode(ITreeNode parent, DiagramElement element) {
this.element = element;
this.parent = parent;
}

private void createChildren(DiagramElement diagramElement) {
try {
if (diagramElement instanceof UmlPackage) {
UmlPackage umlPackage = (UmlPackage) diagramElement;
Iterator<DiagramElement> iterator = umlPackage.getElements().iterator();
while (iterator.hasNext()) {
DiagramElement child = iterator.next();
if (child instanceof UmlPackage) {
DiagramElementTreeNode childTreeNode = new DiagramElementTreeNode(
this, child);
childTreeNode.setTargetClasses(targetClasses);
if (targetClasses.contains(UmlPackage.class) || childTreeNode.hasChildren()||child.hasDescribingDiagram()) {
children.add(childTreeNode);
}
} else {
Iterator<Class> itTargetClasses = targetClasses.iterator();
while (itTargetClasses.hasNext()) {
Class targetClass = itTargetClasses.next();
if (targetClass.isInstance(child)) {
DiagramElementTreeNode childTreeNode = new DiagramElementTreeNode(
this, child);
childTreeNode.setTargetClass(targetClass);
children.add(childTreeNode);
}
}

}
}
}
Collections.sort(children,ITreeNode.nodeComparator);
} catch (Exception e) {
LoggingUtil.logError(e);
}
}
  • Attachment: current.png
    (Size: 9.90KB, Downloaded 125 times)
  • Attachment: required.png
    (Size: 33.16KB, Downloaded 131 times)
Previous Topic:Is Partial Mouse selection possible in GEF?
Next Topic:Doubt about save at MultiPageEditor and drag drop a graphic within another
Goto Forum:
  


Current Time: Tue Mar 19 07:21:56 GMT 2024

Powered by FUDForum. Page generated in 0.01837 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top