test_class.declarator: view
test_class.modifier: @Mock
test_class.original_string: @Mock
      NavTreeEditorView view;
test_class.type: NavTreeEditorView
test_class.var_name: view
test_class.declarator: beanManager
test_class.modifier: @Mock
test_class.original_string: @Mock
      SyncBeanManager beanManager;
test_class.type: SyncBeanManager
test_class.var_name: beanManager
test_class.declarator: perspectiveTreeProvider
test_class.modifier: @Mock
test_class.original_string: @Mock
      PerspectiveTreeProvider perspectiveTreeProvider;
test_class.type: PerspectiveTreeProvider
test_class.var_name: perspectiveTreeProvider
test_class.declarator: navItemEditStartedEvent
test_class.modifier: @Mock
test_class.original_string: @Mock
      EventSourceMock<NavItemEditStartedEvent> navItemEditStartedEvent;
test_class.type: EventSourceMock<NavItemEditStartedEvent>
test_class.var_name: navItemEditStartedEvent
test_class.declarator: navItemEditCancelledEvent
test_class.modifier: @Mock
test_class.original_string: @Mock
      EventSourceMock<NavItemEditCancelledEvent> navItemEditCancelledEvent;
test_class.type: EventSourceMock<NavItemEditCancelledEvent>
test_class.var_name: navItemEditCancelledEvent
test_class.declarator: navItemGotoEvent
test_class.modifier: @Mock
test_class.original_string: @Mock
      EventSourceMock<NavItemGotoEvent> navItemGotoEvent;
test_class.type: EventSourceMock<NavItemGotoEvent>
test_class.var_name: navItemGotoEvent
test_class.declarator: navTreeLoadedEvent
test_class.modifier: @Mock
test_class.original_string: @Mock
      EventSourceMock<NavTreeLoadedEvent> navTreeLoadedEvent;
test_class.type: EventSourceMock<NavTreeLoadedEvent>
test_class.var_name: navTreeLoadedEvent
test_class.declarator: navTreeChangedEvent
test_class.modifier: @Mock
test_class.original_string: @Mock
      EventSourceMock<NavTreeChangedEvent> navTreeChangedEvent;
test_class.type: EventSourceMock<NavTreeChangedEvent>
test_class.var_name: navTreeChangedEvent
test_class.declarator: navServices
test_class.modifier: @Mock
test_class.original_string: @Mock
      NavigationServices navServices;
test_class.type: NavigationServices
test_class.var_name: navServices
test_class.declarator: navController
test_class.modifier: @Mock
test_class.original_string: @Mock
      NavSecurityController navController;
test_class.type: NavSecurityController
test_class.var_name: navController
test_class.declarator: placeManager
test_class.modifier: @Mock
test_class.original_string: @Mock
      PlaceManager placeManager;
test_class.type: PlaceManager
test_class.var_name: placeManager
test_class.declarator: targetPerspectiveEditor
test_class.modifier: @Mock
test_class.original_string: @Mock
      TargetPerspectiveEditor targetPerspectiveEditor;
test_class.type: TargetPerspectiveEditor
test_class.var_name: targetPerspectiveEditor
test_class.declarator: perspectivePluginManager
test_class.modifier: @Mock
test_class.original_string: @Mock
      PerspectivePluginManager perspectivePluginManager;
test_class.type: PerspectivePluginManager
test_class.var_name: perspectivePluginManager
test_class.declarator: navItemEditorView
test_class.modifier: @Mock
test_class.original_string: @Mock
      NavItemDefaultEditorView navItemEditorView;
test_class.type: NavItemDefaultEditorView
test_class.var_name: navItemEditorView
test_class.declarator: navRootNodeEditorView
test_class.modifier: @Mock
test_class.original_string: @Mock
      NavRootNodeEditorView navRootNodeEditorView;
test_class.type: NavRootNodeEditorView
test_class.var_name: navRootNodeEditorView
test_class.declarator: navItemEditorBeanDef
test_class.modifier: @Mock
test_class.original_string: @Mock
      SyncBeanDef<NavItemDefaultEditor> navItemEditorBeanDef;
