Show TreeView.java syntax highlighted
package treeView;
import java.util.LinkedList;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.events.MenuAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.GridData;
import plugin.DeveloperCoordinator;
import plugin.ICoordinator;
import testResultView.TestResultView;
import testRunner.FitManager;
import view.FitView;
public class TreeView extends ViewPart {
public static final String ID = "treeView.TreeView"; // TODO Needs to be whatever is mentioned in plugin.xml
private Composite top = null;
private Tree tree = null;
TreeViewDocument treeData = null;
private Button refreshBtn = null;
@Override
public void createPartControl(Composite parent) {
GridData gridData1 = new org.eclipse.swt.layout.GridData();
gridData1.horizontalAlignment = org.eclipse.swt.layout.GridData.CENTER;
gridData1.verticalAlignment = org.eclipse.swt.layout.GridData.CENTER;
GridLayout gridLayout = new GridLayout();
gridLayout.makeColumnsEqualWidth = false;
gridLayout.horizontalSpacing = 5;
top = new Composite(parent, SWT.NONE);
top.setLayout(gridLayout);
createTree2();
refreshBtn = new Button(top, SWT.NONE);
refreshBtn.setText("Refresh View");
refreshBtn.setLayoutData(gridData1);
refreshBtn.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
refreshView();
}
});
DeveloperCoordinator dc= DeveloperCoordinator.getInstance();
dc.register(this);
}
public void refreshView(){
if(treeData == null){
treeData= new TreeViewDocument();
}
treeData.Refresh(tree);
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
/**
* This method initializes tree
*
*/
private void createTree() {
}
/**
* This method initializes tree
*
*/
private void createTree2() {
GridData gridData = new org.eclipse.swt.layout.GridData();
gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
gridData.grabExcessVerticalSpace = true;
gridData.grabExcessHorizontalSpace = true;
gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
tree = new Tree(top, SWT.NONE);
tree.setLayoutData(gridData);
tree.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
// public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
// onItemSelect(tree.getSelection()[0]);
public void mouseDoubleClick(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseDoubleClick(e);
onItemSelect(tree.getSelection()[0]);
}
});
Menu popUpMenu = new Menu(top.getShell(),SWT.POP_UP);
tree.setMenu(popUpMenu);
MenuItem runItem = new MenuItem(popUpMenu,SWT.CASCADE);
runItem.setText("Run");
Menu runMenu = new Menu(popUpMenu);
runItem.setMenu(runMenu);
MenuItem runTestItem = new MenuItem(runMenu,SWT.PUSH);
runTestItem.setText("Run As Test");
runTestItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
String testName=getFullTestName(tree.getSelection()[0]);
FitManager fit = FitManager.getFitManager();
fit.CreateTest(testName);
fit.runTests();
fit.clearTests();
String Url = fit.getResultTestRoot()+ "\\" + testName.substring(1) + ".html";
ICoordinator coordinator = DeveloperCoordinator.getInstance();
if(coordinator.isViewRegistered(TestResultView.class)){
TestResultView testResultView = null;
testResultView = (TestResultView)(coordinator.getView(TestResultView.class));
testResultView.refreshBrowser(Url);
}else{
//later load view
}
}
});
MenuItem runTestSuiteItem = new MenuItem(runMenu,SWT.PUSH);
runTestSuiteItem.setText("Run As Test Suite");
runTestSuiteItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event e) {
LinkedList <String> testSuite= new LinkedList <String> ();
TreeItem parent = tree.getSelection()[0];
doItem(parent, testSuite);
System.out.println("Number of tests: " + testSuite.size());
FitManager fit = FitManager.getFitManager();
for(String s : testSuite){
fit.CreateTest(s);
}
fit.runTests();
fit.clearTests();
// String Url = fit.getResultTestRoot()+ "\\" + testName.substring(1) + ".html";
// ICoordinator coordinator = DeveloperCoordinator.getInstance();
// if(coordinator.isViewRegistered(TestResultView.class)){
// TestResultView testResultView = null;
// testResultView = (TestResultView)(coordinator.getView(TestResultView.class));
// testResultView.refreshBrowser(Url);
//
// }else{
// //later load view
//
// }
//
}
private void doItem(TreeItem item, LinkedList<String> list){
list.add(getFullTestName(item));
//recurse through children
TreeItem[] children = item.getItems();
for(int i = 0; i < children.length; i++){
doItem(children[i], list);
}
}
});
// tree.addMouseListener(new MenuAdapter)(){
// public void
// }
// );
treeData = new TreeViewDocument();
treeData.Refresh(tree);
}
private void onItemSelect(TreeItem item){
try{
StringBuffer title = new StringBuffer();
recurseTree(item, title);
ICoordinator coordinator=DeveloperCoordinator.getInstance();
if (coordinator.isViewRegistered(FitView.class)){
FitView fv=(FitView) (coordinator.getView(FitView.class));
fv.refreshWikiEditor(title.toString());
}
else{
//TODO: poopen view
}
}catch(Exception e){
e.printStackTrace();
}
}
private void recurseTree(TreeItem item, StringBuffer buffer){
if(item != null){
recurseTree(item.getParentItem(), buffer);
buffer.append(item.getText());
}
}
private String getFullTestName(TreeItem item){
StringBuffer title = new StringBuffer();
recurseTree(item, title);
return title.toString();
}
}
See more files for this project here
The MASE project investigates methods to support the coordination and executable acceptance testing of software projects. Keywords: Agile methods, distributed teams, Extreme Programming. See http://ebe.cpsc.ucalgary.ca/ebe for more information.
Project homepage:
http://sourceforge.net/projects/mase
Programming language(s): Java,XML
License: other
TreeView.java
TreeViewDocument.java