package jetbrains.mps.debugger.api.ui.breakpoints; /*Generated by MPS */ import jetbrains.mps.project.Project; import jetbrains.mps.debug.api.BreakpointManagerComponent; import jetbrains.mps.ide.ui.tree.MPSTree; import jetbrains.mps.ide.ThreadUtils; import jetbrains.mps.ide.ui.tree.MPSTreeNode; /*package*/ class BreakpointsTree extends AbstractBreakpointsTree { public BreakpointsTree(Project mpsProject, BreakpointManagerComponent breakpointsManager) { super(mpsProject, breakpointsManager); updateView(); loadState(); myTree.rebuildLater(); } private void loadState() { MPSTree.TreeState treeState = BreakpointViewSettingsComponent.getInstance(myProject).getTreeState(); if (treeState != null) { myTree.loadState(treeState); } else { expandAll(); } } @Override public void saveState() { super.saveState(); BreakpointViewSettingsComponent.getInstance(myProject).setTreeState(myTree.saveState()); } @Override public String getTitle() { return "Tree View"; } public void toggleModuleGroup(boolean value) { // todo: refactor myModuleKind.setVisible(value); BreakpointViewSettingsComponent.getInstance(myProject).setGroupByModule(value); } public void toggleRootGroup(boolean value) { myRootKind.setVisible(value); BreakpointViewSettingsComponent.getInstance(myProject).setGroupByRoot(value); } public void toggleModelGroup(boolean value) { myModelKind.setVisible(value); BreakpointViewSettingsComponent.getInstance(myProject).setGroupByModel(value); } public boolean isModuleGroupVisible() { return myModuleKind.isVisible(); } public boolean isRootGroupVisible() { return myRootKind.isVisible(); } public boolean isModelGroupVisible() { return myModelKind.isVisible(); } public void expandAll() { ThreadUtils.runInUIThreadNoWait(new Runnable() { @Override public void run() { myTree.expandAll(); } }); } public void collapseAll() { ThreadUtils.runInUIThreadNoWait(new Runnable() { @Override public void run() { for (int i = 0; i < myTree.getRootNode().getChildCount(); i++) { myTree.collapseAll((MPSTreeNode) myTree.getRootNode().getChildAt(i)); } } }); } }