Skip to content
Snippets Groups Projects
Commit 3e4a0aaf authored by Souad Belmejdoub's avatar Souad Belmejdoub
Browse files

Commit ITreeTestPanel.java and Tree.java classes

parent 05cff4c0
No related branches found
No related tags found
No related merge requests found
...@@ -52,7 +52,6 @@ import fr.soleil.comete.swt.util.TreeNodeTool; ...@@ -52,7 +52,6 @@ import fr.soleil.comete.swt.util.TreeNodeTool;
public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implements ITree, SelectionListener { public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implements ITree, SelectionListener {
protected final List<WeakReference<ITreeNodeSelectionListener>> selectionListeners; protected final List<WeakReference<ITreeNodeSelectionListener>> selectionListeners;
protected ITreeNode rootNode; protected ITreeNode rootNode;
/** /**
...@@ -70,6 +69,7 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen ...@@ -70,6 +69,7 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
return tree; return tree;
} }
@Override @Override
public ITreeNode getRootNode() { public ITreeNode getRootNode() {
return rootNode; return rootNode;
...@@ -96,6 +96,7 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen ...@@ -96,6 +96,7 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
@Override @Override
public void selectNodes(boolean keepPreviousSelection, ITreeNode... nodes) { public void selectNodes(boolean keepPreviousSelection, ITreeNode... nodes) {
TreeItem rootItem = getControl().getItem(0); TreeItem rootItem = getControl().getItem(0);
// find new items to select // find new items to select
...@@ -115,13 +116,17 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen ...@@ -115,13 +116,17 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
} }
} }
getControl().setSelection((TreeItem[]) itemsToSelect.toArray()); getControl().setSelection(itemsToSelect.toArray(new TreeItem[itemsToSelect.size()]));
} }
@Override @Override
public void deselectNodes(ITreeNode... nodes) { public void deselectNodes(ITreeNode... nodes) {
TreeItem rootItem = getControl().getItem(0);
for (ITreeNode node : nodes) {
TreeItem item = TreeNodeTool.findTreeItemFromTreeNode(node, rootItem);
getControl().deselect(item);
}
} }
@Override @Override
...@@ -130,6 +135,7 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen ...@@ -130,6 +135,7 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
// TODO fireSelectionChanged // TODO fireSelectionChanged
} }
@Override @Override
public ITreeNode[] getSelectedNodes() { public ITreeNode[] getSelectedNodes() {
return null; return null;
......
...@@ -15,13 +15,16 @@ import org.eclipse.swt.widgets.Group; ...@@ -15,13 +15,16 @@ import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Shell;
import fr.soleil.comete.definition.event.CometeMouseEvent;
import fr.soleil.comete.definition.event.CometeMouseEvent.MouseReason;
import fr.soleil.comete.definition.event.TreeNodeSelectionEvent; import fr.soleil.comete.definition.event.TreeNodeSelectionEvent;
import fr.soleil.comete.definition.listener.IMouseListener;
import fr.soleil.comete.definition.listener.ITreeNodeSelectionListener; import fr.soleil.comete.definition.listener.ITreeNodeSelectionListener;
import fr.soleil.comete.definition.widget.ITree; import fr.soleil.comete.definition.widget.ITree;
import fr.soleil.comete.definition.widget.util.BasicTreeNode; import fr.soleil.comete.definition.widget.util.BasicTreeNode;
import fr.soleil.comete.definition.widget.util.ITreeNode; import fr.soleil.comete.definition.widget.util.ITreeNode;
import fr.soleil.comete.swt.Label; import fr.soleil.comete.swt.Label;
import fr.soleil.comete.swt.TreeTest; import fr.soleil.comete.swt.Tree;
public class ITreeTestPanel extends AbstractTestPanel<ITree>{ public class ITreeTestPanel extends AbstractTestPanel<ITree>{
...@@ -43,6 +46,10 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{ ...@@ -43,6 +46,10 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{
removeTreeNodeSelectionListenerTest(theComponent); removeTreeNodeSelectionListenerTest(theComponent);
removeAllTreeNodeSelectionListenerTest(theComponent); removeAllTreeNodeSelectionListenerTest(theComponent);
hasTreeNodeSelectionListenerTest(theComponent); hasTreeNodeSelectionListenerTest(theComponent);
clearSelectionTest(theComponent);
selectedNodeTest(theComponent);
deselectNodesTest(theComponent);
getSelectedNodesTest(theComponent);
} }
private void setRootNodeTest(final ITree theComponent) { private void setRootNodeTest(final ITree theComponent) {
...@@ -101,6 +108,44 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{ ...@@ -101,6 +108,44 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{
}); });
} }
private void selectedNodeTest(final ITree theComponent) {
// Group
Group optionGroup = new Group(this, SWT.NONE);
optionGroup.setText("Selected nodes");
RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL);
rowLayout.spacing = 20;
optionGroup.setLayout(rowLayout);
final ITreeNode[] selectedNodes = {child};
final Button selectNodesButton = new Button(optionGroup, SWT.PUSH);
selectNodesButton.setText("Selected nodes");
selectNodesButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
theComponent.selectNodes(false, selectedNodes);
}
});
}
private void deselectNodesTest(final ITree theComponent) {
// Group
Group optionGroup = new Group(this, SWT.NONE);
optionGroup.setText("Deselect nodes");
RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL);
rowLayout.spacing = 20;
optionGroup.setLayout(rowLayout);
final ITreeNode[] deselectNodes = {child};
final Button deselectNodesButton = new Button(optionGroup, SWT.PUSH);
deselectNodesButton.setText("Deselect nodes");
deselectNodesButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
theComponent.deselectNodes(deselectNodes);
}
});
}
private void getNodeAtTest(final ITree theComponent) { private void getNodeAtTest(final ITree theComponent) {
// Group // Group
Group optionGroup = new Group(this, SWT.NONE); Group optionGroup = new Group(this, SWT.NONE);
...@@ -109,16 +154,83 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{ ...@@ -109,16 +154,83 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{
rowLayout.spacing = 20; rowLayout.spacing = 20;
optionGroup.setLayout(rowLayout); optionGroup.setLayout(rowLayout);
final Button getRootNodeIndexButton = new Button(optionGroup, SWT.PUSH); final Button getRootNodeIndexButton = new Button(optionGroup, SWT.TOGGLE);
getRootNodeIndexButton.setText("Get node at"); getRootNodeIndexButton.setText("Get node at");
final IMouseListener listener = new IMouseListener() {
@Override
public void mouseChanged(CometeMouseEvent event) {
MouseReason reason = event.getReason();
if (reason == MouseReason.PRESSED) {
int x = event.getX();
int y = event.getY();
ITreeNode nodeAt = theComponent.getNodeAt(x, y);
String message = "(null)";
if (nodeAt != null) {
message = nodeAt.getName();
}
MessageBox mb = new MessageBox(ITreeTestPanel.this.getShell(), SWT.ICON_INFORMATION
| SWT.OK);
mb.setText("Get Node At");
mb.setMessage(message);
mb.open();
}
}
};
getRootNodeIndexButton.addSelectionListener(new SelectionAdapter() { getRootNodeIndexButton.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
String message = "Get node at : "+ theComponent.getNodeAt(1, 1).getName(); if (getRootNodeIndexButton.getSelection()) {
theComponent.addMouseListener(listener);
} else {
theComponent.removeMouseListener(listener);
}
}
});
}
private void clearSelectionTest(final ITree theComponent) {
// Group
Group optionGroup = new Group(this, SWT.NONE);
optionGroup.setText("Clear selection");
RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL);
rowLayout.spacing = 20;
optionGroup.setLayout(rowLayout);
final Button clearSelectionButton = new Button(optionGroup, SWT.PUSH);
final Label label = new Label(optionGroup, SWT.NONE);
clearSelectionButton.setText("Clear selection");
clearSelectionButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
theComponent.clearSelection();
label.setText("Clear selection");
}
});
}
private void getSelectedNodesTest(final ITree theComponent) {
// Group
Group optionGroup = new Group(this, SWT.NONE);
optionGroup.setText("Get selected node");
RowLayout rowLayout = new RowLayout(SWT.HORIZONTAL);
rowLayout.spacing = 20;
optionGroup.setLayout(rowLayout);
final Button getSelectedNodesButton = new Button(optionGroup, SWT.PUSH);
getSelectedNodesButton.setText("Get selected node");
getSelectedNodesButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
String message = "Get selected node name : "+ theComponent.getSelectedNodes();
MessageBox mb = new MessageBox(ITreeTestPanel.this.getShell(), SWT.ICON_INFORMATION MessageBox mb = new MessageBox(ITreeTestPanel.this.getShell(), SWT.ICON_INFORMATION
| SWT.OK); | SWT.OK);
mb.setText("Root node "); mb.setText("Root node : ");
mb.setMessage(message); mb.setMessage(message);
mb.open(); mb.open();
} }
...@@ -251,7 +363,7 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{ ...@@ -251,7 +363,7 @@ public class ITreeTestPanel extends AbstractTestPanel<ITree>{
componentPanel.setLayoutData(componentGridData); componentPanel.setLayoutData(componentGridData);
TreeTest theComponent = new TreeTest(componentPanel, SWT.NONE); Tree theComponent = new Tree(componentPanel, SWT.NONE);
theComponent.setLayoutData(new RowData(150, 450)); theComponent.setLayoutData(new RowData(150, 450));
root = new BasicTreeNode(); root = new BasicTreeNode();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment