From 53ef1cf64d61b67c88ff926150be4799508cb869 Mon Sep 17 00:00:00 2001 From: nik Date: Tue, 5 Nov 2013 11:40:59 +0400 Subject: [PATCH] source roots editor: panels swapped, toolbar extended, group for 'mark as resource' actions eliminated --- .../JavaResourceRootEditHandlerBase.java | 6 ---- .../CommonContentEntriesEditor.java | 34 ++++++++++++------- .../configuration/ContentEntryTreeEditor.java | 25 ++++---------- .../ModuleSourceRootEditHandler.java | 5 --- 4 files changed, 27 insertions(+), 43 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandlerBase.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandlerBase.java index 3c2b3a205fd5..ba7778da6397 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandlerBase.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JavaResourceRootEditHandlerBase.java @@ -36,12 +36,6 @@ public abstract class JavaResourceRootEditHandlerBase extends ModuleSourceRootEd return null; } - @Nullable - @Override - public String getMarkRootGroupName() { - return "Resources"; - } - @Nullable @Override public CustomShortcutSet getMarkRootShortcutSet() { diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java index b7583d05ffdb..519082f89f7b 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/CommonContentEntriesEditor.java @@ -18,9 +18,7 @@ package com.intellij.openapi.roots.ui.configuration; import com.intellij.icons.AllIcons; import com.intellij.openapi.Disposable; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.DefaultActionGroup; -import com.intellij.openapi.actionSystem.LangDataKeys; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileChooser.FileChooser; import com.intellij.openapi.fileChooser.FileChooserDescriptor; @@ -53,8 +51,10 @@ import javax.swing.border.Border; import java.awt.*; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author Eugene Zhuravlev @@ -163,18 +163,26 @@ public class CommonContentEntriesEditor extends ModuleElementsEditor { entriesPanel.add(new ToolbarPanel(myScrollPane, group), BorderLayout.CENTER); final Splitter splitter = new Splitter(false); - splitter.setProportion(0.4f); + splitter.setProportion(0.6f); splitter.setHonorComponentsMinimumSize(true); - mainPanel.add(splitter, BorderLayout.CENTER); - - final JPanel editorsPanel = new JPanel(new GridBagLayout()); - splitter.setFirstComponent(editorsPanel); - editorsPanel.add(entriesPanel, - new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); myRootTreeEditor = createContentEntryTreeEditor(project); - final JComponent treeEditorComponent = myRootTreeEditor.createComponent(); - splitter.setSecondComponent(treeEditorComponent); + splitter.setFirstComponent(myRootTreeEditor.createComponent()); + splitter.setSecondComponent(entriesPanel); + JPanel contentPanel = new JPanel(new GridBagLayout()); + contentPanel.setBorder(BorderFactory.createEtchedBorder()); + final ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, myRootTreeEditor.getEditingActionsGroup(), true); + contentPanel.add(new JLabel("Mark as:"), + new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, 0, new Insets(0, 5, 0, 5), 0, 0)); + contentPanel.add(actionToolbar.getComponent(), + new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, + new Insets(0, 0, 0, 0), 0, 0)); + contentPanel.add(splitter, + new GridBagConstraints(0, GridBagConstraints.RELATIVE, 2, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, + new Insets(0, 0, 0, 0), 0, 0)); + + mainPanel.add(contentPanel, BorderLayout.CENTER); + final JPanel innerPanel = createBottomControl(module); if (innerPanel != null) { diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java index 76dc610f88aa..cddd83dfb5ec 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ContentEntryTreeEditor.java @@ -45,7 +45,6 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.ScrollPaneFactory; import com.intellij.ui.TreeSpeedSearch; -import com.intellij.ui.roots.ToolbarPanel; import com.intellij.ui.treeStructure.Tree; import com.intellij.util.ui.tree.TreeUtil; import org.jetbrains.annotations.NonNls; @@ -58,9 +57,7 @@ import java.awt.*; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.util.Comparator; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author Eugene Zhuravlev @@ -68,7 +65,6 @@ import java.util.Map; * Time: 1:19:47 PM */ public class ContentEntryTreeEditor { - public static final String TOOLBAR_PLACE = "ContentEntryTreeToolbar"; private final Project myProject; private final List> myEditHandlers; protected final Tree myTree; @@ -94,7 +90,7 @@ public class ContentEntryTreeEditor { myTreePanel = new MyPanel(new BorderLayout()); final JScrollPane scrollPane = ScrollPaneFactory.createScrollPane(myTree); - myTreePanel.add(new ToolbarPanel(scrollPane, myEditingActionsGroup, TOOLBAR_PLACE), BorderLayout.CENTER); + myTreePanel.add(scrollPane, BorderLayout.CENTER); myTreePanel.setVisible(false); myDescriptor = FileChooserDescriptorFactory.createMultipleFoldersDescriptor(); @@ -102,26 +98,13 @@ public class ContentEntryTreeEditor { } protected void createEditingActions() { - Map groups = new HashMap(); for (final ModuleSourceRootEditHandler editor : myEditHandlers) { ToggleSourcesStateAction action = new ToggleSourcesStateAction(myTree, this, editor); CustomShortcutSet shortcutSet = editor.getMarkRootShortcutSet(); if (shortcutSet != null) { action.registerCustomShortcutSet(shortcutSet, myTree); } - String groupName = editor.getMarkRootGroupName(); - if (groupName != null) { - DefaultActionGroup group = groups.get(groupName); - if (group == null) { - group = new MarkSourceToggleActionsGroup(groupName, editor.getRootIcon()); - groups.put(groupName, group); - myEditingActionsGroup.add(group); - } - group.add(action); - } - else { - myEditingActionsGroup.add(action); - } + myEditingActionsGroup.add(action); } setupExcludedAction(); @@ -318,6 +301,10 @@ public class ContentEntryTreeEditor { } } + public DefaultActionGroup getEditingActionsGroup() { + return myEditingActionsGroup; + } + protected void setupExcludedAction() { ToggleExcludedStateAction toggleExcludedAction = new ToggleExcludedStateAction(myTree, this); myEditingActionsGroup.add(toggleExcludedAction); diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ModuleSourceRootEditHandler.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ModuleSourceRootEditHandler.java index 069ca2d64324..cab301a77d31 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ModuleSourceRootEditHandler.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/ModuleSourceRootEditHandler.java @@ -60,11 +60,6 @@ public abstract class ModuleSourceRootEditHandler

{ @Nullable public abstract Icon getFolderUnderRootIcon(); - @Nullable - public String getMarkRootGroupName() { - return null; - } - @Nullable public abstract CustomShortcutSet getMarkRootShortcutSet();