During investigation of different possibilities how to minimize the amount of
classes loaded into VM I have realized that RMIRefrshAction is loaded due to
initialization of Runtime tab.
When the system starts the runtime tab is deserialized and inserted into AWT
hiearachy. This results in TreeView.addNotify () and that leads to
JTree.rootNode.expand which loads all nodes visible in RuntimeTab.
We have to prevent this for rumtimetab and also for editors sake.
The best place to hack this in seems to be the the initialization of
tabmodecontainer - deserialize the topcomponents but do not insert them into the
AWT hiearchy until really needed. When somebody switches to the tab, insert it
and call TopComponent.notifyOpened (). This shall work for TreeView and will
allow delayed implementation in Editor.
PS: Please also consider addition of TopComponent.notifyVisible () and
notifyNonvisible() to give components better handling of their visibility
Fixed in trunk.
New methods added to TopComponent:
protected void componentShowing()
protected void componentHidded()
(also were deprecated openNotify() and closeNotify() and replaced by
componentOpened(), componentClosed() ).
[ Also added managing methods to WindowManager:
protected void componentShowing(TopComponent)
protected void componentHidded(TopComponent) ]
See also issue #19038.
Previously RESOLVED issue that was mistakenly put into the NEW
state... closing again...
issue doesn't apply to new window system - verified