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));
}
}
});
}
}