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