Example usage for com.intellij.openapi.ui SimpleToolWindowPanel SimpleToolWindowPanel

List of usage examples for com.intellij.openapi.ui SimpleToolWindowPanel SimpleToolWindowPanel

Introduction

In this page you can find the example usage for com.intellij.openapi.ui SimpleToolWindowPanel SimpleToolWindowPanel.

Prototype

public SimpleToolWindowPanel(boolean vertical, boolean borderless) 

Source Link

Usage

From source file:com.deepsky.findUsages.workarounds.UsageView2Impl.java

License:Apache License

public UsageView2Impl(@NotNull Project project, @NotNull UsageViewPresentation presentation,
        @NotNull UsageTarget[] targets, Factory<UsageSearcher> usageSearcherFactory) {
    myPresentation = presentation;/* w  w  w.j a v  a  2s . c o  m*/
    myTargets = targets;
    myUsageSearcherFactory = usageSearcherFactory;
    myProject = project;
    myTree = new Tree() {
        {
            ToolTipManager.sharedInstance().registerComponent(this);
        }

        public String getToolTipText(MouseEvent e) {
            TreePath path = getPathForLocation(e.getX(), e.getY());
            if (path != null) {
                if (getCellRenderer() instanceof UsageViewTreeCellRenderer) {
                    return UsageViewTreeCellRenderer.getTooltipText(path.getLastPathComponent());
                }
            }
            return null;
        }

        public boolean isPathEditable(final TreePath path) {
            return path.getLastPathComponent() instanceof UsageViewTreeModelBuilder.TargetsRootNode;
        }
    };
    myRootPanel = new MyPanel(myTree);
    myModelTracker = new UsageModelTracker(project);
    Disposer.register(this, myModelTracker);

    myModel = new UsageViewTreeModelBuilder(myPresentation, targets);
    myRoot = (GroupNode) myModel.getRoot();

    myBuilder = new UsageNodeTreeBuilder(getActiveGroupingRules(project), getActiveFilteringRules(project),
            myRoot);

    final MessageBusConnection messageBusConnection = myProject.getMessageBus().connect(this);

    messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, new Runnable() {
        public void run() {
            rulesChanged();
        }
    });

    if (!myPresentation.isDetachedMode()) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                if (isDisposed)
                    return;
                myTree.setModel(myModel);

                myRootPanel.setLayout(new BorderLayout());

                final SimpleToolWindowPanel twPanel = new SimpleToolWindowPanel(false, true);
                myRootPanel.add(twPanel, BorderLayout.CENTER);

                JPanel toolbarPanel = new JPanel(new BorderLayout());
                toolbarPanel.add(createActionsToolbar(), BorderLayout.WEST);
                toolbarPanel.add(createFiltersToolbar(), BorderLayout.CENTER);
                twPanel.setToolbar(toolbarPanel);

                myCentralPanel = new JPanel();
                myCentralPanel.setLayout(new BorderLayout());
                setupCentralPanel();

                initTree();
                twPanel.setContent(myCentralPanel);

                myTree.setCellRenderer(new UsageViewTreeCellRenderer(UsageView2Impl.this));
                collapseAll();

                myModelTracker.addListener(UsageView2Impl.this);

                if (myPresentation.isShowCancelButton()) {
                    addButtonToLowerPane(new Runnable() {
                        public void run() {
                            close();
                        }
                    }, UsageViewBundle.message("usage.view.cancel.button"));
                }

                myTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
                    public void valueChanged(final TreeSelectionEvent e) {
                        SwingUtilities.invokeLater(new Runnable() {
                            public void run() {
                                if (isDisposed)
                                    return;
                                java.util.List<UsageInfo> infos = getSelectedUsageInfos();
                                if (infos != null && myUsagePreviewPanel != null) {
                                    myUsagePreviewPanel.updateLayout(infos);
                                }
                            }
                        });
                    }
                });
            }
        });
    }
}

From source file:com.headwire.aem.tooling.intellij.console.ConsoleLogToolWindowFactory.java

License:Apache License

