Author: fmancinelli
Date: 2007-11-01 23:21:06 +0100 (Thu, 01 Nov 2007)
New Revision: 5602
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/plugin.xml
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/XWikiEclipseEvent.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditor.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorContributor.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiCachedConnection.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPlainConnection.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiPagePreviewView.java
Log:
XECLIPSE-30
* Added preview view synchronization with editors. Now when editing a page, the
preview view shows the page being edited and updates accordingly when the page
is saved.
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/plugin.xml
===================================================================
--- xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/plugin.xml
2007-11-01 21:42:21 UTC (rev 5601)
+++ xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/plugin.xml
2007-11-01 22:21:06 UTC (rev 5602)
@@ -14,7 +14,7 @@
</editor>
<editor
class="org.xwiki.xeclipse.editors.XWikiPageEditor"
-
contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor"
+
contributorClass="org.xwiki.xeclipse.editors.XWikiPageEditorContributor"
icon="icons/xwiki.png"
id="org.xwiki.xeclipse.editors.XWikiPage"
name="XWiki page editor">
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/XWikiEclipseEvent.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/XWikiEclipseEvent.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/XWikiEclipseEvent.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -2,12 +2,14 @@
public enum XWikiEclipseEvent
{
- /* Sender: XWikiConnectionManager, Data: IXWikiConnection */
+ /* Data: IXWikiConnection */
CONNECTION_ADDED,
- /* Sender: XWikiConnectionManager, Data: IXWikiConnection */
+ /* Data: IXWikiConnection */
CONNECTION_REMOVED,
- /* Sender: IXWikiConnection, Data: null */
+ /* Data: IXWikiConnection */
CONNECTION_ESTABLISHED,
- /* Sender: IXWikiConnection, Data: null */
- CONNECTION_CLOSED
+ /* Data: IXWikiConnection */
+ CONNECTION_CLOSED,
+ /* Data: IXWikiPage */
+ PAGE_UPDATED
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditor.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditor.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditor.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -16,6 +16,8 @@
import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.xwiki.plugins.eclipse.XWikiEclipsePlugin;
import org.xwiki.xeclipse.XWikiEclipseConstants;
+import org.xwiki.xeclipse.XWikiEclipseEvent;
+import org.xwiki.xeclipse.XWikiEclipseNotificationCenter;
import org.xwiki.xeclipse.model.IXWikiConnection;
import org.xwiki.xeclipse.model.IXWikiPage;
@@ -110,9 +112,10 @@
}
else {
stackLayout.topControl = notConnectedLabelComposite;
- previewAreaComposite.layout();
-
+ previewAreaComposite.layout();
}
+
+ XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.PAGE_UPDATED, page);
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorContributor.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorContributor.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorContributor.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -7,6 +7,8 @@
import org.eclipse.ui.texteditor.BasicTextEditorActionContributor;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.texteditor.ITextEditorActionConstants;
+import org.xwiki.xeclipse.XWikiEclipseEvent;
+import org.xwiki.xeclipse.XWikiEclipseNotificationCenter;
public class XWikiPageEditorContributor extends
BasicTextEditorActionContributor
{
@@ -19,7 +21,7 @@
public void setActiveEditor(IEditorPart part)
{
super.setActiveEditor(part);
-
+
if (!(part instanceof ITextEditor)) {
return;
}
@@ -44,7 +46,17 @@
action = getAction(editor, ITextEditorActionConstants.PASTE);
actionBars.setGlobalActionHandler(action.getActionDefinitionId(),
action);
- actionBars.updateActionBars();
+ actionBars.updateActionBars();
+
+ /*
+ * Send a notification that the edited page has been updated.
+ */
+ if(part instanceof XWikiPageEditor) {
+ XWikiPageEditor xwikiPageEditor = (XWikiPageEditor) part;
+ XWikiPageEditorInput xwikiPageEditorInput = (XWikiPageEditorInput)
xwikiPageEditor.getEditorInput();
+
XWikiEclipseNotificationCenter.getDefault().fireEvent(xwikiPageEditor,
XWikiEclipseEvent.PAGE_UPDATED, xwikiPageEditorInput.getXWikiPage());
+ }
+
}
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiCachedConnection.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiCachedConnection.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiCachedConnection.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -216,7 +216,7 @@
throw new XWikiConnectionException(e);
}
- XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_ESTABLISHED, null);
+ XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_ESTABLISHED, this);
}
/**
@@ -239,7 +239,7 @@
e.printStackTrace();
}
- XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_CLOSED, null);
+ XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_CLOSED, this);
}
/**
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPlainConnection.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPlainConnection.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPlainConnection.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -63,7 +63,7 @@
throw new XWikiConnectionException(e);
}
- XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_ESTABLISHED, null);
+ XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_ESTABLISHED, this);
}
/**
@@ -86,7 +86,7 @@
e.printStackTrace();
}
- XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_CLOSED, null);
+ XWikiEclipseNotificationCenter.getDefault().fireEvent(this,
XWikiEclipseEvent.CONNECTION_CLOSED, this);
}
/**
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiExplorerView.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -284,7 +284,7 @@
break;
case CONNECTION_ESTABLISHED:
case CONNECTION_CLOSED:
-
if(XWikiConnectionManager.getDefault().getConnections().contains(sender)) {
+
if(XWikiConnectionManager.getDefault().getConnections().contains(data)) {
treeViewer.refresh(sender);
}
break;
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiPagePreviewView.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiPagePreviewView.java
2007-11-01 21:42:21 UTC (rev 5601)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/views/XWikiPagePreviewView.java
2007-11-01 22:21:06 UTC (rev 5602)
@@ -12,10 +12,14 @@
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.ViewPart;
+import org.xwiki.xeclipse.IXWikiEclipseEventListener;
+import org.xwiki.xeclipse.XWikiEclipseEvent;
+import org.xwiki.xeclipse.XWikiEclipseNotificationCenter;
+import org.xwiki.xeclipse.editors.XWikiPageEditor;
import org.xwiki.xeclipse.model.IXWikiPage;
import org.xwiki.xeclipse.utils.XWikiEclipseUtil;
-public class XWikiPagePreviewView extends ViewPart implements
ISelectionListener
+public class XWikiPagePreviewView extends ViewPart implements
ISelectionListener, IXWikiEclipseEventListener
{
public static final String ID =
"org.xwiki.xeclipse.views.XWikiPagePreview";
private Composite composite;
@@ -56,7 +60,8 @@
stackLayout.topControl = noPageSelectedComposite;
composite.layout();
-
getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(this);
+
getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(this);
+
XWikiEclipseNotificationCenter.getDefault().addListener(XWikiEclipseEvent.PAGE_UPDATED,
this);
}
@Override
@@ -70,31 +75,50 @@
public void dispose()
{
getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(this);
+
XWikiEclipseNotificationCenter.getDefault().removeListener(XWikiEclipseEvent.PAGE_UPDATED,
this);
super.dispose();
}
public void selectionChanged(IWorkbenchPart part, ISelection selection)
{
+ if(part instanceof XWikiPageEditor) {
+ return;
+ }
+
Object selectedObject =
XWikiEclipseUtil.getSingleSelectedObjectInStructuredSelection(selection);
if(selectedObject instanceof IXWikiPage) {
IXWikiPage xwikiPage = (IXWikiPage) selectedObject;
-
- if(xwikiPage.getConnection().isConnected()) {
- browser.setUrl(xwikiPage.getUrl());
- stackLayout.topControl = browser;
- composite.layout();
- }
- else {
- stackLayout.topControl = notConnectedComposite;
- composite.layout();
- }
+ showPreview(xwikiPage);
}
- else {
+ else {
stackLayout.topControl = noPageSelectedComposite;
composite.layout();
}
}
+ public void handleEvent(Object sender, XWikiEclipseEvent event, Object
data)
+ {
+ switch(event) {
+ case PAGE_UPDATED:
+ IXWikiPage xwikiPage = (IXWikiPage) data;
+ showPreview(xwikiPage);
+ break;
+ }
+
+ }
+
+ private void showPreview(IXWikiPage xwikiPage) {
+ if(xwikiPage.getConnection().isConnected()) {
+ browser.setUrl(xwikiPage.getUrl());
+ stackLayout.topControl = browser;
+ composite.layout();
+ }
+ else {
+ stackLayout.topControl = notConnectedComposite;
+ composite.layout();
+ }
+ }
+
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications