# Projektbaum Ansicht erstellen



## Bergtroll (16. Okt 2009)

Hallo werte Java Gemeinde,

ich habe wieder mal eine Frage, bei der ich nicht so richtig nen Ansatzpunkt finde. Für mein Softwareprojekt möchte ich, ganz so wie in Eclipse, eine Baumstruktur haben, die mir die Inhalte eines Workspace auflistet. Der Workspace soll austauschbar sein und dann jeweils die beinhaltete Struktur laden.

Relationen im Workspace:
- Workspace HAS_MANY Projekt
- Projekt HAS_MANY ScientificDatasets
- ScientificDatasets HAS_ONE Dataset (Das File, dass die Daten enthält)
- ScientificDatasets HAS_ONE Description (Beschreibung des Datafiles, variable Hashmap)

- ScientificDatasets HAS_MANY Visualizations (Die unterschiedlichen Darstellungen des Datafiles)

- Visualization HAS_ONE VolumeSourceObject (beschreibt, wie das Precalculate File zu verwenden ist)
- VolumeSourceObject HAS_ONE PrecalculatedValuesFile

- Visualization HAS_ONE VolumeRepresentationObject (beschreibt, mit welcher Technik das VolumeSourceObject visualisiert wird)

- Visualizations HAS_ONE ViewportSettingsObject (beschreibt die Visualisierungseinstellungen)

Im Prinzip möchte ich diese Verknüpfungen als Baumstruktur darstellen. Die zwei Objekte, die einem Binary File im Filesystem entsprechen müssen, sind Dataset und PrecalculatedValuesFile. Alles andere könnte man doch in einem XML File unterbringen? Da gibt es doch sicher eine automatisierung für? Der User soll die Möglichkeit haben, Alle diese Objete per Kontextmenu zu erstellen, editieren und löschen. Vor allem soll aber die Struktur gespeichert werden und beim nächsten laden des Workspace wieder verfügbar sein.

Es soll in der Software so Aussehen (halt mit Logos später) wie im linken bereich unter Projects:







Ich denke, dass mir eines der Persistenz Frameworks helfen könnte, bin mir aber nicht sicher. Ich stelle mir vor allem die Frage, wie ich es anstelle, dass die Software beim nächsten Start wieder ihren Workspace öffnet, und sich aber auch andere bereits einmal geöffnete Workspaces merkt. Wo legt man diese Information am Besten ab? Ja, zu den Objekte, die eine entsprechung im Filesystem haben müssen, die sollten nicht in eine Datenbank, da sie sehr groß (>2GB) werden können. Außerdem sollte die Software auch ohne DB System lauffähig sein.

Hoffe, ich konnte halbwegs klar vermitteln, was ich mir vorstelle. Könnt ihr mir einen Rat geben, wo ich anfange, zu lesen, wie man das Vorhaben umsetzt? Gibt es ein Framework zum Speichern auf dem Filesystem? 

Vielleicht würde es auch Sinn machen, den entsprechenden Source Code in Eclipse mal zu begutachten. Habe das ganze Eclipse Projekt als CVS importiert, ist halt sehr viel, ich habs noch nicht gefunden. Wisst ihr, welcher Teil für den Teil ProjectExplorer <-> Filesystem zuständig ist?


----------



## Wildcard (16. Okt 2009)

Sehr viel von deinem Post habe ich nicht verstanden, ausser das du einen Projektbaum anzeigen willst.



> Vielleicht würde es auch Sinn machen, den entsprechenden Source Code in Eclipse mal zu begutachten. Habe das ganze Eclipse Projekt als CVS importiert, ist halt sehr viel, ich habs noch nicht gefunden. Wisst ihr, welcher Teil für den Teil ProjectExplorer <-> Filesystem zuständig ist?



ProjectExplorer anklicken -> STRG + SHIFT + F1 schon kannst du den Source des Project Explorers sehen sofern du source installiert hast. Im Grunde ist das nur ein CommonViewer für das CommonNavigatorFramework
Eclipse Common Navigator Framework

Wenn du dich konzeptionell schon stark an Eclipse orientierst, warum versuchst du es nicht einfach mit einem Eclipse RCP. Das ist leichter als du vielleicht denkst und Eclipse ist so modular aufgebaut das du wirklich nur das in deinen RCP packen musst was du brauchst (sprich, das Ergebnis wird nichts mehr mit einer Java IDE zu tun haben wenn du es nicht möchtest).


----------



## Bergtroll (18. Okt 2009)

Hoi Wildcard, vielen Dank für die schnelle Antwort, bin gerade fleissig dabei, mich in Eclipse RCP einzuarbeiten. Blöd iss nur, dass ich jetzt noch SWT lernen muss, hoffe, das iss nich wieder ganz anders als Swing. Und die zweite Sache ist, dass ich wohl selbst irgendwie die Java3D Plugins basteln muss, für jede Prozessor / OS Combi. Habe da was von Fragments gelesen... k.a. ich werde es sehen 

Viele Grüße,
der Bergtroll


----------



## Wildcard (19. Okt 2009)

Richtig, native Bibliotheken lassen sich wunderbar als Fragmente mit OSGi Filter verpacken. Das ist wesentlich einfacher als bei normalen Java Projekten da OSGi dafür sorgt wie das die Bibliotheken verfügbar sind und geladen werden.


----------

