KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > views > ConfigContentProvider


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright
3  * notice. All rights reserved.
4  */

5 package org.terracotta.dso.views;
6
7 import org.eclipse.jface.viewers.ITreeContentProvider;
8 import org.eclipse.jface.viewers.Viewer;
9
10 import com.terracottatech.config.Application;
11 import com.terracottatech.config.DsoApplication;
12 import com.terracottatech.config.TcConfigDocument.TcConfig;
13
14 public class ConfigContentProvider implements ITreeContentProvider {
15   ConfigViewPart fPart;
16   
17   ConfigContentProvider(ConfigViewPart fPart) {
18     this.fPart = fPart;
19   }
20   
21   public Object JavaDoc[] getChildren(Object JavaDoc parentElement) {
22     if(parentElement instanceof RootsWrapper) {
23       return createRootWrappers((RootsWrapper)parentElement);
24     } else if(parentElement instanceof TransientFieldsWrapper) {
25       return createTransientFieldWrappers((TransientFieldsWrapper)parentElement);
26     } else if(parentElement instanceof AdditionalBootJarClassesWrapper) {
27       return createBootClassWrappers((AdditionalBootJarClassesWrapper)parentElement);
28     } else if(parentElement instanceof DistributedMethodsWrapper) {
29       return createDistributedMethodWrappers((DistributedMethodsWrapper)parentElement);
30     } else if(parentElement instanceof LocksWrapper) {
31       LocksWrapper locks = (LocksWrapper)parentElement;
32       return new Object JavaDoc[] {new AutolocksWrapper(locks), new NamedLocksWrapper(locks)};
33     } else if(parentElement instanceof InstrumentedClassesWrapper) {
34       InstrumentedClassesWrapper ic = ((InstrumentedClassesWrapper)parentElement);
35       return new Object JavaDoc[] {new IncludesWrapper(ic), new ExcludesWrapper(ic)};
36     } else if(parentElement instanceof AutolocksWrapper) {
37       return ((AutolocksWrapper)parentElement).createAutolockWrappers();
38     } else if(parentElement instanceof NamedLocksWrapper) {
39       return ((NamedLocksWrapper)parentElement).createNamedLockWrappers();
40     } else if(parentElement instanceof IncludesWrapper) {
41       return ((IncludesWrapper)parentElement).createIncludeWrappers();
42     } else if(parentElement instanceof ExcludesWrapper) {
43       return ((ExcludesWrapper)parentElement).createExcludeWrappers();
44     }
45     
46     return null;
47   }
48
49   static DistributedMethodWrapper[] createDistributedMethodWrappers(DistributedMethodsWrapper distributedMethods) {
50     int count = distributedMethods.sizeOfMethodExpressionArray();
51     DistributedMethodWrapper[] result = new DistributedMethodWrapper[count];
52     
53     for(int i = 0; i < count; i++) {
54       result[i] = new DistributedMethodWrapper(distributedMethods, i);
55     }
56     
57     return result;
58   }
59
60   static RootWrapper[] createRootWrappers(RootsWrapper rootsWrapper) {
61     int count = rootsWrapper.sizeOfRootArray();
62     RootWrapper[] result = new RootWrapper[count];
63     
64     for(int i = 0; i < count; i++) {
65       result[i] = new RootWrapper(rootsWrapper, i);
66     }
67     
68     return result;
69   }
70
71   static TransientFieldWrapper[] createTransientFieldWrappers(TransientFieldsWrapper transientFields) {
72     int count = transientFields.sizeOfFieldNameArray();
73     TransientFieldWrapper[] result = new TransientFieldWrapper[count];
74     
75     for(int i = 0; i < count; i++) {
76       result[i] = new TransientFieldWrapper(transientFields, i);
77     }
78     
79     return result;
80   }
81
82   static BootClassWrapper[] createBootClassWrappers(AdditionalBootJarClassesWrapper abjc) {
83     int count = abjc.sizeOfIncludeArray();
84     BootClassWrapper[] result = new BootClassWrapper[count];
85     
86     for(int i = 0; i < count; i++) {
87       result[i] = new BootClassWrapper(abjc, i);
88     }
89     
90     return result;
91   }
92   
93   public Object JavaDoc getParent(Object JavaDoc element) {
94     return null;
95   }
96
97   public boolean hasChildren(Object JavaDoc element) {
98     return element instanceof TreeRoot ||
99            element instanceof RootsWrapper && ((RootsWrapper)element).sizeOfRootArray() > 0 ||
100            element instanceof LocksWrapper ||
101            element instanceof AutolocksWrapper && ((AutolocksWrapper)element).sizeOfAutolockArray() > 0 ||
102            element instanceof NamedLocksWrapper && ((NamedLocksWrapper)element).sizeOfNamedLockArray() > 0 ||
103            element instanceof InstrumentedClassesWrapper ||
104            element instanceof IncludesWrapper && ((IncludesWrapper)element).sizeOfIncludeArray() > 0 ||
105            element instanceof ExcludesWrapper && ((ExcludesWrapper)element).sizeOfExcludeArray() > 0 ||
106            element instanceof TransientFieldsWrapper && ((TransientFieldsWrapper)element).sizeOfFieldNameArray() > 0 ||
107            element instanceof AdditionalBootJarClassesWrapper && ((AdditionalBootJarClassesWrapper)element).sizeOfIncludeArray() > 0 ||
108            element instanceof DistributedMethodsWrapper && ((DistributedMethodsWrapper)element).sizeOfMethodExpressionArray() > 0;
109   }
110
111   public Object JavaDoc[] getElements(Object JavaDoc inputElement) {
112     if(inputElement == TreeRoot.EMPTY_ROOT) {
113       return new Object JavaDoc[0];
114     } else if(inputElement instanceof TreeRoot) {
115       TcConfig config = ((TreeRoot)inputElement).getRoot();
116       if(config == null) {
117         return new Object JavaDoc[0];
118       } else {
119         Application app = config.getApplication();
120         if(app == null) app = config.addNewApplication();
121         DsoApplication dsoApp = app.getDso();
122         if(dsoApp == null) dsoApp = app.addNewDso();
123         
124         return new Object JavaDoc[] {
125             new RootsWrapper(dsoApp),
126             new LocksWrapper(dsoApp),
127             new TransientFieldsWrapper(dsoApp),
128             new InstrumentedClassesWrapper(dsoApp),
129             new DistributedMethodsWrapper(dsoApp),
130             new AdditionalBootJarClassesWrapper(dsoApp)
131           };
132       }
133     }
134     return null;
135   }
136
137   public void dispose() {
138     /**/
139   }
140
141   public void inputChanged(Viewer viewer, Object JavaDoc oldInput, Object JavaDoc newInput) {
142     /**/
143   }
144 }
145
Popular Tags