1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.model.tree.nodes;
14
15 import com.eviware.soapui.SoapUI;
16 import com.eviware.soapui.model.iface.Interface;
17 import com.eviware.soapui.model.project.Project;
18 import com.eviware.soapui.model.project.ProjectListener;
19 import com.eviware.soapui.model.testsuite.TestSuite;
20 import com.eviware.soapui.model.tree.AbstractTreeNode;
21 import com.eviware.soapui.model.tree.SoapUITreeNode;
22
23 /***
24 * SoapUITreeNode for Project implementations
25 *
26 * @author Ole.Matzura
27 */
28
29 public class ProjectTreeNode extends AbstractTreeNode
30 {
31 private InternalProjectListener internalProjectListener;
32
33 public ProjectTreeNode(Project project )
34 {
35 super( project, SoapUI.getInstance().getWorkspace() );
36
37 internalProjectListener = new InternalProjectListener();
38 project.addProjectListener( internalProjectListener);
39 }
40
41 public void release()
42 {
43 super.release();
44
45 getProject().removeProjectListener( internalProjectListener );
46 }
47
48 public int getChildCount()
49 {
50 return getProject().getInterfaceCount() + getProject().getTestSuiteCount();
51 }
52
53 public int getIndexOfChild(Object child)
54 {
55 Project project = getProject();
56 for( int c = 0; c < project.getInterfaceCount(); c++ )
57 {
58 if( project.getInterfaceAt( c ).getTreeNode() == child ) return c;
59 }
60
61 for( int c = 0; c < project.getTestSuiteCount(); c++ )
62 {
63 if( project.getTestSuiteAt( c ).getTreeNode() == child )
64 return c + project.getInterfaceCount();
65 }
66
67 return -1;
68 }
69
70 public SoapUITreeNode getChildNode(int index)
71 {
72 Project project = getProject();
73 if( index < project.getInterfaceCount() )
74 return project.getInterfaceAt( index ).getTreeNode();
75 else
76 return project.getTestSuiteAt( index-project.getInterfaceCount() ).getTreeNode();
77 }
78
79 public Project getProject()
80 {
81 return (Project) getModelItem();
82 }
83
84 private class InternalProjectListener extends InternalTreeNodeListener implements ProjectListener
85 {
86 public InternalProjectListener()
87 {
88 super( getTreeModel() );
89 }
90
91 public void interfaceAdded(Interface iface)
92 {
93 notifyNodeInserted( iface );
94 }
95
96 public void interfaceRemoved(Interface iface)
97 {
98 notifyNodeRemoved( iface );
99 }
100 public void testSuiteAdded(TestSuite testSuite)
101 {
102 notifyNodeInserted( testSuite );
103 }
104
105 public void testSuiteRemoved(TestSuite testSuite)
106 {
107 notifyNodeRemoved( testSuite );
108 }
109 }
110
111 }