Code Search for Developers
 
 
  

TreeView.java from MASE: Agile Software Engineering at Krugle


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

MASE: Agile Software Engineering

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