Hallo Community!
Viel Zeit ist verstrichen und ich hab sie genutzt um mich ein wenig einzulesen!
Noch immer will ich einen eigenen Strukturbaum erstellen, der sich aus gegebenen Java-Files zusammensetzt (diese Files befinden sich in einem Ordner).
Was hab ich bisher gemacht:
Ein simples Composite geschrieben:
Dieser Code hier scheint wohl mein Problem zu sein:
Ich gehe damit in mein Project, in den Ordner "src" und "bo" und lese dort die Javafiles aus (vec parst die Javafiles und gibt nur welche mit einer bestimmten Annotation aus).
Soweit, so gut ... in der Console gibt er mir meine 2 Files aus (mit den Elementen etc, also wie in der OutlineView), aber er gibt mir nur immer das letzte File im Viewer aus, also überschreibt die Vorhergehenden.
Nun meine Frage:
Wie schaffe ich es, alle auszugeben, bzw geht das überhaupt?
Schonmal danke im vorraus
Alex aka NapaZero
Viel Zeit ist verstrichen und ich hab sie genutzt um mich ein wenig einzulesen!
Noch immer will ich einen eigenen Strukturbaum erstellen, der sich aus gegebenen Java-Files zusammensetzt (diese Files befinden sich in einem Ordner).
Was hab ich bisher gemacht:
Ein simples Composite geschrieben:
Code:
public void createPartControl(Composite parent) {
viewer = new TreeViewer(parent);
ITreeContentProvider contentProvider = new StandardJavaElementContentProvider(true);
viewer.setContentProvider(contentProvider);
ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT |
JavaElementLabelProvider.SHOW_VARIABLE |
JavaElementLabelProvider.SHOW_RETURN_TYPE |
JavaElementLabelProvider.SHOW_TYPE );
viewer.setLabelProvider(labelProvider);
Object treePath = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getProject("Vger2-Schulung").getFolder("src").getFolder("/bo/"));
Vector<IJavaElement> childElements = new Vector<IJavaElement>();
for (int i = 0; i < vec.size(); i++) {
tmp = (IType)vec.get(i);
childElements.add((JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getProject("Vger2-Schulung").getFolder("src").getFile("/bo/"+tmp.getElementName()+".java"))));
// viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getProject("Vger2-Schulung").getFolder("src").getFolder("/bo/")/*.getFile(tmp.getElementName()+".java")*/));
}
System.out.println(childElements);
// viewer.add(treePath, childElements);
// viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getProject("Vger2-Schulung").getFolder("src").getFolder("/bo/")/*.getFile(tmp.getElementName()+".java")*/));
// for (int j = 0; j < childElements.size(); j++){
// viewer.setInput((IJavaElement)childElements.get(j));
// System.out.println((IJavaElement)childElements.get(j));
// }
// viewer.setInput((IJavaElement)childElements.firstElement()); //Hier weitermachen am Dienstag!!
// viewer.setInput((IJavaElement)childElements.lastElement());
DecoratingLabelProvider decorator = new DecoratingLabelProvider(labelProvider, new ProblemsLabelDecorator()); //ProblemsLabelDecorator := für sachen wie ! und X
viewer.setLabelProvider(decorator);
drillDownAdapter = new DrillDownAdapter(viewer);
viewer.setSorter(new NameSorter());
viewer.expandAll();
// Create the help context id for the viewer's control
PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "VgerPlugin2.viewer");
makeActions();
hookContextMenu();
hookDoubleClickAction();
contributeToActionBars();
}
Dieser Code hier scheint wohl mein Problem zu sein:
Code:
viewer.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot().getProject("Vger2-Schulung").getFolder("src").getFolder("/bo/").getFile(tmp.getElementName()+".java")));
Ich gehe damit in mein Project, in den Ordner "src" und "bo" und lese dort die Javafiles aus (vec parst die Javafiles und gibt nur welche mit einer bestimmten Annotation aus).
Soweit, so gut ... in der Console gibt er mir meine 2 Files aus (mit den Elementen etc, also wie in der OutlineView), aber er gibt mir nur immer das letzte File im Viewer aus, also überschreibt die Vorhergehenden.
Nun meine Frage:
Wie schaffe ich es, alle auszugeben, bzw geht das überhaupt?
Schonmal danke im vorraus
Alex aka NapaZero