Author: jflesch
Date: 2007-08-08 21:39:12 +0000 (Wed, 08 Aug 2007)
New Revision: 14543

Modified:
   trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties
   trunk/apps/Thaw/src/thaw/i18n/thaw.properties
   trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
   trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java
Log:
Allow to sort a whole folder with the automatic sorting

Modified: trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties     2007-08-08 
21:16:24 UTC (rev 14542)
+++ trunk/apps/Thaw/src/thaw/i18n/source.thaw_fr.properties     2007-08-08 
21:39:12 UTC (rev 14543)
@@ -407,6 +407,7 @@
 thaw.plugin.index.autoSorting=Essayer de trier automatiquement les indexes
 thaw.plugin.index.automaticallySorted=Automatiquement tri?s
 thaw.plugin.index.autoSortAction=Ranger cet index d'apr?s sa cat?gorie
+thaw.plugin.index.autoSortFolderAction=Ranger les indexes d'apr?s leur 
cat?gorie


 # Peer monitor

Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2007-08-08 21:16:24 UTC 
(rev 14542)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties       2007-08-08 21:39:12 UTC 
(rev 14543)
@@ -419,6 +419,7 @@
 thaw.plugin.index.autoSorting=Try to sort automatically the indexes
 thaw.plugin.index.automaticallySorted=Automatically sorted
 thaw.plugin.index.autoSortAction=Sort this index according to its category
+thaw.plugin.index.autoSortFolderAction=Sort the indexes according to their 
categories


 # Peer monitor

Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java   
2007-08-08 21:16:24 UTC (rev 14542)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java   
2007-08-08 21:39:12 UTC (rev 14543)
@@ -714,6 +714,41 @@
        }


+       public static boolean autoSortIndexes(IndexBrowserPanel indexBrowser,
+                                             IndexTreeNode node) {
+               if (node instanceof Index) {
+                       String cat = ((Index)node).getCategory();
+
+                       if (cat != null)
+                               return autoSortIndex(indexBrowser, (Index)node, 
cat);
+                       else
+                               Logger.notice(indexBrowser, "No category ; 
can't sort");
+
+               } else if (node instanceof IndexFolder) {
+
+                       IndexFolder folder = ((IndexFolder)node);
+
+                       /**
+                        * to avoid the collision due to the vector in the 
IndexFolder
+                        */
+                       if 
(I18n.getMessage("thaw.plugin.index.automaticallySorted").equals(folder.toString()))
 {
+                               return false;
+                       }
+
+                       for (java.util.Enumeration children = folder.children();
+                            children.hasMoreElements();) {
+
+                               /* dirty recursivity */
+                               IndexTreeNode subNode = 
(IndexTreeNode)children.nextElement();
+                               autoSortIndexes(indexBrowser, subNode);
+
+                       }
+               }
+
+               return true;
+       }
+
+
        public static boolean autoSortIndex(IndexBrowserPanel indexBrowser,
                                            Index index,
                                            String cat) {
@@ -748,13 +783,19 @@
                        super.setTarget(node);

                        if (getActionSource() != null)
-                               getActionSource().setEnabled((node != null) && 
node instanceof Index);
+                               getActionSource().setEnabled(node != null);
                }

                public void apply() {
-                       autoSortIndex(getIndexBrowserPanel(),
-                                     (Index)getTarget(),
-                                     ((Index)getTarget()).getCategory());
+                       if (getTarget() instanceof Index) {
+                               if (((Index)getTarget()).getCategory() == null) 
{
+                                       Logger.warning(this, "No category => 
can't sort !");
+                                       return;
+                               }
+                       }
+
+                       autoSortIndexes(getIndexBrowserPanel(),
+                                       (IndexTreeNode)getTarget());
                }
        }


Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java       2007-08-08 
21:16:24 UTC (rev 14542)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java       2007-08-08 
21:39:12 UTC (rev 14543)
@@ -188,6 +188,10 @@
                indexFolderMenu.add(item);
                indexFolderActions.add(new 
IndexManagementHelper.IndexHasChangedFlagReseter(indexBrowser, item));

+               item = new 
JMenuItem(I18n.getMessage("thaw.plugin.index.autoSortFolderAction"));
+               indexFolderMenu.add(item);
+               indexFolderActions.add(new 
IndexManagementHelper.IndexSorter(indexBrowser, item));
+
                item = new 
JMenuItem(I18n.getMessage("thaw.plugin.index.sortAlphabetically"));
                indexFolderMenu.add(item);
                indexFolderActions.add(new 
IndexManagementHelper.IndexFolderReorderer(indexBrowser, item));


Reply via email to