@Override
 public void bind(final SubModuleNode node) {
   if (node.getNavigationNodeController() == null) {
     node.setNavigationNodeController(createController(node));
   }
   ReflectionUtils.setHidden(this, "currentController", node.getNavigationNodeController());
   nodesBoundToSharedView.add(node);
 }
 public void testShared() {
   subModuleNodeView.dispose();
   final SubModuleNode s1 = new SubModuleNode(new NavigationNodeId("s", "1"));
   final SubModuleNode s2 = new SubModuleNode(new NavigationNodeId("s", "2"));
   moduleNode.addChild(s1);
   moduleNode.addChild(s2);
   final TestSharedView subModuleNodeSharedView = new TestSharedView();
   subModuleNodeSharedView.s1 = s1;
   subModuleNodeSharedView.s2 = s2;
   subModuleNodeSharedView.createPartControl(new Shell());
   assertNotNull(s1.getNavigationNodeController());
   s1.activate();
   final SubModuleController s1c = (SubModuleController) s1.getNavigationNodeController();
   assertNotNull(s1c.getRidget("button"));
   assertEquals(nodesBoundToSharedView.get(0), s1);
   s2.activate();
   assertEquals(nodesBoundToSharedView.get(2), s2);
   s1.dispose();
   assertFalse(subModuleNodeSharedView.unbindActiveCalled);
   s2.dispose();
   assertTrue(subModuleNodeSharedView.unbindActiveCalled);
 }