From 8c630e99e7aad62d577c025c8cae79ae2b5674c8 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 13 Jan 2014 11:56:00 +0100 Subject: [PATCH] debug: select browser instead of debug engine --- .../ide/browsers/BrowserSelector.java | 22 ++++++++++--------- .../ide/browsers/WebBrowserManager.java | 2 +- xml/impl/xml.iml | 1 + 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java b/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java index 209960eb4706..4abbaae4baa8 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowserSelector.java @@ -18,10 +18,10 @@ package com.intellij.ide.browsers; import com.intellij.openapi.options.ShowSettingsUtil; import com.intellij.openapi.ui.ComboBox; import com.intellij.openapi.util.IconLoader; -import com.intellij.ui.CollectionComboBoxModel; import com.intellij.ui.ComboboxWithBrowseButton; import com.intellij.ui.ListCellRendererWrapper; import com.intellij.util.PlatformIcons; +import org.jdesktop.swingx.combobox.ListComboBoxModel; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -34,23 +34,27 @@ public class BrowserSelector { private final ComboboxWithBrowseButton myBrowserComboWithBrowse; public BrowserSelector(final boolean allowDefaultBrowser) { - myBrowserComboWithBrowse = new ComboboxWithBrowseButton(new ComboBox()); + myBrowserComboWithBrowse = new ComboboxWithBrowseButton(new ComboBox(createBrowsersComboModel(allowDefaultBrowser))); myBrowserComboWithBrowse.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { + WebBrowserManager browserManager = WebBrowserManager.getInstance(); + long modificationCount = browserManager.getModificationCount(); ShowSettingsUtil.getInstance().editConfigurable(myBrowserComboWithBrowse, new BrowserSettings()); WebBrowser selectedItem = getSelected(); - initBrowsersComboModel(allowDefaultBrowser); + if (modificationCount != browserManager.getModificationCount()) { + //noinspection unchecked + myBrowserComboWithBrowse.getComboBox().setModel(createBrowsersComboModel(allowDefaultBrowser)); + } if (selectedItem != null) { setSelected(selectedItem); } } }); - JComboBox comboBox = myBrowserComboWithBrowse.getComboBox(); //noinspection unchecked - comboBox.setRenderer(new ListCellRendererWrapper() { + myBrowserComboWithBrowse.getComboBox().setRenderer(new ListCellRendererWrapper() { @Override public void customize(JList list, WebBrowser value, @@ -62,22 +66,20 @@ public class BrowserSelector { setText(value != null ? value.getName() : "Default"); } }); - - initBrowsersComboModel(allowDefaultBrowser); } public JComponent getMainComponent() { return myBrowserComboWithBrowse; } - private void initBrowsersComboModel(boolean allowDefaultBrowser) { + @SuppressWarnings("Since15") + private static ListComboBoxModel createBrowsersComboModel(boolean allowDefaultBrowser) { List activeBrowsers = new ArrayList(); if (allowDefaultBrowser) { activeBrowsers.add(null); } activeBrowsers.addAll(WebBrowserManager.getInstance().getActiveBrowsers()); - //noinspection unchecked - myBrowserComboWithBrowse.getComboBox().setModel(new CollectionComboBoxModel(activeBrowsers)); + return new ListComboBoxModel(activeBrowsers); } @SuppressWarnings({"deprecation", "UnusedDeclaration"}) diff --git a/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java b/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java index 86673759673d..45990acaf5db 100644 --- a/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java +++ b/xml/impl/src/com/intellij/ide/browsers/WebBrowserManager.java @@ -236,7 +236,7 @@ public class WebBrowserManager implements PersistentStateComponent, Mod } catch (IllegalArgumentException ignored) { for (ConfigurableWebBrowser browser : browsers) { - if (browser.getFamily().name().equals(idOrName) || browser.getFamily().getName().equals(idOrName)) { + if (browser.getFamily().name().equalsIgnoreCase(idOrName) || browser.getFamily().getName().equalsIgnoreCase(idOrName)) { return browser; } } diff --git a/xml/impl/xml.iml b/xml/impl/xml.iml index 093ca25e110c..20135bdba460 100644 --- a/xml/impl/xml.iml +++ b/xml/impl/xml.iml @@ -19,6 +19,7 @@ +