mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
separate button for installing JetBrains-provided plugin in plugin manager (IDEA-100233)
This commit is contained in:
+20
-14
@@ -46,26 +46,30 @@ public class AvailablePluginsManagerMain extends PluginManagerMain {
|
||||
public static final String N_A = "N/A";
|
||||
|
||||
private PluginManagerMain installed;
|
||||
private final String myVendorFilter;
|
||||
|
||||
public AvailablePluginsManagerMain(PluginManagerMain installed, PluginManagerUISettings uiSettings) {
|
||||
public AvailablePluginsManagerMain(PluginManagerMain installed, PluginManagerUISettings uiSettings, String vendorFilter) {
|
||||
super(uiSettings);
|
||||
this.installed = installed;
|
||||
myVendorFilter = vendorFilter;
|
||||
init();
|
||||
final JButton manageRepositoriesBtn = new JButton(MANAGE_REPOSITORIES);
|
||||
manageRepositoriesBtn.setMnemonic('m');
|
||||
manageRepositoriesBtn.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (ShowSettingsUtil.getInstance().editConfigurable(myActionsPanel, new PluginHostsConfigurable())) {
|
||||
final ArrayList<String> pluginHosts = UpdateSettings.getInstance().myPluginHosts;
|
||||
if (!pluginHosts.contains(((AvailablePluginsTableModel)pluginsModel).getRepository())) {
|
||||
((AvailablePluginsTableModel)pluginsModel).setRepository(AvailablePluginsTableModel.ALL, myFilter.getFilter().toLowerCase());
|
||||
if (myVendorFilter == null) {
|
||||
manageRepositoriesBtn.setMnemonic('m');
|
||||
manageRepositoriesBtn.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (ShowSettingsUtil.getInstance().editConfigurable(myActionsPanel, new PluginHostsConfigurable())) {
|
||||
final ArrayList<String> pluginHosts = UpdateSettings.getInstance().myPluginHosts;
|
||||
if (!pluginHosts.contains(((AvailablePluginsTableModel)pluginsModel).getRepository())) {
|
||||
((AvailablePluginsTableModel)pluginsModel).setRepository(AvailablePluginsTableModel.ALL, myFilter.getFilter().toLowerCase());
|
||||
}
|
||||
loadAvailablePlugins();
|
||||
}
|
||||
loadAvailablePlugins();
|
||||
}
|
||||
}
|
||||
});
|
||||
myActionsPanel.add(manageRepositoriesBtn, BorderLayout.EAST);
|
||||
});
|
||||
myActionsPanel.add(manageRepositoriesBtn, BorderLayout.EAST);
|
||||
}
|
||||
|
||||
final JButton httpProxySettingsButton = new JButton(IdeBundle.message("button.http.proxy.settings"));
|
||||
httpProxySettingsButton.addActionListener(new ActionListener() {
|
||||
@@ -83,7 +87,9 @@ public class AvailablePluginsManagerMain extends PluginManagerMain {
|
||||
|
||||
@Override
|
||||
protected JScrollPane createTable() {
|
||||
pluginsModel = new AvailablePluginsTableModel();
|
||||
AvailablePluginsTableModel model = new AvailablePluginsTableModel();
|
||||
model.setVendor(myVendorFilter);
|
||||
pluginsModel = model;
|
||||
pluginTable = new PluginTable(pluginsModel);
|
||||
pluginTable.getTableHeader().setReorderingAllowed(false);
|
||||
pluginTable.setColumnWidth(PluginManagerColumnInfo.COLUMN_DOWNLOADS, 70);
|
||||
|
||||
@@ -46,6 +46,7 @@ public class AvailablePluginsTableModel extends PluginTableModel {
|
||||
|
||||
public static final String JETBRAINS_REPO = "JetBrains";
|
||||
private String myRepository = ALL;
|
||||
private String myVendor = null;
|
||||
|
||||
public AvailablePluginsTableModel() {
|
||||
super.columns = new ColumnInfo[] {
|
||||
@@ -73,6 +74,11 @@ public class AvailablePluginsTableModel extends PluginTableModel {
|
||||
filter(filter);
|
||||
}
|
||||
|
||||
public void setVendor(String vendor) {
|
||||
myVendor = vendor;
|
||||
filter("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPluginDescriptorAccepted(IdeaPluginDescriptor descriptor) {
|
||||
final String category = descriptor.getCategory();
|
||||
@@ -80,6 +86,10 @@ public class AvailablePluginsTableModel extends PluginTableModel {
|
||||
if (!ALL.equals(myCategory) && !category.equals(myCategory)) return false;
|
||||
}
|
||||
|
||||
if (myVendor != null && !descriptor.getVendor().toLowerCase().contains(myVendor.toLowerCase())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final String repositoryName = ((PluginNode)descriptor).getRepositoryName();
|
||||
if (repositoryName != null) {
|
||||
if (!ALL.equals(myRepository) && !repositoryName.equals(myRepository)) return false;
|
||||
|
||||
+35
-22
@@ -57,27 +57,14 @@ public class InstalledPluginsManagerMain extends PluginManagerMain {
|
||||
super(uiSettings);
|
||||
init();
|
||||
myActionsPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
|
||||
final JButton jbButton = new JButton("Install JetBrains plugin...");
|
||||
jbButton.setMnemonic('j');
|
||||
jbButton.addActionListener(new BrowseRepoListener("JetBrains"));
|
||||
myActionsPanel.add(jbButton);
|
||||
|
||||
final JButton button = new JButton("Browse repositories...");
|
||||
button.setMnemonic('b');
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
final PluginManagerConfigurable configurable = createAvailableConfigurable();
|
||||
final SingleConfigurableEditor configurableEditor =
|
||||
new SingleConfigurableEditor(myActionsPanel, configurable, ShowSettingsUtilImpl.createDimensionKey(configurable), false) {
|
||||
{
|
||||
setOKButtonText(CommonBundle.message("close.action.name"));
|
||||
setOKButtonMnemonic('C');
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Action[] createActions() {
|
||||
return new Action[]{getOKAction()};
|
||||
}
|
||||
};
|
||||
configurableEditor.show();
|
||||
}
|
||||
});
|
||||
button.addActionListener(new BrowseRepoListener(null));
|
||||
myActionsPanel.add(button);
|
||||
|
||||
final JButton installPluginFromFileSystem = new JButton("Install plugin from disk...");
|
||||
@@ -202,16 +189,16 @@ public class InstalledPluginsManagerMain extends PluginManagerMain {
|
||||
protected void propagateUpdates(ArrayList<IdeaPluginDescriptor> list) {
|
||||
}
|
||||
|
||||
private PluginManagerConfigurable createAvailableConfigurable() {
|
||||
private PluginManagerConfigurable createAvailableConfigurable(final String vendorFilter) {
|
||||
return new PluginManagerConfigurable(PluginManagerUISettings.getInstance(), true) {
|
||||
@Override
|
||||
protected PluginManagerMain createPanel() {
|
||||
return new AvailablePluginsManagerMain(InstalledPluginsManagerMain.this, myUISettings);
|
||||
return new AvailablePluginsManagerMain(InstalledPluginsManagerMain.this, myUISettings, vendorFilter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDisplayName() {
|
||||
return "Browse Repositories";
|
||||
return vendorFilter != null ? "Browse " + vendorFilter + " Plugins " : "Browse Repositories";
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -381,4 +368,30 @@ public class InstalledPluginsManagerMain extends PluginManagerMain {
|
||||
}
|
||||
}
|
||||
|
||||
private class BrowseRepoListener implements ActionListener {
|
||||
|
||||
private final String myVendor;
|
||||
|
||||
public BrowseRepoListener(String vendor) {
|
||||
myVendor = vendor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
final PluginManagerConfigurable configurable = createAvailableConfigurable(myVendor);
|
||||
final SingleConfigurableEditor configurableEditor =
|
||||
new SingleConfigurableEditor(myActionsPanel, configurable, ShowSettingsUtilImpl.createDimensionKey(configurable), false) {
|
||||
{
|
||||
setOKButtonText(CommonBundle.message("close.action.name"));
|
||||
setOKButtonMnemonic('C');
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Action[] createActions() {
|
||||
return new Action[]{getOKAction()};
|
||||
}
|
||||
};
|
||||
configurableEditor.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user