From: Adam A. (JIRA) <no...@sp...> - 2010-04-09 02:41:05
|
[ https://jira.springsource.org/browse/RCP-626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52805#action_52805 ] Adam Armistead commented on RCP-626: ------------------------------------ Ok, this is still broken. If I open a view it gets created, if i close a view it goes away, but the Dockable is still registered with the DockingContext. If I open a it again, it gets recreated and a duplicate Dockable gets added to the DockingContext, etc. So if I open and close one dockable 10 times i have 10 registered with the DockingContext now. First I tried to override the #findPageComponent(String) method. In order to attempt to get the dockable we are looking for from the DockingContext if it wasn't found with the superclass implementation. I could then #addPageComponent to add it to the list of page components for the page and #getLayoutManager().addDockable(desktop,getDockable(pageComponent)) to add the dockable to the desktop. This seemed to work, until I added an initialLayout file, then my views createControl() method doesn't get called, hrm. In the process I found that the default layout manager is calling #desktop.remove(Dockable). This method doesn't unregister the dockable in the DockingContext, but close does. So I tried changing that to use the close method. That results in views being destroyed when closed and recreated when opened again, instead of just "hidden" when closed, and "visible" when opened again. I also tried changing my VLDockingApplicationWindow to unregister dockables when a new page is shown. Anyway, I haven't found the solution yet, things seem to work either when I'm not using initialLayout files, or when I am, and sometimes break when switching between application pages, and sometimes not. This became apparent when I wrote a more than trivial VLDockingLayoutManager as adding things to tabs and so on apparently works a bit differently than just throwing views on the desktop and it started throwing NPEs. I'll keep working on it but if anyone gets sometime, help is always appreciated. > VLDocking integration broken > ---------------------------- > > Key: RCP-626 > URL: https://jira.springsource.org/browse/RCP-626 > Project: Spring Rich Client Project > Issue Type: Bug > Reporter: Adam Armistead > Assignee: Lieven Doclo > Priority: Major > Attachments: RCP-626.patch, RCP-626_1.patch > > > In the VLDocking integrations each application page is its own DockingDesktop instance. Pages are not being saved and loaded correctly resulting in floating dockables remaining on screen after showing a new page that should not show the floating dockable as a view. Floating dockables are not positioned correctly when a page is shown, and when closing a page it is saved once for each page created, so if you create 5 application pages and close one of them it is saved 5 times in a row. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://jira.springsource.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |