public synchronized void init() { if (myInitialized) { return; } myInitialized = true; myMap.addListener(myFeatureListener); myTree.addTreeNodeListener(myTreeNodeListener); FileStatusManager.getInstance(myRegistry.getProject()) .addFileStatusListener(myFileStatusListener); if (myGlobalModelListener != null) { GlobalSModelEventsManager.getInstance().addGlobalModelListener(myGlobalModelListener); } ModelAccess.instance() .runReadInEDT( new Runnable() { public void run() { registerNodeRecursively(myTree.getRootNode()); } }); }