Frage

Ich habe eine Schaltfläche, die Teile erstellt.Ich muss den aktiven Teil abrufen, der derzeit im Teilestapel sichtbar ist, und speichere ihn als Schlüssel für einen bestimmten Wert.Wie bekomme ich den aktiven Teil?Ich habe den folgenden Code verwendet, aber er ruft alle Teile im Teilestapel ab.

            MPart graphpart = partService
                    .createPart("com.abc.xyz.project.partDescriptor.1");
            MPartStack stack = (MPartStack) modelService.find(
                    "com.abc.xyz.project.partstack.2", application);

            for (int i = 0; i < stack.getChildren().size(); i++) {
                if (stack.getChildren().get(i).isVisible()) {
                    System.out.println("values"
                            + ((MPart) stack.getChildren().get(i)).getLabel());
                    application.getTransientData().put(
                            ((MPart) stack.getChildren().get(i)).getLabel(),
                            selectedFiles);
                }
            }
War es hilfreich?

Lösung

Von einem MPart Sie können den Container direkt erhalten mit:

final MElementContainer<MUIElement> container = part.getParent();

(Das wird das sein MPartStack)

Sie können dann die aktuell ausgewählten untergeordneten Stapel abrufen mit:

MUIElement selected = container.getSelectedElement();

Andere Tipps

Verwenden des Elternteils des Teils und sein ausgewähltes Element funktionierte auch für mich.parterservice.getActivePart () funktionierte nicht, weil wir in unserer Anwendung mehrere Teilstapel haben, und ich brauchte einen Teil von einem Teilstapel, der sich in diesem Moment nicht im Fokus befand. Ich musste auch den Muielement auf ein MPART werfen, weil ich ein MPART zurückgeben musste, das kein Problem war, da MPART von Muielement reicht. Hier ist mein Code: Bildbeschreibung eingeben hier

Ich habe die Antwort gefunden.Es funktioniert jetzt.

generasacodicetagpre.

Wir sollten den Mattervice verwenden, um einen bestimmten Stapel zu überprüfen, ist sichtbar oder nicht.

Dies ist mit Eclipse E4 ziemlich einfach:

    .
  1. Injizieren Sie den EpartService

  2. Erkundigen Sie dann vom MiTervice den aktiven Teil.

  3. Hier ist ein Beispiel meines Erfrischungshandlers.

    generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top