2 * Copyright 2000-2010 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
.AnAction
;
19 import com
.intellij
.openapi
.actionSystem
.AnActionEvent
;
20 import com
.intellij
.openapi
.actionSystem
.PlatformDataKeys
;
21 import com
.intellij
.openapi
.project
.DumbAware
;
22 import com
.intellij
.openapi
.project
.Project
;
23 import com
.intellij
.openapi
.wm
.ToolWindow
;
24 import com
.intellij
.openapi
.wm
.ToolWindowManager
;
25 import com
.intellij
.openapi
.wm
.ToolWindowType
;
27 public abstract class BaseResizeAction
extends AnAction
implements DumbAware
{
29 private ToolWindow myLastWindow
;
30 private ToolWindowManager myLastManager
;
33 public final void update(AnActionEvent e
) {
34 Project project
= PlatformDataKeys
.PROJECT
.getData(e
.getDataContext());
35 if (project
== null) {
40 ToolWindowManager mgr
= ToolWindowManager
.getInstance(project
);
42 String active
= mgr
.getActiveToolWindowId();
44 ToolWindow window
= mgr
.getToolWindow(active
);
46 if (!window
.isAvailable() || !window
.isVisible() || window
.getType() == ToolWindowType
.FLOATING
) {
52 if (e
.getPresentation().isEnabled()) {
53 myLastWindow
= window
;
63 private void setDisabled(AnActionEvent e
) {
64 e
.getPresentation().setEnabled(false);
69 protected abstract void update(ToolWindow window
, ToolWindowManager mgr
);
72 public final void actionPerformed(AnActionEvent e
) {
73 actionPerformed(e
, myLastWindow
, myLastManager
);
76 protected abstract void actionPerformed(AnActionEvent e
, ToolWindow wnd
, ToolWindowManager mgr
);