test_class.type: SyncBeanDef<NavItemDefaultEditor>
test_class.var_name: navItemEditorBeanDef
test_class.declarator: navRootNodeEditorBeanDef
test_class.modifier: @Mock
test_class.original_string: @Mock
      SyncBeanDef<NavRootNodeEditor> navRootNodeEditorBeanDef;
test_class.type: SyncBeanDef<NavRootNodeEditor>
test_class.var_name: navRootNodeEditorBeanDef
test_class.declarator: updateCommand
test_class.modifier: @Mock
test_class.original_string: @Mock
      Command updateCommand;
test_class.type: Command
test_class.var_name: updateCommand
test_class.declarator: perspectivePlugin
test_class.modifier: @Mock
test_class.original_string: @Mock
      Plugin perspectivePlugin;
test_class.type: Plugin
test_class.var_name: perspectivePlugin
test_class.declarator: perspectivePlugins = new HashSet<>()
test_class.original_string: Collection<Plugin> perspectivePlugins = new HashSet<>();
test_class.type: Collection<Plugin>
test_class.var_name: perspectivePlugins
test_class.declarator: navigationManager
test_class.original_string: NavigationManager navigationManager;
test_class.type: NavigationManager
test_class.var_name: navigationManager
test_class.declarator: navTreeEditor
test_class.original_string: NavTreeEditor navTreeEditor;
test_class.type: NavTreeEditor
test_class.var_name: navTreeEditor
test_class.declarator: navItemEditor
test_class.original_string: NavItemDefaultEditor navItemEditor;
test_class.type: NavItemDefaultEditor
test_class.var_name: navItemEditor
test_class.declarator: navRootNodeEditor
test_class.original_string: NavRootNodeEditor navRootNodeEditor;
test_class.type: NavRootNodeEditor
test_class.var_name: navRootNodeEditor
test_class.declarator: NAV_TREE = new NavTreeBuilder()
              .group("level1a", "level1a", "level1a", true)
                  .group("level2a", "level2a", "level2a", true)
                  .endGroup()
              .endGroup()
              .group("level1b", "level1b", "level1b", true)
                  .group("level2b", "level2b", "level2b", true)
                  .endGroup()
              .endGroup()
              .build()
test_class.original_string: NavTree NAV_TREE = new NavTreeBuilder()
              .group("level1a", "level1a", "level1a", true)
                  .group("level2a", "level2a", "level2a", true)
                  .endGroup()
              .endGroup()
              .group("level1b", "level1b", "level1b", true)
                  .group("level2b", "level2b", "level2b", true)
                  .endGroup()
              .endGroup()
              .build();
test_class.type: NavTree
test_class.var_name: NAV_TREE
test_class.file: dashbuilder-client/dashbuilder-navigation-client/src/test/java/org/dashbuilder/client/navigation/widget/editor/NavTreeEditorTest.java
test_class.identifier: NavTreeEditorTest
test_case.body: @Test
      public void testEditIsNotInvokedTwiceAfterCancel() {
          navTreeEditor.edit(NAV_TREE);
  
          // When edit is cancelled avoid the parent's editor to invoke edit again
          reset(navItemEditor);
          navItemEditor.startEdition();
          navItemEditor.cancelEdition();
          verify(navItemEditor, times(1)).edit(any());
      }
