sticky documentation popup [take 1]
[fedora-idea.git] / platform / platform-impl / src / com / intellij / openapi / wm / impl / ToolWindowHeadlessManagerImpl.java
blob5907d5afbebc1756afb6e8b9d40844fa87d182b1
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * Created by IntelliJ IDEA.
19 * User: Anna.Kozlova
20 * Date: 13-Jul-2006
21 * Time: 12:07:39
23 package com.intellij.openapi.wm.impl;
25 import com.intellij.openapi.Disposable;
26 import com.intellij.openapi.ui.MessageType;
27 import com.intellij.openapi.components.ServiceManager;
28 import com.intellij.openapi.actionSystem.AnAction;
29 import com.intellij.openapi.actionSystem.DataProvider;
30 import com.intellij.openapi.util.ActionCallback;
31 import com.intellij.openapi.util.Condition;
32 import com.intellij.openapi.util.ActiveRunnable;
33 import com.intellij.openapi.wm.*;
34 import com.intellij.openapi.wm.ex.ToolWindowManagerEx;
35 import com.intellij.openapi.wm.ex.ToolWindowManagerListener;
36 import com.intellij.ui.content.Content;
37 import com.intellij.ui.content.ContentFactory;
38 import com.intellij.ui.content.ContentManager;
39 import com.intellij.ui.content.ContentManagerListener;
40 import com.intellij.util.ArrayUtil;
41 import org.jetbrains.annotations.NonNls;
42 import org.jetbrains.annotations.NotNull;
43 import org.jetbrains.annotations.Nullable;
45 import javax.swing.*;
46 import javax.swing.event.HyperlinkListener;
47 import java.awt.*;
48 import java.awt.event.InputEvent;
49 import java.util.Collections;
50 import java.util.List;
51 import java.util.ArrayList;
53 @SuppressWarnings({"ConstantConditions"})
54 public class ToolWindowHeadlessManagerImpl extends ToolWindowManagerEx {
56 public void notifyByBalloon(@NotNull final String toolWindowId, @NotNull final MessageType type, @NotNull final String htmlBody) {
59 private static final ToolWindow HEADLESS_WINDOW = new ToolWindow(){
60 public boolean isActive() {
61 return false;
64 public void activate(@Nullable Runnable runnable) {
67 public boolean isDisposed() {
68 return false;
71 public boolean isVisible() {
72 return false;
76 public void show(@Nullable Runnable runnable) {
79 public void hide(@Nullable Runnable runnable) {
82 public ToolWindowAnchor getAnchor() {
83 return ToolWindowAnchor.BOTTOM;
86 public void setAnchor(ToolWindowAnchor anchor, @Nullable Runnable runnable) {
89 public boolean isSplitMode() {
90 return false;
93 public void setSplitMode(final boolean isSideTool, @Nullable final Runnable runnable) {
97 public boolean isAutoHide() {
98 return false;
101 public void setAutoHide(boolean state) {
104 public void setToHideOnEmptyContent(final boolean hideOnEmpty) {
107 public boolean isToHideOnEmptyContent() {
108 return false;
111 public ToolWindowType getType() {
112 return ToolWindowType.SLIDING;
115 public void setType(ToolWindowType type, @Nullable Runnable runnable) {
118 public Icon getIcon() {
119 return null;
122 public void setIcon(Icon icon) {
125 public String getTitle() {
126 return "";
129 public void setTitle(String title) {
132 public boolean isAvailable() {
133 return false;
136 public void setContentUiType(ToolWindowContentUiType type, @Nullable Runnable runnable) {
139 public void setDefaultContentUiType(@NotNull ToolWindowContentUiType type) {
142 public ToolWindowContentUiType getContentUiType() {
143 return ToolWindowContentUiType.TABBED;
146 public void setAvailable(boolean available, @Nullable Runnable runnable) {
149 public void installWatcher(ContentManager contentManager) {
152 public JComponent getComponent() {
153 return null;
156 public ContentManager getContentManager() {
157 return MOCK_CONTENT_MANAGER;
160 public void setDefaultState(@Nullable final ToolWindowAnchor anchor, @Nullable final ToolWindowType type, @Nullable final Rectangle floatingBounds) {
163 public void activate(@Nullable final Runnable runnable, final boolean autoFocusContents) {
166 public void activate(@Nullable Runnable runnable, boolean autoFocusContents, boolean forced) {
169 public void showContentPopup(InputEvent inputEvent) {
173 @NonNls private static final ContentManager MOCK_CONTENT_MANAGER = new ContentManager() {
174 public void addContent(@NotNull final Content content) { }
175 public void addContent(@NotNull final Content content, final Object constraints) { }
176 public void addContentManagerListener(@NotNull final ContentManagerListener l) { }
177 public void addDataProvider(@NotNull final DataProvider provider) { }
178 public void addSelectedContent(@NotNull final Content content) { }
179 public boolean canCloseAllContents() { return false; }
180 public boolean canCloseContents() { return false; }
181 public Content findContent(final String displayName) { return null; }
182 public List<AnAction> getAdditionalPopupActions(@NotNull final Content content) { return Collections.emptyList(); }
183 public String getCloseActionName() { return "close"; }
184 public String getCloseAllButThisActionName() { return "closeallbutthis"; }
185 public JComponent getComponent() { return new JLabel(); }
186 public Content getContent(final JComponent component) { return null; }
187 @Nullable
188 public Content getContent(final int index) { return null; }
189 public int getContentCount() { return 0; }
190 @NotNull
191 public Content[] getContents() { return new Content[0]; }
192 public int getIndexOfContent(final Content content) { return -1; }
193 @Nullable
194 public Content getSelectedContent() { return null; }
195 @NotNull
196 public Content[] getSelectedContents() { return new Content[0]; }
197 public boolean isSelected(@NotNull final Content content) { return false; }
198 public void removeAllContents(final boolean dispose) { }
199 public boolean removeContent(@NotNull final Content content, final boolean dispose) { return false; }
200 public void removeContentManagerListener(@NotNull final ContentManagerListener l) { }
201 public void removeFromSelection(@NotNull final Content content) { }
202 public ActionCallback selectNextContent() { return new ActionCallback.Done();}
203 public ActionCallback selectPreviousContent() { return new ActionCallback.Done();}
204 public void setSelectedContent(@NotNull final Content content) { }
205 public ActionCallback setSelectedContentCB(@NotNull Content content) { return new ActionCallback.Done(); }
206 public void setSelectedContent(@NotNull final Content content, final boolean requestFocus) { }
207 public ActionCallback setSelectedContentCB(@NotNull final Content content, final boolean requestFocus) { return new ActionCallback.Done();}
209 public void setSelectedContent(@NotNull Content content, boolean requestFocus, boolean forcedFocus) {
212 public ActionCallback setSelectedContentCB(@NotNull final Content content, final boolean requestFocus, final boolean forcedFocus) {
213 return new ActionCallback.Done();
216 public ActionCallback requestFocus(@Nullable final Content content, final boolean forced) {
217 return new ActionCallback.Done();
220 public void dispose() {}
222 public boolean isDisposed() {
223 return false;
226 public boolean isSingleSelection() {
227 return true;
230 @NotNull
231 public ContentFactory getFactory() {
232 return ServiceManager.getService(ContentFactory.class);
236 public ToolWindow registerToolWindow(@NotNull String id, @NotNull JComponent component, @NotNull ToolWindowAnchor anchor) {
237 return HEADLESS_WINDOW;
240 public ToolWindow registerToolWindow(@NotNull String id, @NotNull JComponent component, @NotNull ToolWindowAnchor anchor, Disposable parentDisposable, boolean canWorkInDumbMode) {
241 return HEADLESS_WINDOW;
244 public ToolWindow registerToolWindow(@NotNull String id, @NotNull JComponent component, @NotNull ToolWindowAnchor anchor, Disposable parentDisposable) {
245 return HEADLESS_WINDOW;
248 public ToolWindow registerToolWindow(@NotNull final String id, final boolean canCloseContent, @NotNull final ToolWindowAnchor anchor) {
249 return HEADLESS_WINDOW;
252 public ToolWindow registerToolWindow(@NotNull final String id, final boolean canCloseContent, @NotNull final ToolWindowAnchor anchor, final boolean sideTool) {
253 return HEADLESS_WINDOW;
256 public ToolWindow registerToolWindow(@NotNull final String id, final boolean canCloseContent, @NotNull final ToolWindowAnchor anchor,
257 final Disposable parentDisposable, final boolean dumbAware) {
258 return HEADLESS_WINDOW;
261 public void unregisterToolWindow(@NotNull String id) {
264 public void activateEditorComponent() {
267 public boolean isEditorComponentActive() {
268 return false;
271 public ActionCallback requestFocus(final Component c, final boolean forced) {
272 return new ActionCallback.Done();
275 public ActionCallback requestFocus(final ActiveRunnable command, final boolean forced) {
276 return new ActionCallback.Done();
279 public JComponent getFocusTargetFor(final JComponent comp) {
280 return null;
283 public String[] getToolWindowIds() {
284 return ArrayUtil.EMPTY_STRING_ARRAY;
287 public String getActiveToolWindowId() {
288 return null;
291 public ToolWindow getToolWindow(String id) {
292 return HEADLESS_WINDOW;
295 public void invokeLater(Runnable runnable) {
298 public IdeFocusManager getFocusManager() {
299 return IdeFocusManagerHeadless.INSTANCE;
302 @Override
303 public void notifyByBalloon(@NotNull final String toolWindowId, final MessageType type, @NotNull final String text, @Nullable final Icon icon,
304 @Nullable final HyperlinkListener listener) {
307 public void addToolWindowManagerListener(ToolWindowManagerListener l) {
311 public void removeToolWindowManagerListener(ToolWindowManagerListener l) {
314 public String getLastActiveToolWindowId() {
315 return null;
318 public String getLastActiveToolWindowId(Condition<JComponent> condition) {
319 return null;
322 public DesktopLayout getLayout() {
323 return new DesktopLayout();
326 public void setLayoutToRestoreLater(DesktopLayout layout) {
329 public DesktopLayout getLayoutToRestoreLater() {
330 return new DesktopLayout();
333 public void setLayout(DesktopLayout layout) {
336 public void clearSideStack() {
339 public void hideToolWindow(final String id, final boolean hideSide) {
342 public List<String> getIdsOn(final ToolWindowAnchor anchor) {
343 return new ArrayList<String>();