mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
plugins: repositories: sort categories (N/A as last one)
This commit is contained in:
+9
-4
@@ -36,13 +36,14 @@ import java.awt.event.ActionListener;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.TreeSet;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
*/
|
||||
public class AvailablePluginsManagerMain extends PluginManagerMain {
|
||||
public static final String MANAGE_REPOSITORIES = "Manage repositories...";
|
||||
public static final String N_A = "N/A";
|
||||
|
||||
private PluginManagerMain installed;
|
||||
|
||||
@@ -140,7 +141,7 @@ public class AvailablePluginsManagerMain extends PluginManagerMain {
|
||||
super.update(e);
|
||||
String category = ((AvailablePluginsTableModel)pluginsModel).getCategory();
|
||||
if (category == null) {
|
||||
category = "N/A";
|
||||
category = N_A;
|
||||
}
|
||||
e.getPresentation().setText("Category: " + category);
|
||||
}
|
||||
@@ -148,17 +149,21 @@ public class AvailablePluginsManagerMain extends PluginManagerMain {
|
||||
@NotNull
|
||||
@Override
|
||||
protected DefaultActionGroup createPopupActionGroup(JComponent button) {
|
||||
final LinkedHashSet<String> availableCategories = ((AvailablePluginsTableModel)pluginsModel).getAvailableCategories();
|
||||
final TreeSet<String> availableCategories = ((AvailablePluginsTableModel)pluginsModel).getAvailableCategories();
|
||||
final DefaultActionGroup gr = new DefaultActionGroup();
|
||||
gr.add(createFilterByCategoryAction(AvailablePluginsTableModel.ALL));
|
||||
final boolean noCategory = availableCategories.remove(N_A);
|
||||
for (final String availableCategory : availableCategories) {
|
||||
gr.add(createFilterByCategoryAction(availableCategory));
|
||||
}
|
||||
if (noCategory) {
|
||||
gr.add(createFilterByCategoryAction(N_A));
|
||||
}
|
||||
return gr;
|
||||
}
|
||||
|
||||
private AnAction createFilterByCategoryAction(final String availableCategory) {
|
||||
return new AnAction(availableCategory != null ? availableCategory : "<N/A>") {
|
||||
return new AnAction(availableCategory) {
|
||||
@Override
|
||||
public void actionPerformed(AnActionEvent e) {
|
||||
final String filter = myFilter.getFilter().toLowerCase();
|
||||
|
||||
@@ -26,8 +26,8 @@ import com.intellij.util.ui.ColumnInfo;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
/**
|
||||
* Created by IntelliJ IDEA.
|
||||
@@ -40,7 +40,7 @@ public class AvailablePluginsTableModel extends PluginTableModel {
|
||||
|
||||
public static final String ALL = "All";
|
||||
private String myCategory = ALL;
|
||||
private LinkedHashSet<String> myAvailableCategories = new LinkedHashSet<String>();
|
||||
private TreeSet<String> myAvailableCategories = new TreeSet<String>();
|
||||
|
||||
protected static final String STATUS = "Status";
|
||||
|
||||
@@ -89,7 +89,7 @@ public class AvailablePluginsTableModel extends PluginTableModel {
|
||||
return true;
|
||||
}
|
||||
|
||||
public LinkedHashSet<String> getAvailableCategories() {
|
||||
public TreeSet<String> getAvailableCategories() {
|
||||
return myAvailableCategories;
|
||||
}
|
||||
|
||||
@@ -119,7 +119,12 @@ public class AvailablePluginsTableModel extends PluginTableModel {
|
||||
for (IdeaPluginDescriptor descr : list) {
|
||||
updateStatus(descr);
|
||||
view.add(descr);
|
||||
myAvailableCategories.add(descr.getCategory());
|
||||
final String category = descr.getCategory();
|
||||
if (category != null) {
|
||||
myAvailableCategories.add(category);
|
||||
} else {
|
||||
myAvailableCategories.add(AvailablePluginsManagerMain.N_A);
|
||||
}
|
||||
}
|
||||
|
||||
fireTableDataChanged();
|
||||
|
||||
Reference in New Issue
Block a user