test_case.class_method_signature: NavTreeEditorTest.testEditIsNotInvokedTwiceAfterCancel()
test_case.full_signature: @Test public void testEditIsNotInvokedTwiceAfterCancel()
test_case.identifier: testEditIsNotInvokedTwiceAfterCancel
test_case.invocations: edit reset startEdition cancelEdition edit verify times any
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testEditIsNotInvokedTwiceAfterCancel()
focal_class.declarator: i18n = NavigationConstants.INSTANCE
focal_class.modifier: public static final
focal_class.original_string: public static final NavigationConstants i18n = NavigationConstants.INSTANCE;
focal_class.type: NavigationConstants
focal_class.var_name: i18n
focal_class.declarator: ROOT_GROUP_ID = "NavTreeEditorRootGroupId"
focal_class.modifier: public static final
focal_class.original_string: public static final String ROOT_GROUP_ID = "NavTreeEditorRootGroupId";
focal_class.type: String
focal_class.var_name: ROOT_GROUP_ID
focal_class.declarator: view
focal_class.original_string: NavTreeEditorView view;
focal_class.type: NavTreeEditorView
focal_class.var_name: view
focal_class.declarator: navigationManager
focal_class.original_string: NavigationManager navigationManager;
focal_class.type: NavigationManager
focal_class.var_name: navigationManager
focal_class.declarator: navTree
focal_class.original_string: NavTree navTree;
focal_class.type: NavTree
focal_class.var_name: navTree
focal_class.declarator: onSaveCommand
focal_class.original_string: Command onSaveCommand;
focal_class.type: Command
focal_class.var_name: onSaveCommand
focal_class.declarator: currentlyEditedItem = Optional.empty()
focal_class.original_string: Optional<NavItemEditor> currentlyEditedItem = Optional.empty();
focal_class.type: Optional<NavItemEditor>
focal_class.var_name: currentlyEditedItem
focal_class.file: dashbuilder-client/dashbuilder-navigation-client/src/main/java/org/dashbuilder/client/navigation/widget/editor/NavTreeEditor.java
focal_class.identifier: NavTreeEditor
focal_class.class_method_signature: NavTreeEditor.NavTreeEditor(NavTreeEditorView view,
                           NavigationManager navigationManager,
                           SyncBeanManager beanManager,
                           PlaceManager placeManager,
                           PerspectiveTreeProvider perspectiveTreeProvider,
                           TargetPerspectiveEditor targetPerspectiveEditor,
                           PerspectivePluginManager perspectivePluginManager,
                           Event<NavItemEditStartedEvent> navItemEditStartedEvent,
                           Event<NavItemEditCancelledEvent> navItemEditCancelledEvent)
focal_class.full_signature: @Inject public  NavTreeEditor(NavTreeEditorView view,
                           NavigationManager navigationManager,
                           SyncBeanManager beanManager,
                           PlaceManager placeManager,
                           PerspectiveTreeProvider perspectiveTreeProvider,
                           TargetPerspectiveEditor targetPerspectiveEditor,
                           PerspectivePluginManager perspectivePluginManager,
                           Event<NavItemEditStartedEvent> navItemEditStartedEvent,
                           Event<NavItemEditCancelledEvent> navItemEditCancelledEvent)
focal_class.identifier: NavTreeEditor
focal_class.modifiers: @Inject public
focal_class.parameters: (NavTreeEditorView view,
                           NavigationManager navigationManager,
                           SyncBeanManager beanManager,
                           PlaceManager placeManager,
                           PerspectiveTreeProvider perspectiveTreeProvider,
                           TargetPerspectiveEditor targetPerspectiveEditor,
                           PerspectivePluginManager perspectivePluginManager,
                           Event<NavItemEditStartedEvent> navItemEditStartedEvent,
                           Event<NavItemEditCancelledEvent> navItemEditCancelledEvent)
focal_class.signature:  NavTreeEditor(NavTreeEditorView view,
                           NavigationManager navigationManager,
                           SyncBeanManager beanManager,
                           PlaceManager placeManager,
                           PerspectiveTreeProvider perspectiveTreeProvider,
                           TargetPerspectiveEditor targetPerspectiveEditor,
                           PerspectivePluginManager perspectivePluginManager,
                           Event<NavItemEditStartedEvent> navItemEditStartedEvent,
                           Event<NavItemEditCancelledEvent> navItemEditCancelledEvent)
