Author: jflesch
Date: 2007-01-27 20:24:50 +0000 (Sat, 27 Jan 2007)
New Revision: 11631
Modified:
trunk/apps/Thaw/src/thaw/i18n/thaw.properties
trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java
Log:
Add an option to sort an index folder by alphabetic order + change all the
'index categories' into 'index folders' in the IndexTree class
Modified: trunk/apps/Thaw/src/thaw/i18n/thaw.properties
===================================================================
--- trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-01-27 19:34:21 UTC
(rev 11630)
+++ trunk/apps/Thaw/src/thaw/i18n/thaw.properties 2007-01-27 20:24:50 UTC
(rev 11631)
@@ -296,3 +296,4 @@
thaw.plugin.index.indexWithNoLink=The index '?' has no link.\nAre you sure
that you want to insert it as it ?
+thaw.plugin.index.sortAlphabetically=Sort by alphabetic order
\ No newline at end of file
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-01-27
19:34:21 UTC (rev 11630)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexFolder.java 2007-01-27
20:24:50 UTC (rev 11631)
@@ -903,6 +903,87 @@
return keys;
}
+
+
+ public void reorder() {
+ int position;
+
+ synchronized(db.dbLock) {
+ try {
+ PreparedStatement selectSt;
+ PreparedStatement updateSt;
+
+ position = 0;
+
+
+ /* We first sort the index folders */
+
+ if (id >= 0) {
+ selectSt =
+
db.getConnection().prepareStatement("SELECT id FROM indexFolders WHERE parent =
? ORDER BY name");
+ } else {
+ selectSt =
+
db.getConnection().prepareStatement("SELECT id FROM indexFolders WHERE parent
IS NULL ORDER BY name");
+ }
+
+ updateSt =
+
db.getConnection().prepareStatement("UPDATE indexFolders SET positionInTree = ?
WHERE id = ?");
+
+
+ if (id >= 0)
+ selectSt.setInt(1, id);
+
+
+ ResultSet set = selectSt.executeQuery();
+
+
+ while(set.next()) {
+ updateSt.setInt(1, position);
+ updateSt.setInt(2, set.getInt("id"));
+ updateSt.execute();
+ position++;
+ }
+
+
+
+ /* next we sort the indexes */
+
+
+
+ if (id >= 0) {
+ selectSt =
+
db.getConnection().prepareStatement("SELECT id FROM indexes WHERE parent = ?
ORDER BY displayName");
+ } else {
+ selectSt =
+
db.getConnection().prepareStatement("SELECT id FROM indexes WHERE parent IS
NULL ORDER BY displayName");
+ }
+
+ updateSt =
+
db.getConnection().prepareStatement("UPDATE indexes SET positionInTree = ?
WHERE id = ?");
+
+
+ if (id >= 0)
+ selectSt.setInt(1, id);
+
+
+ set = selectSt.executeQuery();
+
+
+ while(set.next()) {
+ updateSt.setInt(1, position);
+ updateSt.setInt(2, set.getInt("id"));
+ updateSt.execute();
+ position++;
+ }
+
+
+ } catch(SQLException e) {
+ Logger.error(this, "Error while reordering:
"+e.toString());
+ }
+ }
+ }
+
+
public String toString() {
if (id < 0)
return
thaw.core.I18n.getMessage("thaw.plugin.index.yourIndexes");
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-01-27 19:34:21 UTC (rev 11630)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexManagementHelper.java
2007-01-27 20:24:50 UTC (rev 11631)
@@ -1430,4 +1430,26 @@
}
+
+ public static class IndexFolderReorderer extends BasicIndexAction
implements Runnable {
+ public IndexFolderReorderer(IndexBrowserPanel indexBrowser,
final AbstractButton actionSource) {
+ super(null, indexBrowser, actionSource);
+ }
+
+ public void setTarget(final IndexTreeNode node) {
+ super.setTarget(node);
+ getActionSource().setEnabled(node != null && node
instanceof IndexFolder);
+ }
+
+ public void apply() {
+ if (getTarget() != null && getTarget() instanceof
IndexFolder) {
+ ((IndexFolder)getTarget()).reorder();
+ ((IndexFolder)getTarget()).forceReload();
+
getIndexBrowserPanel().getIndexTree().refresh(getTarget());
+ }
+ else
+ Logger.notice(this, "No target ?!");
+ }
+ }
+
}
Modified: trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-01-27
19:34:21 UTC (rev 11630)
+++ trunk/apps/Thaw/src/thaw/plugins/index/IndexTree.java 2007-01-27
20:24:50 UTC (rev 11631)
@@ -53,8 +53,8 @@
private JTree tree;
private IndexRoot root;
- private JPopupMenu indexCategoryMenu;
- private Vector indexCategoryActions; /*
IndexManagementHelper.MenuAction */
+ private JPopupMenu indexFolderMenu;
+ private Vector indexFolderActions; /* IndexManagementHelper.MenuAction
*/
// downloadIndexes
// createIndex
// addIndex
@@ -139,8 +139,8 @@
JMenuItem item;
- indexCategoryMenu = new
JPopupMenu(I18n.getMessage("thaw.plugin.index.category"));
- indexCategoryActions = new Vector();
+ indexFolderMenu = new
JPopupMenu(I18n.getMessage("thaw.plugin.index.category"));
+ indexFolderActions = new Vector();
indexAndFileMenu = new JPopupMenu();
indexAndFileActions = new Vector();
@@ -149,39 +149,43 @@
linkMenu = new
JMenu(I18n.getMessage("thaw.plugin.index.links"));
- // Category menu
+ // Folder menu
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.downloadIndexes"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexDownloader(queueManager, indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexDownloader(queueManager, indexBrowser, item));
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.markAllAsSeen"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexHasChangedFlagReseter(indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexHasChangedFlagReseter(indexBrowser, item));
+ item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.sortAlphabetically"));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexFolderReorderer(indexBrowser, item));
+
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.addAlreadyExistingIndex"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexReuser(queueManager, indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexReuser(queueManager, indexBrowser, item));
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.addCategory"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexFolderAdder(indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexFolderAdder(indexBrowser, item));
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.createIndex"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexCreator(queueManager, indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexCreator(queueManager, indexBrowser, item));
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.rename"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexRenamer(indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexRenamer(indexBrowser, item));
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.delete"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.IndexDeleter(indexBrowser, item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.IndexDeleter(indexBrowser, item));
item = new
JMenuItem(I18n.getMessage("thaw.plugin.index.copyKeys"));
- indexCategoryMenu.add(item);
- indexCategoryActions.add(new
IndexManagementHelper.PublicKeyCopier(item));
+ indexFolderMenu.add(item);
+ indexFolderActions.add(new
IndexManagementHelper.PublicKeyCopier(item));
// Index menu
@@ -367,7 +371,7 @@
public void updateMenuState(final IndexTreeNode node) {
IndexManagementHelper.IndexAction action;
- for(final Iterator it = indexCategoryActions.iterator();
+ for(final Iterator it = indexFolderActions.iterator();
it.hasNext();) {
action = (IndexManagementHelper.IndexAction)it.next();
action.setTarget(node);
@@ -413,7 +417,7 @@
if(selectedNode instanceof IndexFolder) {
updateMenuState(selectedNode);
- indexCategoryMenu.show(e.getComponent(),
e.getX(), e.getY());
+ indexFolderMenu.show(e.getComponent(),
e.getX(), e.getY());
}
if(selectedNode instanceof Index) {
@@ -485,12 +489,14 @@
public void refresh(IndexTreeNode node) {
forceHasChangedFlagReload = true;
+
if (treeModel != null) {
if (node != null && node.isInTree())
treeModel.reload(node.getTreeNode());
else
treeModel.reload(getRoot().getTreeNode());
}
+
forceHasChangedFlagReload = false;
}