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

Reply via email to