static void createContent(Project project, ToolWindow toolWindow, ConsoleLogConsole console, String title) {
    // update default Event Log tab title
    ContentManager contentManager = toolWindow.getContentManager();
    Content generalContent = contentManager.getContent(0);
    if (generalContent != null && contentManager.getContentCount() == 1) {
        generalContent.setDisplayName("General");
    }/*from w ww  . ja v  a 2 s .  c  o m*/

    final Editor editor = console.getConsoleEditor();

    SimpleToolWindowPanel panel = new SimpleToolWindowPanel(false, true) {
        @Override
        public Object getData(@NonNls String dataId) {
            return PlatformDataKeys.HELP_ID.is(dataId) ? ConsoleLog.HELP_ID : super.getData(dataId);
        }
    };
    panel.setContent(editor.getComponent());
    panel.addAncestorListener(new LogShownTracker(project));

    ActionToolbar toolbar = createToolbar(project, editor, console);
    toolbar.setTargetComponent(editor.getContentComponent());
    panel.setToolbar(toolbar.getComponent());

    Content content = ContentFactory.SERVICE.getInstance().createContent(panel, title, false);
    contentManager.addContent(content);
    contentManager.setSelectedContent(content);
}

From source file:com.intellij.notification.EventLogToolWindowFactory.java

License:Apache License

static void createContent(Project project, ToolWindow toolWindow, EventLogConsole console, String title) {
    // update default Event Log tab title
    ContentManager contentManager = toolWindow.getContentManager();
    Content generalContent = contentManager.getContent(0);
    if (generalContent != null && contentManager.getContentCount() == 1) {
        generalContent.setDisplayName("General");
    }/*  w  w w  .  j a v  a2 s .  c  o m*/

    final Editor editor = console.getConsoleEditor();

    SimpleToolWindowPanel panel = new SimpleToolWindowPanel(false, true) {
        @Override
        public Object getData(@NonNls String dataId) {
            return PlatformDataKeys.HELP_ID.is(dataId) ? EventLog.HELP_ID : super.getData(dataId);
        }
    };
    panel.setContent(editor.getComponent());
    panel.addAncestorListener(new LogShownTracker(project));

    ActionToolbar toolbar = createToolbar(project, editor, console);
    toolbar.setTargetComponent(editor.getContentComponent());
    panel.setToolbar(toolbar.getComponent());

    Content content = ContentFactory.SERVICE.getInstance().createContent(panel, title, false);
    contentManager.addContent(content);
    contentManager.setSelectedContent(content);
}

From source file:com.intellij.usages.impl.UsageViewImpl.java

License:Apache License

UsageViewImpl(@NotNull final Project project, @NotNull UsageViewPresentation presentation,
        @NotNull UsageTarget[] targets, Factory<UsageSearcher> usageSearcherFactory) {
    myPresentation = presentation;//from  w ww  . j a va 2  s. co m
    myTargets = targets;
    myUsageSearcherFactory = usageSearcherFactory;
    myProject = project;
    myTree = new Tree() {
        {
            ToolTipManager.sharedInstance().registerComponent(this);
        }

        @Override
        public String getToolTipText(MouseEvent e) {
            TreePath path = getPathForLocation(e.getX(), e.getY());
            if (path != null) {
                if (getCellRenderer() instanceof UsageViewTreeCellRenderer) {
                    return UsageViewTreeCellRenderer.getTooltipFromPresentation(path.getLastPathComponent());
                }
            }
            return null;
        }

        @Override
        public boolean isPathEditable(final TreePath path) {
            return path.getLastPathComponent() instanceof UsageViewTreeModelBuilder.TargetsRootNode;
        }

        // hack to avoid quadratic expandAll()
        @Override
        public Enumeration<TreePath> getExpandedDescendants(TreePath parent) {
            return expandingAll ? EmptyEnumeration.<TreePath>getInstance()
                    : super.getExpandedDescendants(parent);
        }
    };
    myRootPanel = new MyPanel(myTree);
    Disposer.register(this, myRootPanel);
    myModelTracker = new UsageModelTracker(project);
    Disposer.register(this, myModelTracker);

    myModel = new UsageViewTreeModelBuilder(myPresentation, targets);
    myRoot = (GroupNode) myModel.getRoot();
    myBuilder = new UsageNodeTreeBuilder(myTargets, getActiveGroupingRules(project),
            getActiveFilteringRules(project), myRoot);

    final MessageBusConnection messageBusConnection = myProject.getMessageBus().connect(this);
    messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, new Runnable() {
        @Override
        public void run() {
            rulesChanged();
        }
    });

    myUsageViewTreeCellRenderer = new UsageViewTreeCellRenderer(this);
    if (!myPresentation.isDetachedMode()) {
        UIUtil.invokeLaterIfNeeded(new Runnable() {
            @Override
            public void run() {
                // lock here to avoid concurrent execution of this init and dispose in other thread
                synchronized (lock) {
                    if (isDisposed)
                        return;
                    myTree.setModel(myModel);

                    myRootPanel.setLayout(new BorderLayout());

                    SimpleToolWindowPanel toolWindowPanel = new SimpleToolWindowPanel(false, true);
                    myRootPanel.add(toolWindowPanel, BorderLayout.CENTER);

                    JPanel toolbarPanel = new JPanel(new BorderLayout());
                    toolbarPanel.add(createActionsToolbar(), BorderLayout.WEST);
                    toolbarPanel.add(createFiltersToolbar(), BorderLayout.CENTER);
                    toolWindowPanel.setToolbar(toolbarPanel);

                    myCentralPanel = new JPanel(new BorderLayout());
                    setupCentralPanel();

                    initTree();
                    toolWindowPanel.setContent(myCentralPanel);

                    myTree.setCellRenderer(myUsageViewTreeCellRenderer);
                    collapseAll();

                    myModelTracker.addListener(UsageViewImpl.this);

                    if (myPresentation.isShowCancelButton()) {
                        addButtonToLowerPane(new Runnable() {
                            @Override
                            public void run() {
                                close();
                            }
                        }, UsageViewBundle.message("usage.view.cancel.button"));
                    }

                    myTree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
                        @Override
                        public void valueChanged(final TreeSelectionEvent e) {
                            SwingUtilities.invokeLater(new Runnable() {
                                @Override
                                public void run() {
                                    if (isDisposed || myProject.isDisposed())
                                        return;
                                    updateOnSelectionChanged();
                                }
                            });
                        }
                    });
                }
            }
        });
    }
    myTransferToEDTQueue = new TransferToEDTQueue<Runnable>("Insert usages", new Processor<Runnable>() {
        @Override
        public boolean process(Runnable runnable) {
            runnable.run();
            return true;
        }
    }, new Condition<Object>() {
        @Override
        public boolean value(Object o) {
            return isDisposed || project.isDisposed();
        }
    }, 200);
}

