[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.platform] Re: Focus Problems

Do all of your views and editors implement setFocus() properly?

"Mahesh Soori" <msoori@xxxxxxxx> wrote in message 
news:f3jvl9$i7c$1@xxxxxxxxxxxxxxxxxxxx
> Also,
>
> The details View consists of a PageBook and several TableViewers.  The 
> Explorer view is a SelectionProvider and the DetailsView is a Listener to 
> the selection events.  I thougth this might be a place where focus might 
> get switched, and debugged it.  I only call PageBook.showPage() and I've 
> suspected this might be switching focus.  So, after digging thru, I found 
> this comment in Control.setVisible() method
>
> /*
> * Feature in Windows.  If the receiver has focus, hiding
> * the receiver causes no window to have focus.  The fix is
> * to assign focus to the first ancestor window that takes
> * focus.  If no window will take focus, set focus to the
> * desktop.
> */
>
> and this line at the end
> if (fixFocus) fixFocus (control);
>
> Could this be the culprit?  Since PageBook would hide one control and show 
> another?  But this dosent explain why it happens only on the first click. 
> Also I've noticed that If I switch to a different application by pressing 
> Alt+Tab or swithc to a different perspective and back to the Catalog 
> Perspective, everything workls as expected.
>
> Thanks
> Mahesh
>
> Mahesh Soori wrote:
>> Tom,
>>
>> I've attached an image of the perspective.  The explorer view has focus 
>> when switched to this perspective.  But if you click anywhere on the 
>> window (including the Explorer view, the Menubar, or any other views), 
>> Details views gets selected.  This is only with the first click of the 
>> mouse.  If I use the arrow keys, the tree navigation works fine, but the 
>> first click always switches focus to the Details View.
>>
>>
>> Here is the plugin.xml
>>
>> Integrated changes from old branch to mainline
>>
>>
>>
>>
>>
>>
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <?eclipse version="3.0"?>
>> <plugin>
>>
>>    <extension
>>          point="org.eclipse.ui.perspectives">
>>       <perspective
>>             class="com.lggi.esp.client.app.catalog.Perspective"
>>             icon="icons/catalog.png"
>>             id="com.lggi.esp.client.app.catalog.perspective"
>>             name="Catalog">
>>       </perspective>
>>    </extension>
>>
>>    <extension
>>          point="org.eclipse.ui.views">
>>       <view
>>               name="Map"
>>             allowMultiple="true"
>>             class="com.lggi.esp.rcp.catalog.map.MapView"
>>             icon="icons/catalog.png"
>>             id="com.lggi.esp.rcp.catalog.map.MapView"/>
>>
>>       <view
>>               name="Explorer"
>>             allowMultiple="true"
>> 
>> class="com.lggi.esp.rcp.catalog.explorer.tree.ExplorerTreeView"
>>             icon="icons/catalog.png"
>> 
>> id="com.lggi.esp.rcp.catalog.explorer.tree.ExplorerTreeView"/>
>>
>>       <view
>>               name="Details"
>>             allowMultiple="true"
>>
>> class="com.lggi.esp.rcp.catalog.explorer.detail.CatalogExplorerDetailView"
>>             icon="icons/catalog.png"
>>
>> id="com.lggi.esp.rcp.catalog.explorer.detail.CatalogExplorerDetailView"/>
>>
>>    </extension>
>>
>> </plugin>
>>
>>
>>
>> and the createInitialLayout() method from the Perspective class, which 
>> implements IPerspectiveFactory
>>
>>
>>     /**
>>      * Create the initial views for the perspective.
>>      */
>>     public void createInitialLayout(IPageLayout layout) {
>>         final float fractionalPosition35 = 0.35f;
>>         final float fractionalPosition65 = 0.65f;
>>
>>         User curUser = ApplicationController.getUser();
>>         if (!ApplicationController
>>                 .isAuthorised(ApplicationController.getOperatorRoles())) 
>> {
>>             Shell shell = 
>> PlatformUI.getWorkbench().getActiveWorkbenchWindow()
>>                     .getShell();
>>             MessageDialog.openError(shell, "Authorization Failure", "User 
>> '"
>>                     + curUser.getName()
>>                     + "' is not authorized to view this perspective");
>>             throw new SecurityException("User '" + curUser.getName()
>>                     + "' is not authorized to view this perspective");
>>         }
>>         String editorArea = layout.getEditorArea();
>>         layout.setEditorAreaVisible(false);
>>
>> layout.addActionSet("com.lggi.esp.client.gui.catalog.catalogActionSet");
>>
>>         IFolderLayout expFolder = layout.createFolder("Explorer", 
>> IPageLayout.TOP, fractionalPosition35, editorArea);
>>         expFolder.addView(ExplorerTreeView.ID);
>>
>>         IFolderLayout propsFolder = layout.createFolder("Properties", 
>> IPageLayout.RIGHT,
>>                 fractionalPosition65, ExplorerTreeView.ID);
>>         IFolderLayout detailFolder = layout.createFolder("Details", 
>> IPageLayout.BOTTOM, fractionalPosition65, editorArea);
>>
>>         propsFolder.addView(IPageLayout.ID_PROP_SHEET);
>>         propsFolder.addView(MapView.ID);
>>
>>         detailFolder.addView(CatalogExplorerDetailView.ID);
>>
>>         layout.getViewLayout(ExplorerTreeView.ID).setCloseable(false);
>>
>> layout.getViewLayout(CatalogExplorerDetailView.ID).setCloseable(false);
>>
>>         layout.addShowViewShortcut(MapView.ID);
>>         layout.addShowViewShortcut(ExplorerTreeView.ID);
>>         layout.addShowViewShortcut(CatalogExplorerDetailView.ID);
>>
>>         // add the properties view
>>         layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET);
>>
>>         // to be removed later
>>         detailFolder.addView(CatalogExplorerView.ID);
>>         detailFolder.addView(CatalogJobListView.ID);
>>
>>         layout.addActionSet("lggi.viewer.actionSet");
>>
>>         MainPlugin.addPerspectiveShortcuts(layout);
>>     }
>>
>> Thanks
>> Mahesh
>>
>> Tom Schindl wrote:
>>> Sorry mean eclipse.platform.
>>>
>>> Well getting Warnocked (http://en.wikipedia.org/wiki/Warnock's_Dilemma) 
>>> means that you should rethink your description. Maybe a test-case would 
>>> make sense?
>>>
>>> Tom
>>>
>>> Mahesh Soori schrieb:
>>>> Tom,
>>>>
>>>> Given the number of responses I have had, I'd say 3 forums definitely 
>>>> was'nt enough ;-)  Regardless, I dont see a platform.ui there is a 
>>>> platform.ua, but not ui.
>>>>
>>>> Anyway, thanks for the response.  At least one non answer makes it look 
>>>> like somewhat of an active community!
>>>> Mahesh
>>>>
>>>> Tom Schindl wrote:
>>>>> Please stop crossposting on 3 forums. 1 is enough. In your case you 
>>>>> can it best fits to platform.ui, I'd say.
>>>>>
>>>>> Tom
>>>>>
>>>>> Mahesh Soori schrieb:
>>>>>> Even stranger, if I Alt+Tab to a different application after 
>>>>>> switching to this perspective and then switch back, it works as 
>>>>>> expected.  I noticed that in Controll.forceFocus(), it blindly sets 
>>>>>> savedFocus to null and then back again to this as in 
>>>>>> shell.setSavedFocus (this);
>>>>>> Is this intentional?  Anybody back from the MemorialDay yet???
>>>>>>
>>>>>> Thanks
>>>>>> Mahesh
>>>>>>
>>>>>> Mahesh Soori wrote:
>>>>>>> What is even stranger is that if I try to navigate with the keyboard 
>>>>>>> in View A (which contains a tree), the view is properly focussed and 
>>>>>>> expands the nodes as I would expect.  However, if I click anywhere 
>>>>>>> in the window, the focus jumps to View B (which has a Pagebook and 
>>>>>>> tables displayed in the Pagebook).  I have tried calling setFocus(), 
>>>>>>> etc.
>>>>>>>
>>>>>>> TIA,
>>>>>>> Mahesh
>>>>>>>
>>>>>>> Mahesh Soori wrote:
>>>>>>>> I have 3 views in a perspective, call it A, B and C.  When I switch 
>>>>>>>> to this perspective, the view A has the focus... but if I click on 
>>>>>>>> any of the other two views or the menu bar, the focus always goes 
>>>>>>>> to View B. This only happens once, after that the views get the 
>>>>>>>> proper focus.  I am using Tabbed Folders in the perspective to 
>>>>>>>> layout my views.  Has anyone else run into this strange behaviour?
>>>>>>>>
>>>>>>>> Also, I want to add animated icons to certain nodes in a tree to 
>>>>>>>> indicate progress activity for that node. I have read in Eclipse 
>>>>>>>> release notes that animated gifs are now supported, but when I give 
>>>>>>>> an animated icons as the image for the node, its not animated.
>>>>>>>>
>>>>>>>> TIA
>>>>>>>> Mahesh
>>
>>
>> ------------------------------------------------------------------------
>>