Announcement

Collapse
No announcement yet.

ISelectionProvider

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ISelectionProvider

    Hallo Zusammen,

    ich verstehe einfach nicht, wie ich eine View richtig am selectionProvider registriere.

    Die Registrierung mittels:

    Code:
    getSite().setSelectionProvider(this);


    funktioniert nicht.

    Währe schön, wenn mir jemand weiter helfen könnte.

  • #2
    "Geht nicht/Funktioniert nicht" ist kein Fehler
    http://www.eclipse.org/articles/Arti...s/article.html
    Christian

    Comment


    • #3
      Die Seite kenne ich schon. Da steht das nicht drin...

      ich möchte nicht ein spezielles jface Objekt wie z.B einen TableViewer registrieren, wie in dem Beispiel auf der Seite.

      getSite().setSelectionProvider(tableviewer);
      sondern meine ganze View

      getSite().setSelectionProvider(this)

      Comment


      • #4
        Die Antwort ändert nichts. Was geht nicht. Und eine View hat keine Selection
        Christian

        Comment


        • #5
          Also...
          ich habe eine View in der ich das Interface ISelectionProvider einbinde und die Methoden dieses Interfaces natürlich auch überschreibe.

          public class PersonView extends ViewPart implements ISelectionProvider
          in dieser View habe ich auch einen Tableviewer. Wenn ich diesen mit
          getSite().setSelectionProvider(tableViewer);
          registriere, funktioniert alles wunderbar. Eine andere View in der ich einen SelectionListener hierfür habe, reagiert dann, so wie sie sollte.

          Nun, das Problem:

          Aber dann muß ich ja nicht das Interface ISelectionProvider einbinden. Das geht dann auch ohne. Und genau das will ich nicht. Es soll unbedingt über dieses Interface funktionieren.

          Blos ich weis nict wie ich diese View jetzt registrieren soll.
          Wenn ich sie so registriere
          getSite().setSelectionProvider(this);
          kommt zwar keine Fehlermeldung aber mein Listener in der anderen View reagiert auch nichts. bei dem kommt dann nichts an.

          Comment


          • #6
            Aber dann muß ich ja nicht das Interface ISelectionProvider einbinden. Das geht dann auch ohne. Und genau das will ich nicht.
            Nun, ich verstehe das Problem nicht. Ein Blick in die API zeigt dir, dass bereit der tableviewer ISelectionProvider implementiert. Und nur deshalb geht es.

            Warum nun auch deine View das machen muss, erschließt sich mir nicht
            Christian

            Comment


            • #7
              Und genau das ist ja der Hacken bei der Sache...

              Die View muß dieses Interface nunmal einbinden. Wieso das so ist, sei wirklich mal dahingestellt. Ich müßte dafür zu weit ausholen...

              Comment


              • #8
                Dann muss die View irgendwann mal eine Selection produzieren
                Ohne diese wird eben bei deiner anderen View nie was ankommen
                Christian

                Comment


                • #9
                  hmm.... das ist vieleicht genau der Kern der Sache.
                  Ich glaube da leigt das problem.

                  Könntest du mir vieleicht ein Beispiel dafür geben wie ich eine selectoion für einen table bzw. treeViewer aus der entsprechenden View produziere?

                  Comment


                  • #10
                    Musst du mal in den beteiligten Klassen suchen. Einer wir ein PropertyChange feuern.
                    Ansonsten mal einfach selbst eins anlegen und an die registrierten abfeuern
                    Christian

                    Comment

                    Working...
                    X