Author: fmancinelli
Date: 2007-11-30 16:18:06 +0100 (Fri, 30 Nov 2007)
New Revision: 6197

Modified:
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/XWikiEclipsePageIndexer.java
   
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/OpenPageDialog.java
Log:
* Fixed a bug in open page dialog when presenting "known" pages.
* Correctly closing the working connection for page indexing.

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/XWikiEclipsePageIndexer.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/XWikiEclipsePageIndexer.java
 2007-11-30 15:15:40 UTC (rev 6196)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/XWikiEclipsePageIndexer.java
 2007-11-30 15:18:06 UTC (rev 6197)
@@ -83,7 +83,10 @@
                         pageIndex.addPage(page);
                     }
                 }
-
+                
+                workingConnection.disconnect();
+                workingConnection.dispose();
+                workingConnection = null;
             } catch (Exception e) {
                 e.printStackTrace();
                 return new Status(IStatus.ERROR, XWikiEclipsePlugin.PLUGIN_ID, 
String.format(

Modified: 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/OpenPageDialog.java
===================================================================
--- 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/OpenPageDialog.java
  2007-11-30 15:15:40 UTC (rev 6196)
+++ 
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/dialogs/OpenPageDialog.java
  2007-11-30 15:18:06 UTC (rev 6197)
@@ -21,6 +21,7 @@
 package org.xwiki.eclipse.dialogs;
 
 import java.util.Comparator;
+import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -37,7 +38,9 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
 import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.xwiki.eclipse.XWikiConnectionManager;
 import org.xwiki.eclipse.XWikiEclipsePageIndex;
+import org.xwiki.eclipse.model.IXWikiConnection;
 import org.xwiki.eclipse.model.IXWikiPage;
 import org.xwiki.plugins.eclipse.XWikiEclipsePlugin;
 
@@ -140,7 +143,7 @@
     {
         super(shell);
         setTitle("Open page");
-        setListLabelProvider(new OpenPageLabelProvider(new 
WorkbenchLabelProvider()));        
+        setListLabelProvider(new OpenPageLabelProvider(new 
WorkbenchLabelProvider()));
         setListSelectionLabelDecorator(new SelectionLabelDecorator());
         setDetailsLabelProvider(new WorkbenchLabelProvider());
     }
@@ -182,9 +185,29 @@
     {
         progressMonitor.beginTask("Searching...", IProgressMonitor.UNKNOWN);
         for (IXWikiPage page : XWikiEclipsePageIndex.getDefault().getPages()) {
-            if (page.isCached() || page.getConnection().isConnected()) {
-                contentProvider.add(page, itemsFilter);
+
+            List<IXWikiConnection> actualConnections =
+                XWikiConnectionManager.getDefault().getConnections();
+
+            /*
+             * Pages in the index have a different connection pointer with 
respect to pages shown in
+             * the explorer. This is because we use a "working" connection to 
harvest page
+             * information for the index. When presenting pages in the 
open-page list we need to
+             * refer to the actual connection they belong to in order to check 
the connection state.
+             */
+            IXWikiConnection actualConnection = null;
+            for (IXWikiConnection connection : actualConnections) {
+                if (connection.equals(page.getConnection())) {
+                    actualConnection = connection;
+                    break;
+                }
             }
+
+            if (actualConnection != null) {
+                if (page.isCached() || actualConnection.isConnected()) {
+                    contentProvider.add(page, itemsFilter);
+                }
+            }
         }
 
         progressMonitor.done();
@@ -213,7 +236,7 @@
             {
                 IXWikiPage page1 = (IXWikiPage) o1;
                 IXWikiPage page2 = (IXWikiPage) o2;
-                
+
                 return page1.getTitle().compareTo(page2.getTitle());
             }
         };

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to