sticky documentation popup [take 1]
[fedora-idea.git] / platform / platform-impl / src / com / intellij / ide / actions / ToggleDockModeAction.java
blobd34eebeb1ca4e082d1780da7b61b5f826f69ec28
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.
16 package com.intellij.ide.actions;
18 import com.intellij.openapi.actionSystem.AnActionEvent;
19 import com.intellij.openapi.actionSystem.PlatformDataKeys;
20 import com.intellij.openapi.actionSystem.Presentation;
21 import com.intellij.openapi.actionSystem.ToggleAction;
22 import com.intellij.openapi.project.Project;
23 import com.intellij.openapi.project.DumbAware;
24 import com.intellij.openapi.wm.ToolWindow;
25 import com.intellij.openapi.wm.ToolWindowManager;
26 import com.intellij.openapi.wm.ToolWindowType;
28 public class ToggleDockModeAction extends ToggleAction implements DumbAware {
30 public boolean isSelected(AnActionEvent event){
31 Project project = PlatformDataKeys.PROJECT.getData(event.getDataContext());
32 if (project == null) {
33 return false;
35 ToolWindowManager windowManager = ToolWindowManager.getInstance(project);
36 String id=windowManager.getActiveToolWindowId();
37 if(id==null){
38 return false;
40 return ToolWindowType.DOCKED==windowManager.getToolWindow(id).getType();
43 public void setSelected(AnActionEvent event,boolean flag){
44 Project project = PlatformDataKeys.PROJECT.getData(event.getDataContext());
45 if (project == null) {
46 return;
48 ToolWindowManager windowManager = ToolWindowManager.getInstance(project);
49 String id=windowManager.getActiveToolWindowId();
50 if(id==null){
51 return;
53 ToolWindow toolWindow=windowManager.getToolWindow(id);
54 ToolWindowType type=toolWindow.getType();
55 if(ToolWindowType.DOCKED==type){
56 toolWindow.setType(ToolWindowType.SLIDING, null);
57 } else if(ToolWindowType.SLIDING==type){
58 toolWindow.setType(ToolWindowType.DOCKED, null);
62 public void update(AnActionEvent event){
63 super.update(event);
64 Presentation presentation = event.getPresentation();
65 Project project = PlatformDataKeys.PROJECT.getData(event.getDataContext());
66 if (project == null) {
67 presentation.setEnabled(false);
68 return;
70 ToolWindowManager mgr=ToolWindowManager.getInstance(project);
71 String id=mgr.getActiveToolWindowId();
72 if(id==null){
73 presentation.setEnabled(false);
74 return;
76 ToolWindow toolWindow=mgr.getToolWindow(id);
77 presentation.setEnabled(toolWindow.isAvailable()&&ToolWindowType.FLOATING!=toolWindow.getType());