From 3134fdba2d7bf1e1ec818c5f736da2798c041f1b Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Tue, 8 Nov 2016 12:53:29 +0100 Subject: [PATCH] Cleanup (deprecated code; warnings; formatting) --- .../ide/hierarchy/HierarchyBrowserBase.java | 18 ++-- .../ide/hierarchy/HierarchyBrowserBaseEx.java | 82 +++++++++---------- .../hierarchy/HierarchyBrowserManager.java | 12 ++- 3 files changed, 57 insertions(+), 55 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBase.java b/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBase.java index 23258fa41ed0..af87de5706a9 100644 --- a/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBase.java +++ b/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBase.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.intellij.ide.hierarchy; import com.intellij.ide.CommonActionsManager; @@ -56,9 +55,10 @@ import java.util.Set; public abstract class HierarchyBrowserBase extends SimpleToolWindowPanel implements HierarchyBrowser, Disposable, DataProvider { private static final HierarchyNodeDescriptor[] EMPTY_DESCRIPTORS = new HierarchyNodeDescriptor[0]; - protected Content myContent; - private final AutoScrollToSourceHandler myAutoScrollToSourceHandler; protected final Project myProject; + protected Content myContent; + + private final AutoScrollToSourceHandler myAutoScrollToSourceHandler; protected HierarchyBrowserBase(@NotNull Project project) { super(true, true); @@ -66,12 +66,12 @@ public abstract class HierarchyBrowserBase extends SimpleToolWindowPanel impleme myAutoScrollToSourceHandler = new AutoScrollToSourceHandler() { @Override protected boolean isAutoScrollMode() { - return HierarchyBrowserManager.getInstance(myProject).getState().IS_AUTOSCROLL_TO_SOURCE; + return HierarchyBrowserManager.getSettings(myProject).IS_AUTOSCROLL_TO_SOURCE; } @Override - protected void setAutoScrollMode(final boolean state) { - HierarchyBrowserManager.getInstance(myProject).getState().IS_AUTOSCROLL_TO_SOURCE = state; + protected void setAutoScrollMode(boolean state) { + HierarchyBrowserManager.getSettings(myProject).IS_AUTOSCROLL_TO_SOURCE = state; } }; } @@ -87,8 +87,7 @@ public abstract class HierarchyBrowserBase extends SimpleToolWindowPanel impleme } @Override - public void dispose() { - } + public void dispose() { } protected ActionToolbar createToolbar(final String place, final String helpID) { final DefaultActionGroup actionGroup = new DefaultActionGroup(); @@ -302,5 +301,4 @@ public abstract class HierarchyBrowserBase extends SimpleToolWindowPanel impleme TreeUtil.installActions(tree); myAutoScrollToSourceHandler.install(tree); } - -} +} \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBaseEx.java b/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBaseEx.java index c355b76568bf..07eefa63f449 100644 --- a/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBaseEx.java +++ b/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserBaseEx.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.intellij.ide.hierarchy; import com.intellij.icons.AllIcons; @@ -49,7 +48,7 @@ import com.intellij.util.Alarm; import com.intellij.util.EditSourceOnDoubleClickHandler; import com.intellij.util.EditSourceOnEnterKeyHandler; import com.intellij.util.NullableFunction; -import org.jetbrains.annotations.NonNls; +import com.intellij.util.ui.JBUI; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -66,21 +65,12 @@ import java.util.List; public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implements OccurenceNavigator { private static final Logger LOG = Logger.getInstance("#com.intellij.ide.hierarchy.HierarchyBrowserBaseEx"); - @NonNls private static final String HELP_ID = "reference.toolWindows.hierarchy"; + public static final String SCOPE_PROJECT = IdeBundle.message("hierarchy.scope.project"); + public static final String SCOPE_ALL = IdeBundle.message("hierarchy.scope.all"); + public static final String SCOPE_TEST = IdeBundle.message("hierarchy.scope.test"); + public static final String SCOPE_CLASS = IdeBundle.message("hierarchy.scope.this.class"); - protected final Hashtable myBuilders = new Hashtable<>(); - private final Hashtable myType2TreeMap = new Hashtable<>(); - - private final RefreshAction myRefreshAction = new RefreshAction(); - private final Alarm myAlarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD,this); - private SmartPsiElementPointer mySmartPsiElementPointer; - private final CardLayout myCardLayout; - private final JPanel myTreePanel; - protected String myCurrentViewType; - - private boolean myCachedIsValidBase; - - private final Map myOccurrenceNavigators = new HashMap<>(); + private static final String HELP_ID = "reference.toolWindows.hierarchy"; private static final OccurenceNavigator EMPTY_NAVIGATOR = new OccurenceNavigator() { @Override @@ -113,10 +103,18 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem return ""; } }; - public static final String SCOPE_PROJECT = IdeBundle.message("hierarchy.scope.project"); - public static final String SCOPE_ALL = IdeBundle.message("hierarchy.scope.all"); - public static final String SCOPE_TEST = IdeBundle.message("hierarchy.scope.test"); - public static final String SCOPE_CLASS = IdeBundle.message("hierarchy.scope.this.class"); + + protected final Map myBuilders = Collections.synchronizedMap(new HashMap<>()); + protected String myCurrentViewType; + + private final Map myType2TreeMap; + private final RefreshAction myRefreshAction = new RefreshAction(); + private final Alarm myAlarm = new Alarm(Alarm.ThreadToUse.POOLED_THREAD,this); + private SmartPsiElementPointer mySmartPsiElementPointer; + private final CardLayout myCardLayout; + private final JPanel myTreePanel; + private boolean myCachedIsValidBase; + private final Map myOccurrenceNavigators = new HashMap<>(); private final Map myType2ScopeMap = new HashMap<>(); public HierarchyBrowserBaseEx(@NotNull Project project, @NotNull PsiElement element) { @@ -127,17 +125,17 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem myCardLayout = new CardLayout(); myTreePanel = new JPanel(myCardLayout); - createTrees(myType2TreeMap); + Map type2treeMap = new HashMap<>(); + createTrees(type2treeMap); + myType2TreeMap = Collections.unmodifiableMap(type2treeMap); - final HierarchyBrowserManager.State state = HierarchyBrowserManager.getInstance(project).getState(); + HierarchyBrowserManager.State state = HierarchyBrowserManager.getSettings(project); for (String type : myType2TreeMap.keySet()) { myType2ScopeMap.put(type, state.SCOPE != null ? state.SCOPE : SCOPE_ALL); } - final Enumeration keys = myType2TreeMap.keys(); - while (keys.hasMoreElements()) { - final String key = keys.nextElement(); - final JTree tree = myType2TreeMap.get(key); + for (String key : myType2TreeMap.keySet()) { + JTree tree = myType2TreeMap.get(key); myOccurrenceNavigators.put(key, new OccurenceNavigatorSupport(tree) { @Override @Nullable @@ -174,6 +172,7 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem else { contentPanel = myTreePanel; } + buildUi(createToolbar(getActionPlace(), HELP_ID).getComponent(), contentPanel); } @@ -221,6 +220,7 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem }; if (dndAware) { + //noinspection Duplicates tree = new DnDAwareTree(new DefaultTreeModel(new DefaultMutableTreeNode(""))) { @Override public void removeNotify() { @@ -283,6 +283,7 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem } } else { + //noinspection Duplicates tree = new Tree(new DefaultTreeModel(new DefaultMutableTreeNode(""))) { @Override public void removeNotify() { @@ -517,13 +518,12 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem @Override public final boolean isSelected(final AnActionEvent event) { - return HierarchyBrowserManager.getInstance(myProject).getState().SORT_ALPHABETICALLY; + return HierarchyBrowserManager.getSettings(myProject).SORT_ALPHABETICALLY; } @Override public final void setSelected(final AnActionEvent event, final boolean flag) { - final HierarchyBrowserManager hierarchyBrowserManager = HierarchyBrowserManager.getInstance(myProject); - hierarchyBrowserManager.getState().SORT_ALPHABETICALLY = flag; + HierarchyBrowserManager.getSettings(myProject).SORT_ALPHABETICALLY = flag; final Comparator comparator = getComparator(); final Collection builders = myBuilders.values(); for (final HierarchyTreeBuilder builder : builders) { @@ -541,7 +541,7 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem static class BaseOnThisElementAction extends AnAction { private final String myBrowserDataKey; - @NotNull private final LanguageExtension myProviderLanguageExtension; + private final LanguageExtension myProviderLanguageExtension; BaseOnThisElementAction(@NotNull String text, @NotNull String browserDataKey, @@ -562,13 +562,13 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem final String currentViewType = browser.myCurrentViewType; Disposer.dispose(browser); - final HierarchyProvider provider = BrowseHierarchyActionBase.findProvider(myProviderLanguageExtension, - selectedElement, - selectedElement.getContainingFile(), - event.getDataContext()); - final HierarchyBrowser newBrowser = BrowseHierarchyActionBase.createAndAddToPanel(selectedElement.getProject(), provider, selectedElement); - ApplicationManager.getApplication().invokeLater( - () -> ((HierarchyBrowserBaseEx)newBrowser).changeView(correctViewType(browser, currentViewType))); + final HierarchyProvider provider = BrowseHierarchyActionBase.findProvider( + myProviderLanguageExtension, selectedElement, selectedElement.getContainingFile(), event.getDataContext()); + if (provider != null) { + HierarchyBrowserBaseEx newBrowser = (HierarchyBrowserBaseEx)BrowseHierarchyActionBase.createAndAddToPanel( + selectedElement.getProject(), provider, selectedElement); + ApplicationManager.getApplication().invokeLater(() -> newBrowser.changeView(correctViewType(browser, currentViewType))); + } } protected String correctViewType(HierarchyBrowserBaseEx browser, String viewType) { @@ -677,7 +677,7 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem private void selectScope(final String scopeType) { myType2ScopeMap.put(myCurrentViewType, scopeType); - HierarchyBrowserManager.getInstance(myProject).getState().SCOPE = scopeType; + HierarchyBrowserManager.getSettings(myProject).SCOPE = scopeType; // invokeLater is called to update state of button before long tree building operation ApplicationManager.getApplication().invokeLater(() -> { @@ -689,9 +689,9 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem public final JComponent createCustomComponent(final Presentation presentation) { final JPanel panel = new JPanel(new GridBagLayout()); panel.add(new JLabel(IdeBundle.message("label.scope")), - new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0, 5, 0, 0), 0, 0)); + new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.WEST, GridBagConstraints.BOTH, JBUI.insetsLeft(5), 0, 0)); panel.add(super.createCustomComponent(presentation), - new GridBagConstraints(1, 0, 1, 1, 1, 1, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); + new GridBagConstraints(1, 0, 1, 1, 1, 1, GridBagConstraints.WEST, GridBagConstraints.BOTH, JBUI.emptyInsets(), 0, 0)); return panel; } @@ -723,4 +723,4 @@ public abstract class HierarchyBrowserBaseEx extends HierarchyBrowserBase implem } } } -} +} \ No newline at end of file diff --git a/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserManager.java b/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserManager.java index 464ff4f53ab8..cdf4a1abea82 100644 --- a/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserManager.java +++ b/platform/lang-impl/src/com/intellij/ide/hierarchy/HierarchyBrowserManager.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.intellij.ide.hierarchy; import com.intellij.icons.AllIcons; @@ -25,6 +24,7 @@ import com.intellij.openapi.wm.ToolWindowAnchor; import com.intellij.openapi.wm.ToolWindowId; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.ui.content.ContentManager; +import org.jetbrains.annotations.NotNull; @State(name = "HierarchyBrowserManager", storages = @Storage(StoragePathMacros.WORKSPACE_FILE)) public final class HierarchyBrowserManager implements PersistentStateComponent { @@ -37,7 +37,6 @@ public final class HierarchyBrowserManager implements PersistentStateComponent