Code Search for Developers
 
 
  

TestHierarchyDocument.java from MASE: Agile Software Engineering at Krugle


Show TestHierarchyDocument.java syntax highlighted

package ca.ucalgary.cpsc.ebe.fitClipse.ui.testHierarchy;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.internal.UIPlugin;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

import ca.ucalgary.cpsc.ebe.fitClipse.connector.IServerConnector;
import ca.ucalgary.cpsc.ebe.fitClipse.connector.ServerConnectorFactory;
import ca.ucalgary.cpsc.ebe.fitClipse.ui.testHierarchy.model.WikiPageModel;

public class TestHierarchyDocument {

	public TestHierarchyDocument(){

	}
	public WikiPageModel buildModel() throws Exception{
		IServerConnector instance = ServerConnectorFactory.getServerInstance(null);

		String xmlDoc = "<fit-tree></fit-tree>";
		if(instance != null){
			xmlDoc = instance.getWikiPageTree();
		}else{
			System.out.println("NULL POINTER (CONNECTOR)");
			MessageDialog.openWarning(UIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(), "Warning", "You have not connected to a server!");
		}
		InputStream xmlStream = new ByteArrayInputStream(xmlDoc.getBytes());
		System.out.println(xmlDoc);
		
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		WikiPageModel root = new WikiPageModel(null);
		root.setName("root");
		try{
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document dom = null;
			dom = db.parse(xmlStream);
			Node node = dom.getFirstChild().getFirstChild();
			while(node != null){
				if(node.getNodeType() == Node.ELEMENT_NODE){
					Element element = (Element)node;
					WikiPageModel model = new WikiPageModel(root);
					model.setName(element.getAttribute("name").substring(1, element.getAttribute("name").length()));
					if("true".equals(element.getAttribute("project"))){
						model.setProject(true);
					}
					if("true".equals(element.getAttribute("storyCard"))){
						model.setStoryCard(true);
					}
					if("true".equals(element.getAttribute("fitTest"))){
						model.setFitTest(true);
					}
					if("true".equals(element.getAttribute("release"))){
						model.setRelease(true);
					}
					if("true".equals(element.getAttribute("task"))){
						model.setTask(true);
					}if("true".equals(element.getAttribute("iteration"))){
						model.setIteration(true);
					}
					
					root.addChild(model);
			
					doChildren(element, "", model);
				}
				node = node.getNextSibling();
			}

		}catch(Exception e){
			return null;
		}
		return root;

	}
	
	
	
	private void doChildren(Element element, String nameSpace, WikiPageModel parent){
		nameSpace += element.getAttribute("name");
		Node child = element.getFirstChild();
		
			//we have at least one child node
			while(child != null){
				if(child.getNodeType() == Node.ELEMENT_NODE){
					Element childElement = (Element)child;	
					WikiPageModel model = new WikiPageModel(parent);
					model.setName(childElement.getAttribute("name").substring(1, childElement.getAttribute("name").length()));
					model.setNameSpace(nameSpace);
					if("true".equals(childElement.getAttribute("project"))){
						model.setProject(true);
					}
					if("true".equals(childElement.getAttribute("storyCard"))){
						model.setStoryCard(true);
					}
					if("true".equals(childElement.getAttribute("fitTest"))){
						model.setFitTest(true);
					}
					if("true".equals(childElement.getAttribute("release"))){
						model.setRelease(true);
					}
					if("true".equals(childElement.getAttribute("task"))){
						model.setTask(true);
					}if("true".equals(childElement.getAttribute("iteration"))){
						model.setIteration(true);
					}
					parent.addChild(model);
					doChildren(childElement, nameSpace, model);
				}
				child = child.getNextSibling();
			}
			
		
		
	}

}



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

  menu/
    actions/
      DeleteAction.java
      GenerateFixtureAction.java
      NewFitPageAction.java
      NewWikiPageAction.java
      RefreshViewAction.java
      RunFitSuiteAction.java
      RunLastAction.java
      RunTestAction.java
      toggleFitTestAttributeAction.java
  model/
    WikiPageModel.java
  TestHierarchyContentProvider.java
  TestHierarchyController.java
  TestHierarchyDocument.java
  TestHierarchyLabelProvider.java
  TestHierarchyView.java