From source file:com.urswolfer.intellij.plugin.gerrit.ui.GerritToolWindow.java

License:Apache License

public SimpleToolWindowPanel createToolWindowContent(final Project project) {
    changeListPanel.registerChangeListPanel(this);
    diffManager.registerDiffTool(commentsDiffTool);

    SimpleToolWindowPanel panel = new SimpleToolWindowPanel(true, true);

    ActionToolbar toolbar = createToolbar(project);
    toolbar.setTargetComponent(changeListPanel);
    panel.setToolbar(toolbar.getComponent());

    RepositoryChangesBrowser repositoryChangesBrowser = repositoryChangesBrowserProvider.get(project,
            changeListPanel);/*from   ww  w. java2 s  . c  om*/

    Splitter detailsSplitter = new Splitter(true, 0.6f);
    detailsSplitter.setShowDividerControls(true);

    changeListPanel
            .setBorder(IdeBorderFactory.createBorder(SideBorder.TOP | SideBorder.RIGHT | SideBorder.BOTTOM));
    detailsSplitter.setFirstComponent(changeListPanel);

    detailsPanel = new GerritChangeDetailsPanel(project);
    changeListPanel.addListSelectionListener(new Consumer<ChangeInfo>() {
        @Override
        public void consume(ChangeInfo changeInfo) {
            changeSelected(changeInfo, project);
        }
    });
    JPanel details = detailsPanel.getComponent();
    details.setBorder(IdeBorderFactory.createBorder(SideBorder.TOP | SideBorder.RIGHT));
    detailsSplitter.setSecondComponent(details);

    Splitter horizontalSplitter = new Splitter(false, 0.7f);
    horizontalSplitter.setShowDividerControls(true);
    horizontalSplitter.setFirstComponent(detailsSplitter);
    horizontalSplitter.setSecondComponent(repositoryChangesBrowser);

    panel.setContent(horizontalSplitter);

    reloadChanges(project, false);

    changeListPanel.showSetupHintWhenRequired(project);

    return panel;
}

From source file:edu.wpi.tjclark.netconsole.NetConsoleToolWindowFactory.java

License:Open Source License

