Search in sources :

Example 1 with XDebuggerTreePanel

use of com.intellij.xdebugger.impl.ui.tree.XDebuggerTreePanel in project google-cloud-intellij by GoogleCloudPlatform.

the class BreakpointConfigurationPanel method loadFrom.

@Override
public void loadFrom(@NotNull XLineBreakpoint<CloudLineBreakpointProperties> breakpoint) {
    XBreakpointBase lineBreakpointImpl = breakpoint instanceof XBreakpointBase ? (XBreakpointBase) breakpoint : null;
    Breakpoint javaBreakpoint = BreakpointManager.getJavaBreakpoint(breakpoint);
    CloudLineBreakpointType.CloudLineBreakpoint cloudBreakpoint = null;
    if (javaBreakpoint instanceof CloudLineBreakpointType.CloudLineBreakpoint) {
        cloudBreakpoint = (CloudLineBreakpointType.CloudLineBreakpoint) javaBreakpoint;
    }
    if (cloudBreakpoint == null || lineBreakpointImpl == null) {
        return;
    }
    XDebuggerEditorsProvider debuggerEditorsProvider = cloudLineBreakpointType.getEditorsProvider(breakpoint, cloudBreakpoint.getProject());
    if (debuggerEditorsProvider != null) {
        treePanel = new XDebuggerTreePanel(cloudBreakpoint.getProject(), debuggerEditorsProvider, this, breakpoint.getSourcePosition(), "GoogleCloudTools.BreakpointWatchContextMenu", null);
        List<XExpression> watches = new ArrayList<XExpression>();
        for (String watchExpression : breakpoint.getProperties().getWatchExpressions()) {
            watches.add(debuggerEditorsProvider.createExpression(((XBreakpointBase) breakpoint).getProject(), new DocumentImpl(watchExpression), getFileTypeLanguage(breakpoint), EvaluationMode.EXPRESSION));
        }
        rootNode = new WatchesRootNode(treePanel.getTree(), this, watches.toArray(new XExpression[watches.size()]));
        treePanel.getTree().setRoot(rootNode, false);
        watchPanel.removeAll();
        watchPanel.add(watchLabel, BorderLayout.NORTH);
        treePanel.getTree().getEmptyText().setText("There are no custom watches for this snapshot location.");
        final ToolbarDecorator decorator = ToolbarDecorator.createDecorator(treePanel.getTree()).disableUpDownActions();
        decorator.setToolbarPosition(ActionToolbarPosition.RIGHT);
        decorator.setAddAction(new AnActionButtonRunnable() {

            @Override
            public void run(AnActionButton button) {
                executeAction(XDebuggerActions.XNEW_WATCH);
            }
        });
        decorator.setRemoveAction(new AnActionButtonRunnable() {

            @Override
            public void run(AnActionButton button) {
                executeAction(XDebuggerActions.XREMOVE_WATCH);
            }
        });
        CustomLineBorder border = new CustomLineBorder(CaptionPanel.CNT_ACTIVE_BORDER_COLOR, SystemInfo.isMac ? 1 : 0, 0, SystemInfo.isMac ? 0 : 1, 0);
        decorator.setToolbarBorder(border);
        watchPanel.add(decorator.createPanel(), BorderLayout.CENTER);
    }
}
Also used : XLineBreakpoint(com.intellij.xdebugger.breakpoints.XLineBreakpoint) Breakpoint(com.intellij.debugger.ui.breakpoints.Breakpoint) AnActionButtonRunnable(com.intellij.ui.AnActionButtonRunnable) XBreakpointBase(com.intellij.xdebugger.impl.breakpoints.XBreakpointBase) XDebuggerTreePanel(com.intellij.xdebugger.impl.ui.tree.XDebuggerTreePanel) ArrayList(java.util.ArrayList) XDebuggerEditorsProvider(com.intellij.xdebugger.evaluation.XDebuggerEditorsProvider) DocumentImpl(com.intellij.openapi.editor.impl.DocumentImpl) AnActionButton(com.intellij.ui.AnActionButton) CustomLineBorder(com.intellij.ui.border.CustomLineBorder) WatchesRootNode(com.intellij.xdebugger.impl.ui.tree.nodes.WatchesRootNode) ToolbarDecorator(com.intellij.ui.ToolbarDecorator) XExpression(com.intellij.xdebugger.XExpression) CloudLineBreakpointType(com.google.cloud.tools.intellij.debugger.CloudLineBreakpointType)

Aggregations

CloudLineBreakpointType (com.google.cloud.tools.intellij.debugger.CloudLineBreakpointType)1 Breakpoint (com.intellij.debugger.ui.breakpoints.Breakpoint)1 DocumentImpl (com.intellij.openapi.editor.impl.DocumentImpl)1 AnActionButton (com.intellij.ui.AnActionButton)1 AnActionButtonRunnable (com.intellij.ui.AnActionButtonRunnable)1 ToolbarDecorator (com.intellij.ui.ToolbarDecorator)1 CustomLineBorder (com.intellij.ui.border.CustomLineBorder)1 XExpression (com.intellij.xdebugger.XExpression)1 XLineBreakpoint (com.intellij.xdebugger.breakpoints.XLineBreakpoint)1 XDebuggerEditorsProvider (com.intellij.xdebugger.evaluation.XDebuggerEditorsProvider)1 XBreakpointBase (com.intellij.xdebugger.impl.breakpoints.XBreakpointBase)1 XDebuggerTreePanel (com.intellij.xdebugger.impl.ui.tree.XDebuggerTreePanel)1 WatchesRootNode (com.intellij.xdebugger.impl.ui.tree.nodes.WatchesRootNode)1 ArrayList (java.util.ArrayList)1