Frage

In Eclipse RCP Art und Weise, Dinge zu tun, wo soll ich meine Modellobjekte? Und wenn sie geladen oder geändert werden, wie sollten sie auf die Ansichten sprechen?

Ich bin versucht zu portieren meine vorhandene Anwendung RCP Eclipse. Es könnte als IDE-ähnliche Anwendung zu sehen: ich eine Datei öffnen, die Verknüpfungen zu Quelldateien enthält. Die Quelldateien werden in der Strukturansicht angezeigt. Ich kann die Quelle bearbeiten, und bauen die Quellen in eine Ausgabe ...

Zum Beispiel, wenn ich den Befehl Öffnen behandeln, wo würde ich schaffen das Modellobjekt so meine Ansichten sie sehen kann? Ich würde eher die Verwendung von Singletons Managerklasse vermeiden, aber das vielleicht der einfachste Weg.

Interessante Code I-Browsing JDT Quellcode gefunden sind javacore, JavaModel, JavaModelManager. und Javaproject.


IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects();

public static IJavaProject create(IProject project) {
    if (project == null) {
        return null;
    }
    JavaModel javaModel = JavaModelManager.getJavaModelManager().getJavaModel();
    return javaModel.getJavaProject(project);
}

Siehe auch:

War es hilfreich?

Lösung

Ich glaube, dies wird am besten durch Hörer erreicht.

Ihre Daten (Modell) ist in privatem Paket, und nur Schnittstellen dieser Daten werden in einem öffentlichen Paket ausgesetzt.

alt text

Sie werden in diesem Wiki Abschnitt das Prinzip, sondern auch konkrete Beispiele hier .


In Bezug auf das Modell, ein OSGi-like approch wäre eine Host-Plugin als zugänglich Objekt zu verwenden. das heißt:

MyPlugin.getDefault().getModel()

Dies wird Ihnen die Einrichtung erlauben / entsorgen das Modell zusammen mit dem Plugin-Lebenszyklus.

Wenn das Modell in einem Plugin ist, kann es Erweiterungspunkte für die Zuhörer definieren. Eine Ansicht kann diese Erweiterungspunkte erstrecken, die dann automatisch in dem Laden des Modell-Plugin registriert. Die Ansichten des Modells für die benötigten Informationen abfragen können, sobald sie die erste Nachricht aus dem Modell zu bekommen.

Ein gutes Beispiel für die Datenbindung kann noreferrer"> diesen Artikel in

Andere Tipps

Wir neigen dazu, IEditorParts zu verwenden, um eine Kopie des Modells zu speichern halten (aus dem IEditorInput abgeleitet).

Wenn eine Ansicht muss über das Modell kennen, verwenden Sie dann den ISelection Rahmen und konzentrieren sich um das Modell bewegen aus dem Editor zur Ansicht.

scroll top