@Override
public void createToolWindowContent(Project project, ToolWindow toolWindow) {
    final Document document = new PlainDocument();
    final NetConsoleClient netConsole = new NetConsoleClient(document);

    final JXTextArea textArea = new JXTextArea();
    textArea.setDocument(document);//from w ww.j a  va  2 s  . c  o m
    textArea.setEditable(false);

    final DefaultActionGroup actionGroup = new DefaultActionGroup();
    actionGroup.addAction(new AutoScrollAction(netConsole, textArea));
    actionGroup.addAction(new ClearAction(netConsole));
    actionGroup.addAction(new DisableAction(netConsole, textArea));

    final SimpleToolWindowPanel netConsolePanel = new SimpleToolWindowPanel(false, false);
    final ActionToolbar toolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN,
            actionGroup, false);
    netConsolePanel.setToolbar(toolbar.getComponent());
    netConsolePanel.setContent(new JBScrollPane(textArea));

    final ContentFactory contentFactory = ContentFactory.SERVICE.getInstance();
    final Content content = contentFactory.createContent(netConsolePanel, "", true);
    toolWindow.getContentManager().addContent(content);
}

From source file:io.flutter.console.FlutterConsole.java

License:Open Source License

private static void show(@NotNull Module module, @NotNull ConsoleView console, String processTitle) {
    final SimpleToolWindowPanel toolWindowPanel = new SimpleToolWindowPanel(false, true);
    toolWindowPanel.setContent(console.getComponent());

    final Content content = ContentFactory.SERVICE.getInstance().createContent(toolWindowPanel.getComponent(),
            processTitle, true);//from  w w  w. ja  v a 2 s  .  c om
    Disposer.register(content, console);

    final Project project = module.getProject();

    final MessageView messageView = MessageView.SERVICE.getInstance(project);
    messageView.runWhenInitialized(() -> {
        final ContentManager contentManager = messageView.getContentManager();
        contentManager.addContent(content);
        contentManager.setSelectedContent(content);

        final ToolWindow toolWindow = ToolWindowManager.getInstance(project)
                .getToolWindow(ToolWindowId.MESSAGES_WINDOW);
        toolWindow.activate(null, true);
    });
}

From source file:io.flutter.console.FlutterConsoleHelper.java

License:Open Source License

/**
 * We share one Flutter console per Module, and have one global Flutter console (for tasks which don't
 * take a module, like 'flutter doctor'). We could revisit to have one global, shared flutter console
 * instance.//from   www  .j  a  v a 2  s  .  co  m
 */
private static void show(@NotNull Project project, @Nullable Module module,
        @NotNull OSProcessHandler processHandler, @Nullable Runnable runOnActive) {
    final MessageView messageView = MessageView.SERVICE.getInstance(project);

    messageView.runWhenInitialized(() -> {
        final ToolWindow toolWindow = ToolWindowManager.getInstance(project)
                .getToolWindow(ToolWindowId.MESSAGES_WINDOW);
        final ContentManager contentManager = messageView.getContentManager();
        FlutterConsoleInfo info = findExistingInfoForCommand(project, module);

        if (info != null) {
            info.console.clear();
            contentManager.setSelectedContent(info.content);
        } else {
            final ConsoleView console = createConsole(project, module);
            info = new FlutterConsoleInfo(console, module);

            final String title = module != null ? "[" + module.getName() + "] Flutter" : "Flutter";
            final SimpleToolWindowPanel toolWindowPanel = new SimpleToolWindowPanel(false, true);
            toolWindowPanel.setContent(info.console.getComponent());

            info.content = ContentFactory.SERVICE.getInstance().createContent(toolWindowPanel.getComponent(),
                    title, true);
            info.content.putUserData(FLUTTER_MESSAGES_KEY, info);
            Disposer.register(info.content, info.console);

            contentManager.addContent(info.content);
            contentManager.setSelectedContent(info.content);
        }
        info.console.attachToProcess(processHandler);
        toolWindow.activate(runOnActive, true);
    });
}

From source file:io.flutter.logging.FlutterLogView.java

License:Open Source License

