List of usage examples for com.intellij.openapi.ui SimpleToolWindowPanel SimpleToolWindowPanel
public SimpleToolWindowPanel(boolean vertical, boolean borderless)
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); } }); }