plugins: remember sort order (IDEA-80602)
authorAnna Kozlova <anna.kozlova@jetbrains.com>
Mon, 30 Jan 2012 18:09:06 +0000 (22:09 +0400)
committerAnna Kozlova <anna.kozlova@jetbrains.com>
Mon, 30 Jan 2012 18:20:46 +0000 (22:20 +0400)
platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurable.java
platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java
platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerUISettings.java

index ccbb01a82fac1a3db2a135c3831b58aec6a9c204..20528c77b9abcebc421ff3c7f865d23e91b23e61 100644 (file)
@@ -71,7 +71,12 @@ public class PluginManagerConfigurable extends BaseConfigurable implements Searc
     if (myAvailable) {
       final int column = myUISettings.AVAILABLE_SORT_MODE;
       if (column >= 0) {
-        myPluginManagerMain.pluginsModel.setSortKey(new RowSorter.SortKey(column, SortOrder.ASCENDING));
+        for (final SortOrder sortOrder : SortOrder.values()) {
+          if (sortOrder.ordinal() == myUISettings.AVAILABLE_SORT_COLUMN_ORDER) {
+            myPluginManagerMain.pluginsModel.setSortKey(new RowSorter.SortKey(column, sortOrder));
+            break;
+          }
+        }
       }
       myPluginManagerMain.pluginsModel.setSortByStatus(myUISettings.AVAILABLE_SORT_BY_STATUS);
     } else {
@@ -96,6 +101,7 @@ public class PluginManagerConfigurable extends BaseConfigurable implements Searc
           if (sortKeys.size() > 0) {
             final RowSorter.SortKey sortKey = sortKeys.get(0);
             myUISettings.AVAILABLE_SORT_MODE = sortKey.getColumn();
+            myUISettings.AVAILABLE_SORT_COLUMN_ORDER = sortKey.getSortOrder().ordinal();
           }
         }
         myUISettings.AVAILABLE_SORT_BY_STATUS = myPluginManagerMain.pluginsModel.isSortByStatus();
index de9d2b33330aa62a50390fc2a7ec13abef3895c0..69b768d502d41b1f98af68536ad6babdf82299c2 100644 (file)
@@ -56,10 +56,8 @@ import java.awt.*;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
+import java.util.*;
 import java.util.List;
-import java.util.Set;
 
 /**
  * Created by IntelliJ IDEA.
@@ -185,7 +183,8 @@ public abstract class PluginManagerMain implements Disposable {
   protected void modifyPluginsList(ArrayList<IdeaPluginDescriptor> list) {
     IdeaPluginDescriptor[] selected = pluginTable.getSelectedObjects();
     pluginsModel.updatePluginsList(list);
-    pluginsModel.sort();
+    pluginTable.getRowSorter().setSortKeys(Collections.singletonList(pluginsModel.getDefaultSortKey()));
+    //pluginsModel.sort();
     pluginsModel.filter(myFilter.getFilter().toLowerCase());
     if (selected != null) {
       select(selected);
index 0085d5301d7b80476d34578d64fcf689f7f8217d..d2cdf88c8c57e00f7a8f282b92ee3d15de570f35 100644 (file)
@@ -29,6 +29,8 @@ import com.intellij.openapi.util.WriteExternalException;
 import org.jdom.Element;
 import org.jetbrains.annotations.NonNls;
 
+import javax.swing.*;
+
 /**
  * @author yole
  */
@@ -41,7 +43,9 @@ import org.jetbrains.annotations.NonNls;
 )
 public class PluginManagerUISettings implements PersistentStateComponent<Element> {
   private static final Logger LOG = Logger.getInstance("#com.intellij.ide.plugins.PluginManagerUISettings");
-  
+
+  public int AVAILABLE_SORT_COLUMN_ORDER = SortOrder.ASCENDING.ordinal();
+
   public int AVAILABLE_SORT_MODE = 0;
   public boolean AVAILABLE_SORT_BY_STATUS = false;
   public boolean INSTALLED_SORT_BY_STATUS = false;