@Override public void actionPerformed(ActionEvent e) { WorkspaceTopComponent workspaceTopComponent = promptForWorkspaces(); if (workspaceTopComponent != null) { workspaceTopComponent.requestActive(); workspaceTopComponent.addTopComponent(window); } }
/** * Removes an internal window from this workspace window and closes the associated internal frame. * * @param topComponent The window to be removed. * @return {@code true} on success */ public boolean removeTopComponent(TopComponent topComponent) { JInternalFrame internalFrame = getInternalFrame(topComponent); return internalFrame != null && closeInternalFrame(internalFrame) == topComponent; }
/** * Requests that the given document window is being selected. * * @param documentWindow The document window to be selected. */ public void requestSelected(DocumentWindow documentWindow) { TopComponent topComponent = documentWindow.getTopComponent(); List<WorkspaceTopComponent> showingWorkspaces = WorkspaceTopComponent.findShowingInstances(); for (WorkspaceTopComponent showingWorkspace : showingWorkspaces) { if (showingWorkspace.getTopComponents().contains(topComponent)) { showingWorkspace.requestActiveTopComponent(topComponent); return; } } topComponent.requestActive(); }
public WorkspaceTopComponent(String displayName) { frameToTabMap = new HashMap<>(); tabToFrameMap = new HashMap<>(); idToBoundsMap = new HashMap<>(); tabActionListener = new TabActionListener(); internalFrameListener = new MyInternalFrameListener(); propertyChangeListener = new MyPropertyChangeListener(); lookup = new FrameProxyLookup(); associateLookup(new ProxyLookup(Lookups.fixed(this), lookup)); initComponents(); setName(displayName); setDisplayName(displayName); setToolTipText(Bundle.CTL_WorkspaceTopComponentDescription()); }
@Override public void actionPerformed(ActionEvent e) { String defaultName = WindowUtilities.getUniqueTitle(Bundle.VAL_NewWorkspaceActionValue(), WorkspaceTopComponent.class); NotifyDescriptor.InputLine d = new NotifyDescriptor.InputLine(Bundle.LBL_NewWorkspaceActionName(), Bundle.CTL_NewWorkspaceActionName()); d.setInputText(defaultName); Object result = DialogDisplayer.getDefault().notify(d); if (NotifyDescriptor.OK_OPTION.equals(result)) { WorkspaceTopComponent workspaceTopComponent = new WorkspaceTopComponent(d.getInputText()); Mode editor = WindowManager.getDefault().findMode("editor"); Assert.notNull(editor, "editor"); editor.dockInto(workspaceTopComponent); workspaceTopComponent.open(); workspaceTopComponent.requestActive(); } }
@Override public void internalFrameActivated(InternalFrameEvent e) { //LOG.fine("internalFrameActivated: e = " + e); // Synchronise tab selection state, if not already done JInternalFrame internalFrame = e.getInternalFrame(); TabData selectedTab = frameToTabMap.get(internalFrame); int selectedTabIndex = tabbedContainer.getSelectionModel().getSelectedIndex(); List<TabData> tabs = tabbedContainer.getModel().getTabs(); for (int i = 0; i < tabs.size(); i++) { TabData tab = tabs.get(i); if (tab == selectedTab && selectedTabIndex != i) { tabbedContainer.getSelectionModel().setSelectedIndex(i); break; } } tabbedContainer.updateUI(); TopComponent topComponent = getTopComponent(internalFrame); // Publish lookup contents of selected frame to parent window lookup.setLookup(topComponent.getLookup()); // Publish activated nodes, if any setActivatedNodes(topComponent.getActivatedNodes()); // May not really be required if (WorkspaceTopComponent.this != WindowManager.getDefault().getRegistry().getActivated()) { WorkspaceTopComponent.this.requestActive(); } notifyActivated(topComponent); }
private void initComponents() { setLayout(new BorderLayout()); DefaultTabDataModel tabDataModel = new DefaultTabDataModel(); tabbedContainer = new TabbedContainer(tabDataModel, TabbedContainer.TYPE_EDITOR, WinsysInfoForTabbedContainer.getDefault(new MyWinsysInfoForTabbedContainer())); tabbedContainer.setVisible(false); desktopPane = new JDesktopPane(); add(tabbedContainer, BorderLayout.NORTH); add(desktopPane, BorderLayout.CENTER); }
if (topComponent instanceof WorkspaceTopComponent) { workspaceTopComponent = (WorkspaceTopComponent) topComponent; workspaceTopComponent.open();
/** * Opens a document window. * <p> * Document windows are initially opened in the NetBeans {@code "editor"} mode which * is the central panel of the main frame. * * @param documentWindow The document window to be opened. * @return {@code true} on success */ public boolean openWindow(DocumentWindow documentWindow) { TopComponent topComponent = documentWindow.getTopComponent(); WorkspaceTopComponent workspaceTopComponent = WorkspaceTopComponent.findShowingInstance(); if (workspaceTopComponent != null) { workspaceTopComponent.addTopComponent(topComponent); return true; } Mode editor = WindowManager.getDefault().findMode("editor"); if (editor.dockInto(topComponent)) { topComponent.open(); return true; } return false; }
@Override public TopComponent getSelectedWindow() { return getActiveTopComponent(); }
private TopComponent closeInternalFrame(JInternalFrame internalFrame) { return closeInternalFrame(internalFrame, true); }
public static WorkspaceTopComponent findShowingInstance() { TopComponent activated = WindowManager.getDefault().getRegistry().getActivated(); if (activated instanceof WorkspaceTopComponent) { return (WorkspaceTopComponent) activated; } List<WorkspaceTopComponent> showingWorkspaces = findShowingInstances(); if (!showingWorkspaces.isEmpty()) { return showingWorkspaces.get(0); } return null; }
@Override public UndoRedo getUndoRedo() { TopComponent topComponent = getActiveTopComponent(); if (topComponent != null) { return topComponent.getUndoRedo(); } return super.getUndoRedo(); }
private TopComponent dockInternalFrame(JInternalFrame internalFrame) { TopComponent topComponent = closeInternalFrame(internalFrame, true); Mode mode = WindowManager.getDefault().findMode("editor"); mode.dockInto(topComponent); if (!topComponent.isOpened()) { topComponent.open(); } return topComponent; }
@Override public void actionPerformed(ActionEvent e) { WorkspaceTopComponent workspaceTopComponent = FloatIntoWorkspaceAction.promptForWorkspaces(); if (workspaceTopComponent != null) { workspaceTopComponent.requestActive(); Mode mode = WindowManager.getDefault().findMode(window); if (mode != null) { TopComponent[] topComponents = WindowManager.getDefault().getOpenedTopComponents(mode); for (TopComponent topComponent : topComponents) { if (!(topComponent instanceof WorkspaceTopComponent)) { workspaceTopComponent.addTopComponent(topComponent); } } } } } }