CTabFolder-Events

CKingZesi

Mitglied
Hallo Zusammen,

Auf einem meiner CTabFolder habe ich eine CTabFolder2Listener angebracht. Dieser Listener hört auf Events wie zum Beispiel Minimize, Maximize und Restore. Leider gibt der Listener nach einem Minimize-Event den Geist auf und bearbeitet anschliessend keine Events mehr :confused:. Kann mir da eventuell jemand helfen? Woran liegt das?

Liebe Grüsse
CKIngZesi
 
quellcode =) ?

wäre ganz Hilfreich ;), soo kann ich irgendwie nur vermuten :D und Behauptungen aufstellen ;) was dir aber nicht weiterhilft

Gruß The Cow : )
 
Hey,

Ich weiss nicht wie viel das bringt, der Code beim Hinzufügen eines Listeners sieht immer gleich aus...

Code:
Control[] childs = parent.getParent().getParent().getChildren();
for(Control control: childs)
{
  if(control instanceof CTabFolder)
  {
    CTabFolder cTabFolder = (CTabFolder)control;
    control.addCTabFolder2Listener(new CTabFolder2Listener()
    {
      public void close(CTabFolderEvent event) { }
      public void maximize(CTabFolderEvent event) { }
      public void minimize(CTabFolderEvent event)
      {
        System.out.println("Minimize...");
      }
      public void restore(CTabFolderEvent event) { }
      public void showList(CTabFolderEvent event) { }
    });
  }
}

Dieses Gebilde befindet sich in der Methode
Code:
createPartControl(Composite parent)
einer View.

Wenn die View nun minimiert wird, so wird der oben genannte CTabFolder verworfen (disposed). Nach einem Klick auf Restore, der die View wieder hervorbringt, funktionieren die Methoden des Listeners nicht mehr...
 
Nach langem Suchen habe ich das Problem gelöst. Der folgende Code fängt alle Events ab, welche die View betreffen:

Code:
IWorkbenchPage oPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IWorkbenchPartReference oReference = oPage.findViewReference(View.ID); // The ID of any view

oReference.getPage().addPartListener(new IPartListener2()
{
  public void partActivated(IWorkbenchPartReference partRef) { }
  public void partBroughtToTop(IWorkbenchPartReference partRef) { }
  public void partClosed(IWorkbenchPartReference partRef) { }
  public void partDeactivated(IWorkbenchPartReference partRef) { }
  public void partHidden(IWorkbenchPartReference partRef) { }
  public void partInputChanged(IWorkbenchPartReference partRef) { }
  public void partOpened(IWorkbenchPartReference partRef) { }
  public void partVisible(IWorkbenchPartReference partRef) { }
});

Danke trotzdem.

Freundliche Grüsse
CKingZesi
 
Zurück