focal_class.class_method_signature: NavTreeEditor.setOnSaveCommand(Command onSaveCommand)
focal_class.full_signature: public void setOnSaveCommand(Command onSaveCommand)
focal_class.identifier: setOnSaveCommand
focal_class.modifiers: public
focal_class.parameters: (Command onSaveCommand)
focal_class.return: void
focal_class.signature: void setOnSaveCommand(Command onSaveCommand)
focal_class.class_method_signature: NavTreeEditor.getGroupLiteral()
focal_class.full_signature: @Override public String getGroupLiteral()
focal_class.identifier: getGroupLiteral
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getGroupLiteral()
focal_class.class_method_signature: NavTreeEditor.setMaximized(boolean maximized)
focal_class.full_signature: public void setMaximized(boolean maximized)
focal_class.identifier: setMaximized
focal_class.modifiers: public
focal_class.parameters: (boolean maximized)
focal_class.return: void
focal_class.signature: void setMaximized(boolean maximized)
focal_class.class_method_signature: NavTreeEditor.getNavTree()
focal_class.full_signature: public NavTree getNavTree()
focal_class.identifier: getNavTree
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: NavTree
focal_class.signature: NavTree getNavTree()
focal_class.class_method_signature: NavTreeEditor.edit(NavTree navTree)
focal_class.full_signature: public void edit(NavTree navTree)
focal_class.identifier: edit
focal_class.modifiers: public
focal_class.parameters: (NavTree navTree)
focal_class.return: void
focal_class.signature: void edit(NavTree navTree)
focal_class.class_method_signature: NavTreeEditor.onItemUpdated()
focal_class.full_signature: @Override void onItemUpdated()
focal_class.identifier: onItemUpdated
focal_class.modifiers: @Override
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onItemUpdated()
focal_class.class_method_signature: NavTreeEditor.onNewTreeClicked()
focal_class.full_signature:  void onNewTreeClicked()
focal_class.identifier: onNewTreeClicked
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onNewTreeClicked()
focal_class.class_method_signature: NavTreeEditor.onSaveClicked()
focal_class.full_signature:  void onSaveClicked()
focal_class.identifier: onSaveClicked
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onSaveClicked()
focal_class.class_method_signature: NavTreeEditor.onCancelClicked()
focal_class.full_signature:  void onCancelClicked()
focal_class.identifier: onCancelClicked
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onCancelClicked()
focal_class.class_method_signature: NavTreeEditor.onItemEditStarted(@Observes NavItemEditStartedEvent event)
focal_class.full_signature:  void onItemEditStarted(@Observes NavItemEditStartedEvent event)
focal_class.identifier: onItemEditStarted
focal_class.parameters: (@Observes NavItemEditStartedEvent event)
focal_class.return: void
focal_class.signature: void onItemEditStarted(@Observes NavItemEditStartedEvent event)
focal_class.class_method_signature: NavTreeEditor.onItemEditCancelled(@Observes NavItemEditCancelledEvent event)
focal_class.full_signature:  void onItemEditCancelled(@Observes NavItemEditCancelledEvent event)
focal_class.identifier: onItemEditCancelled
focal_class.parameters: (@Observes NavItemEditCancelledEvent event)
focal_class.return: void
focal_class.signature: void onItemEditCancelled(@Observes NavItemEditCancelledEvent event)
focal_class.class_method_signature: NavTreeEditor.getCurrentlyEditedItem()
focal_class.full_signature:  NavItemEditor getCurrentlyEditedItem()
focal_class.identifier: getCurrentlyEditedItem
focal_class.parameters: ()
focal_class.return: NavItemEditor
focal_class.signature: NavItemEditor getCurrentlyEditedItem()
focal_class.class_method_signature: NavTreeEditor.setMaxLevels(String navItemId, int maxLevels)
focal_class.full_signature: public NavItemEditorSettings setMaxLevels(String navItemId, int maxLevels)
focal_class.identifier: setMaxLevels
focal_class.modifiers: public
focal_class.parameters: (String navItemId, int maxLevels)
focal_class.return: NavItemEditorSettings
focal_class.signature: NavItemEditorSettings setMaxLevels(String navItemId, int maxLevels)
focal_class.class_method_signature: NavTreeEditor.setNewGroupEnabled(String navItemId, boolean enabled)
focal_class.full_signature: public NavItemEditorSettings.Flags setNewGroupEnabled(String navItemId, boolean enabled)
focal_class.identifier: setNewGroupEnabled
focal_class.modifiers: public
focal_class.parameters: (String navItemId, boolean enabled)
focal_class.return: NavItemEditorSettings.Flags
focal_class.signature: NavItemEditorSettings.Flags setNewGroupEnabled(String navItemId, boolean enabled)
focal_class.class_method_signature: NavTreeEditor.setNewPerspectiveEnabled(String navItemId, boolean enabled)
focal_class.full_signature: public NavItemEditorSettings.Flags setNewPerspectiveEnabled(String navItemId, boolean enabled)
focal_class.identifier: setNewPerspectiveEnabled
focal_class.modifiers: public
focal_class.parameters: (String navItemId, boolean enabled)
focal_class.return: NavItemEditorSettings.Flags
focal_class.signature: NavItemEditorSettings.Flags setNewPerspectiveEnabled(String navItemId, boolean enabled)
focal_class.class_method_signature: NavTreeEditor.setNewDividerEnabled(String navItemId, boolean enabled)
focal_class.full_signature: public NavItemEditorSettings.Flags setNewDividerEnabled(String navItemId, boolean enabled)
focal_class.identifier: setNewDividerEnabled
focal_class.modifiers: public
focal_class.parameters: (String navItemId, boolean enabled)
focal_class.return: NavItemEditorSettings.Flags
focal_class.signature: NavItemEditorSettings.Flags setNewDividerEnabled(String navItemId, boolean enabled)
focal_class.class_method_signature: NavTreeEditor.setOnlyRuntimePerspectives(String navItemId, boolean enabled)
focal_class.full_signature: public NavItemEditorSettings.Flags setOnlyRuntimePerspectives(String navItemId, boolean enabled)
focal_class.identifier: setOnlyRuntimePerspectives
focal_class.modifiers: public
focal_class.parameters: (String navItemId, boolean enabled)
focal_class.return: NavItemEditorSettings.Flags
focal_class.signature: NavItemEditorSettings.Flags setOnlyRuntimePerspectives(String navItemId, boolean enabled)
focal_class.class_method_signature: NavTreeEditor.setPerspectiveContextEnabled(String navItemId, boolean enabled)
focal_class.full_signature: public NavItemEditorSettings.Flags setPerspectiveContextEnabled(String navItemId, boolean enabled)
focal_class.identifier: setPerspectiveContextEnabled
focal_class.modifiers: public
focal_class.parameters: (String navItemId, boolean enabled)
focal_class.return: NavItemEditorSettings.Flags
focal_class.signature: NavItemEditorSettings.Flags setPerspectiveContextEnabled(String navItemId, boolean enabled)
focal_class.superclass: extends NavItemEditor
focal_method.body: public void edit(NavTree navTree) {
          this.navTree = navTree.cloneTree();
          this.currentlyEditedItem = Optional.empty();
          view.setChangedFlag(false);
  
          NavGroup rootGroup = NavFactory.get().createNavGroup(navTree);
          rootGroup.setId(ROOT_GROUP_ID);
  
          // Only allow the creation of groups in the first tree level
          getSettings().setNewDividerEnabled(ROOT_GROUP_ID, false);
          getSettings().setNewPerspectiveEnabled(ROOT_GROUP_ID, false);
  
          super.edit(rootGroup);
          super.expand();
      }
focal_method.class_method_signature: NavTreeEditor.edit(NavTree navTree)
focal_method.full_signature: public void edit(NavTree navTree)
focal_method.identifier: edit
focal_method.invocations: cloneTree empty setChangedFlag createNavGroup get setId setNewDividerEnabled getSettings setNewPerspectiveEnabled getSettings edit expand
focal_method.modifiers: public
focal_method.parameters: (NavTree navTree)
focal_method.return: void
focal_method.signature: void edit(NavTree navTree)