wie view mit focus herausfinden?

schuetzejanett

Erfahrenes Mitglied
Hallo,

wie kann ich in einer rcp app überpfrüfen, welche view dan focus hat, wenn ich eine aktion "abfeuer"
Bin schon soweit das ich mir alle views das workbenches in ein array von viewReferences speicher.
Weiß auch das jeder eintrag ein viewpane attribut(protected) hat welches weiß ob die view den focus hat(durch debugger)
Alllerdings finde ich werden eine methode um auf die viewpane zugreifen zu können, noch überhaupt eine reference zu viewpane.
Habe auch schon danach gegoogelt.

Hier das was ich bis jetzt habe, weiß jemand wie ich weiter zur lösung komme, oder kan mir eine andere lösung nennen.



Kann es nicht mit dem normalen findView() mache, weil die view auch noch eine secondaryId hat, welche ich ja nicht kenne, bzw, welche nicht statisch ist.

Code:
IViewReference[] viewrefs = Activator.getDefault().getWorkbench()
							.getActiveWorkbenchWindow().getActivePage().getViewReferences();
for (IViewReference view : viewrefs)
{
    if (view.getId().equals(ViewPrintJobs.ID))
    {
        //hier gehe ich alle offenen views durch und schaue wer focus hat
        ViewPane pane =  view.getPane();((gibt es nicht)
        break;
     }
}
 
das liefert mir die komponente also die tabelle , die den focus hat, aber nicht auf welcher meinet detailviews die liegt, und mit parent komme ich auch nicht hin, bekomme irgendwann, nur noch composites gegeben.

Nützt mir also leider nix, :mad:
oder weioß jemand wie ich von einem control element herauskriege auf welcher view es sich befindet?
?
 
Hallo,

versuch's mal damit:
Java:
final IWorkbench workbench = PlatformUI.getWorkbench();
final IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
final IWorkbenchPage activePage = workbenchWindow.getActivePage();
final IWorkbenchPart activePart = activePage.getActivePart();
if (activePart instanceof IViewPart) {
    final IViewPart viewPart = (IViewPart) activePart;
    // das sollte der View sein, der grade den Fokus hat
}

Grüße
Vincent
 
Zurück