diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowImpl.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowImpl.java | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowImpl.java index efcdd148d57b..1fa2bd95defe 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowImpl.java @@ -72,6 +72,7 @@ public final class ToolWindowImpl implements ToolWindowEx { private boolean myPlaceholderMode; private ToolWindowFactory myContentFactory; + @NotNull private ActionCallback myActivation = new ActionCallback.Done(); private final BusyObject.Impl myShowing = new BusyObject.Impl() { @Override @@ -115,18 +116,22 @@ public final class ToolWindowImpl implements ToolWindowEx { myChangeSupport.addPropertyChangeListener(l); } + @Override public final void removePropertyChangeListener(final PropertyChangeListener l) { myChangeSupport.removePropertyChangeListener(l); } + @Override public final void activate(final Runnable runnable) { activate(runnable, true); } + @Override public void activate(@Nullable final Runnable runnable, final boolean autoFocusContents) { activate(runnable, autoFocusContents, true); } + @Override public void activate(@Nullable final Runnable runnable, boolean autoFocusContents, boolean forced) { ApplicationManager.getApplication().assertIsDispatchThread(); @@ -136,6 +141,7 @@ public final class ToolWindowImpl implements ToolWindowEx { myToolWindowManager.activateToolWindow(myId, forced, autoFocusContents); getActivation().doWhenDone(new Runnable() { + @Override public void run() { myToolWindowManager.invokeLater(new Runnable() { @Override @@ -150,6 +156,7 @@ public final class ToolWindowImpl implements ToolWindowEx { }); } + @Override public final boolean isActive() { ApplicationManager.getApplication().assertIsDispatchThread(); if (myToolWindowManager.isEditorComponentActive()) return false; @@ -182,11 +189,13 @@ public final class ToolWindowImpl implements ToolWindowEx { return result; } + @Override public final void show(final Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.showToolWindow(myId); if (runnable != null) { getActivation().doWhenDone(new Runnable() { + @Override public void run() { myToolWindowManager.invokeLater(runnable); } @@ -194,6 +203,7 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public final void hide(@Nullable final Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.hideToolWindow(myId, false); @@ -202,14 +212,17 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public final boolean isVisible() { return myToolWindowManager.isToolWindowVisible(myId); } + @Override public final ToolWindowAnchor getAnchor() { return myToolWindowManager.getToolWindowAnchor(myId); } + @Override public final void setAnchor(final ToolWindowAnchor anchor, @Nullable final Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.setToolWindowAnchor(myId, anchor); @@ -218,11 +231,13 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public boolean isSplitMode() { ApplicationManager.getApplication().assertIsDispatchThread(); return myToolWindowManager.isSplitMode(myId); } + @Override public void setContentUiType(ToolWindowContentUiType type, @Nullable Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.setContentUiType(myId, type); @@ -231,15 +246,18 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public void setDefaultContentUiType(@NotNull ToolWindowContentUiType type) { myToolWindowManager.setDefaultContentUiType(this, type); } + @Override public ToolWindowContentUiType getContentUiType() { ApplicationManager.getApplication().assertIsDispatchThread(); return myToolWindowManager.getContentUiType(myId); } + @Override public void setSplitMode(final boolean isSideTool, @Nullable final Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.setSideTool(myId, isSideTool); @@ -248,20 +266,24 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public final void setAutoHide(final boolean state) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.setToolWindowAutoHide(myId, state); } + @Override public final boolean isAutoHide() { ApplicationManager.getApplication().assertIsDispatchThread(); return myToolWindowManager.isToolWindowAutoHide(myId); } + @Override public final ToolWindowType getType() { return myToolWindowManager.getToolWindowType(myId); } + @Override public final void setType(final ToolWindowType type, @Nullable final Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); myToolWindowManager.setToolWindowType(myId, type); @@ -270,19 +292,23 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public final ToolWindowType getInternalType() { ApplicationManager.getApplication().assertIsDispatchThread(); return myToolWindowManager.getToolWindowInternalType(myId); } + @Override public void stretchWidth(int value) { myToolWindowManager.stretchWidth(this, value); } + @Override public void stretchHeight(int value) { myToolWindowManager.stretchHeight(this, value); } + @Override public InternalDecorator getDecorator() { return myDecorator; } @@ -297,6 +323,7 @@ public final class ToolWindowImpl implements ToolWindowEx { getDecorator().setTitleActions(actions); } + @Override public final void setAvailable(final boolean available, final Runnable runnable) { ApplicationManager.getApplication().assertIsDispatchThread(); final Boolean oldAvailable = myAvailable ? Boolean.TRUE : Boolean.FALSE; @@ -307,6 +334,7 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public void installWatcher(ContentManager contentManager) { new ContentManagerWatcher(this, contentManager); } @@ -316,14 +344,17 @@ public final class ToolWindowImpl implements ToolWindowEx { * <code>ContentManager</code> class. Otherwise it delegates the functionality to the * passed content manager. */ + @Override public final boolean isAvailable() { return myAvailable && myComponent != null; } + @Override public final JComponent getComponent() { return myComponent; } + @Override public ContentManager getContentManager() { return myContentManager; } @@ -332,6 +363,7 @@ public final class ToolWindowImpl implements ToolWindowEx { return myContentUI; } + @Override public final Icon getIcon() { ApplicationManager.getApplication().assertIsDispatchThread(); return myIcon; @@ -342,17 +374,20 @@ public final class ToolWindowImpl implements ToolWindowEx { return myId; } + @Override public final String getTitle() { ApplicationManager.getApplication().assertIsDispatchThread(); return getSelectedContent().getDisplayName(); } + @Override @NotNull public final String getStripeTitle() { ApplicationManager.getApplication().assertIsDispatchThread(); return ObjectUtils.notNull(myStripeTitle, myId); } + @Override public final void setIcon(final Icon icon) { ApplicationManager.getApplication().assertIsDispatchThread(); final Icon oldIcon = getIcon(); @@ -364,6 +399,7 @@ public final class ToolWindowImpl implements ToolWindowEx { myChangeSupport.firePropertyChange(PROP_ICON, oldIcon, icon); } + @Override public final void setTitle(String title) { ApplicationManager.getApplication().assertIsDispatchThread(); String oldTitle = getTitle(); @@ -371,6 +407,7 @@ public final class ToolWindowImpl implements ToolWindowEx { myChangeSupport.firePropertyChange(PROP_TITLE, oldTitle, title); } + @Override public final void setStripeTitle(@NotNull String stripeTitle) { ApplicationManager.getApplication().assertIsDispatchThread(); String oldTitle = myStripeTitle; @@ -415,18 +452,22 @@ public final class ToolWindowImpl implements ToolWindowEx { return myDecorator != null ? myDecorator.createPopupGroup() : null; } + @Override public void setDefaultState(@Nullable final ToolWindowAnchor anchor, @Nullable final ToolWindowType type, @Nullable final Rectangle floatingBounds) { myToolWindowManager.setDefaultState(this, anchor, type, floatingBounds); } + @Override public void setToHideOnEmptyContent(final boolean hideOnEmpty) { myHideOnEmptyContent = hideOnEmpty; } + @Override public boolean isToHideOnEmptyContent() { return myHideOnEmptyContent; } + @Override public boolean isDisposed() { return myContentManager.isDisposed(); } @@ -439,12 +480,15 @@ public final class ToolWindowImpl implements ToolWindowEx { myPlaceholderMode = placeholderMode; } + @Override + @NotNull public ActionCallback getActivation() { return myActivation; } - public ActionCallback setActivation(ActionCallback activation) { - if (myActivation != null && !myActivation.isProcessed() && !myActivation.equals(activation)) { + @NotNull + public ActionCallback setActivation(@NotNull ActionCallback activation) { + if (!myActivation.isProcessed() && !myActivation.equals(activation)) { myActivation.setRejected(); } @@ -467,6 +511,7 @@ public final class ToolWindowImpl implements ToolWindowEx { } } + @Override public void showContentPopup(InputEvent inputEvent) { myContentUI.toggleContentPopup(); } |