diff --git a/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java b/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java index ac80749045af..cc2b4687ea0f 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/BeforeRunStepsPanel.java @@ -15,10 +15,12 @@ */ package com.intellij.execution.impl; -import com.intellij.execution.*; +import com.intellij.execution.BeforeRunTask; +import com.intellij.execution.BeforeRunTaskProvider; +import com.intellij.execution.ExecutionBundle; +import com.intellij.execution.RunnerAndConfigurationSettings; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.configurations.UnknownRunConfiguration; -import com.intellij.openapi.actionSystem.ActionToolbarPosition; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DefaultActionGroup; @@ -63,8 +65,9 @@ class BeforeRunStepsPanel extends JPanel { myList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); myList.setCellRenderer(new MyListCellRenderer()); ToolbarDecorator myDecorator = ToolbarDecorator.createDecorator(myList).setVisibleRowCount(4); - if (!SystemInfo.isMac) - myDecorator.setToolbarPosition(ActionToolbarPosition.TOP); + if (!SystemInfo.isMac) { + myDecorator.setAsTopToolbar(); + } myDecorator.setEditAction(new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { diff --git a/platform/platform-api/src/com/intellij/ui/CommonActionsPanel.java b/platform/platform-api/src/com/intellij/ui/CommonActionsPanel.java index ba0ff5eef1d3..eb35d73e1e72 100644 --- a/platform/platform-api/src/com/intellij/ui/CommonActionsPanel.java +++ b/platform/platform-api/src/com/intellij/ui/CommonActionsPanel.java @@ -32,9 +32,9 @@ import java.util.*; */ public class CommonActionsPanel extends JPanel { public static enum Buttons { - ADD, EDIT, REMOVE, UP, DOWN; + ADD, REMOVE, EDIT, UP, DOWN; - public static Buttons[] ALL = {ADD, EDIT, REMOVE, UP, DOWN}; + public static Buttons[] ALL = {ADD, REMOVE, EDIT, UP, DOWN}; Icon getIcon() { switch (this) { diff --git a/platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java b/platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java index 59dc1e7a5787..3085ec094829 100644 --- a/platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java +++ b/platform/platform-api/src/com/intellij/ui/ToolbarDecorator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,7 @@ package com.intellij.ui; import com.intellij.ide.DataManager; import com.intellij.openapi.actionSystem.*; +import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.SystemInfo; import com.intellij.ui.border.CustomLineBorder; import com.intellij.ui.table.TableView; @@ -30,9 +31,7 @@ import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.LineBorder; import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; +import java.util.*; import java.util.List; /** @@ -287,7 +286,11 @@ public abstract class ToolbarDecorator implements DataProvider, CommonActionsPan myButtonComparator, myAddName, myRemoveName, myMoveUpName, myMoveDownName, myEditName, buttons); - myPanel.setBorder(myBorder); + if (myAsTopToolbar) { + contextComponent.setBorder(IdeBorderFactory.createBorder(SideBorder.ALL)); + } else { + myPanel.setBorder(myBorder); + } final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(contextComponent); if (myPreferredSize != null) { scrollPane.setPreferredSize(myPreferredSize); @@ -307,7 +310,12 @@ public abstract class ToolbarDecorator implements DataProvider, CommonActionsPan installDnD(); panel.putClientProperty(ActionToolbar.ACTION_TOOLBAR_PROPERTY_KEY, myPanel.getComponent(0)); DataManager.registerDataProvider(panel, this); - if (!myAsTopToolbar) { + if (myAsTopToolbar) { + panel.setBorder(null); + if (getComponent().getBorder() == null) { + getComponent().setBorder(IdeBorderFactory.createBorder(SideBorder.ALL)); + } + } else { panel.setBorder(new LineBorder(UIUtil.getBorderColor())); final JComponent c = getComponent(); if (contextComponent != null) { @@ -358,21 +366,21 @@ public abstract class ToolbarDecorator implements DataProvider, CommonActionsPan private CommonActionsPanel.Buttons[] getButtons() { final ArrayList buttons = new ArrayList(); - if (myAddActionEnabled && myAddAction != null) { - buttons.add(CommonActionsPanel.Buttons.ADD); - } - if (myEditActionEnabled && myEditAction != null) { - buttons.add(CommonActionsPanel.Buttons.EDIT); - } - if (myRemoveActionEnabled && myRemoveAction != null) { - buttons.add(CommonActionsPanel.Buttons.REMOVE); - } - if (myUpActionEnabled && myUpAction != null) { - buttons.add(CommonActionsPanel.Buttons.UP); - } - if (myDownActionEnabled && myDownAction != null) { - buttons.add(CommonActionsPanel.Buttons.DOWN); + final HashMap> map = + new HashMap>(); + map.put(CommonActionsPanel.Buttons.ADD, Pair.create(myAddActionEnabled, myAddAction)); + map.put(CommonActionsPanel.Buttons.REMOVE, Pair.create(myRemoveActionEnabled, myRemoveAction)); + map.put(CommonActionsPanel.Buttons.EDIT, Pair.create(myEditActionEnabled, myEditAction)); + map.put(CommonActionsPanel.Buttons.UP, Pair.create(myUpActionEnabled, myUpAction)); + map.put(CommonActionsPanel.Buttons.DOWN, Pair.create(myDownActionEnabled, myDownAction)); + + for (CommonActionsPanel.Buttons button : CommonActionsPanel.Buttons.values()) { + final Pair action = map.get(button); + if (action != null && action.first && action.second != null) { + buttons.add(button); + } } + return buttons.toArray(new CommonActionsPanel.Buttons[buttons.size()]); }