public FlutterLogView(@NotNull FlutterApp app) {
    this.app = app;
    flutterLogPreferences = FlutterLogPreferences.getInstance(app.getProject());
    filterPanel = createFilterPanel();//from   w  w  w .j av  a  2  s  . c o  m

    computeTextAttributesByLogLevelCache();
    ApplicationManager.getApplication().getMessageBus().connect(this).subscribe(EditorColorsManager.TOPIC,
            scheme -> computeTextAttributesByLogLevelCache());
    final FlutterLog flutterLog = app.getFlutterLog();
    flutterLog.addListener(this, this);

    final Content content = ContentFactory.SERVICE.getInstance().createContent(null, null, false);
    content.setCloseable(false);

    toolWindowPanel = new SimpleToolWindowPanel(true, true);
    content.setComponent(toolWindowPanel);

    final JPanel toolbar = createToolbar();
    toolWindowPanel.setToolbar(toolbar);

    logTree = new FlutterLogTree(app, entryModel, this);
    logModel = logTree.getLogTreeModel();
    logModel.updateFromPreferences(flutterLogPreferences);
    entryModel.showColors = flutterLogPreferences.isShowColor();

    // TODO(pq): add speed search
    //new TreeTableSpeedSearch(logTree).setComparator(new SpeedSearchComparator(false));

    logTree.setTableHeader(null);
    logTree.setRootVisible(false);

    logTree.setExpandableItemsEnabled(true);
    logTree.getTree().setScrollsOnExpand(true);

    final PopupHandler popupHandler = new PopupHandler() {
        @Override
        public void invokePopup(Component comp, int x, int y) {
            final ActionPopupMenu popupMenu = ActionManager.getInstance()
                    .createActionPopupMenu(ActionPlaces.UNKNOWN, getTreePopupActions());
            popupMenu.getComponent().show(comp, x, y);
        }

        @Override
        public void mouseMoved(MouseEvent e) {
            final Cursor cursor = getTagForPosition(e) instanceof HyperlinkInfo
                    ? Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)
                    : Cursor.getDefaultCursor();
            logTree.setCursor(cursor);
        }

        @Override
        public void mouseClicked(MouseEvent e) {
            final Object tag = getTagForPosition(e);
            if (tag instanceof HyperlinkInfo) {
                ((HyperlinkInfo) tag).navigate(app.getProject());
            }
        }

        private Object getTagForPosition(MouseEvent e) {
            final JTable table = (JTable) e.getSource();
            final int row = table.rowAtPoint(e.getPoint());
            final int column = table.columnAtPoint(e.getPoint());
            if (row == -1 || column == -1)
                return null;
            final TableCellRenderer cellRenderer = table.getCellRenderer(row, column);
            if (cellRenderer instanceof ColoredTableCellRenderer) {
                final ColoredTableCellRenderer renderer = (ColoredTableCellRenderer) cellRenderer;
                final Rectangle rc = table.getCellRect(row, column, false);
                return renderer.getFragmentTagAt(e.getX() - rc.x);
            }
            return null;
        }
    };
    logTree.addMouseListener(popupHandler);
    logTree.addMouseMotionListener(popupHandler);

    // Set bounds.
    // TODO(pq): consider re-sizing dynamically, as needed.
    fixColumnWidth(logTree.getColumn(TIME), 100);
    fixColumnWidth(logTree.getColumn(SEQUENCE), 50);
    fixColumnWidth(logTree.getColumn(LEVEL), 70);
    fixColumnWidth(logTree.getColumn(CATEGORY), 110);
    logTree.getColumn(MESSAGE).setMinWidth(100);

    final JScrollPane pane = ScrollPaneFactory.createScrollPane(logTree,
            ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
            ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);

    logModel.setScrollPane(pane);
    toolWindowPanel.setContent(pane);
}

From source file:io.flutter.preview.PreviewArea.java

License:Open Source License

public PreviewArea(Listener listener) {
    this.myListener = listener;

    windowToolbar = ActionManager.getInstance().createActionToolbar("PreviewArea", toolbarGroup, true);

    window = new SimpleToolWindowPanel(true, true);
    window.setToolbar(windowToolbar.getComponent());

    primaryLayer.setLayout(new BorderLayout());
    clear(NO_WIDGET_MESSAGE);// w w  w .j a  va 2  s.c  o m

    // Layers must be transparent.
    handleLayer.setOpaque(false);

    window.setContent(layeredPanel);
    layeredPanel.add(primaryLayer, Integer.valueOf(0));
    layeredPanel.add(handleLayer, Integer.valueOf(1));

    // Layers must cover the whole root panel.
    layeredPanel.addComponentListener(new ComponentAdapter() {
        @Override
        public void componentResized(ComponentEvent e) {
            final Dimension renderSize = getRenderSize();
            listener.resized(renderSize.width, renderSize.height);
        }
    });
}