Author: fmancinelli
Date: 2008-02-13 21:03:34 +0100 (Wed, 13 Feb 2008)
New Revision: 7704
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/editors/XWikiPageDocumentProvider.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/viewers/XWikiPagePreviewViewer.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/views/XWikiPagePreviewView.java
Log:
XECLIPSE-77
XECLIPSE-78
Added functionalities to the preview view (URL bar + open in external browser)
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/editors/XWikiPageDocumentProvider.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/editors/XWikiPageDocumentProvider.java
2008-02-13 20:00:17 UTC (rev 7703)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/editors/XWikiPageDocumentProvider.java
2008-02-13 20:03:34 UTC (rev 7704)
@@ -157,7 +157,11 @@
conflictData.getLocalContent(),
conflictData.getRemoteContent()));
-
MessageDialog.openWarning(Display.getDefault().getActiveShell(), "Warning",
"Content has been merged, please review changes and save them to make them
effective");
+ MessageDialog
+ .openWarning(
+
Display.getDefault().getActiveShell(),
+
"Warning",
+
"Content has been merged, please review changes and save them to make them
effective");
break;
default:
xwikiPage.setContent(conflictData.getLocalContent());
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/viewers/XWikiPagePreviewViewer.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/viewers/XWikiPagePreviewViewer.java
2008-02-13 20:00:17 UTC (rev 7703)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/viewers/XWikiPagePreviewViewer.java
2008-02-13 20:03:34 UTC (rev 7704)
@@ -27,6 +27,7 @@
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.xwiki.eclipse.model.IXWikiPage;
@@ -41,6 +42,8 @@
private Composite notConnectedComposite;
private Composite noPageSelectedComposite;
+
+ private IXWikiPage xwikiPage;
public XWikiPagePreviewViewer(Composite parent)
{
@@ -79,6 +82,8 @@
public void showPreview(IXWikiPage xwikiPage)
{
+ this.xwikiPage = xwikiPage;
+
if (xwikiPage == null) {
stackLayout.topControl = noPageSelectedComposite;
composite.layout();
@@ -93,4 +98,25 @@
}
}
}
+
+ public void showURL(String url) {
+ browser.setUrl(url);
+ stackLayout.topControl = browser;
+ composite.layout();
+ }
+
+ public IXWikiPage getXwikiPage()
+ {
+ return xwikiPage;
+ }
+
+ public Browser getBrowser()
+ {
+ return browser;
+ }
+
+ public Control getControl() {
+ return composite;
+ }
+
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/views/XWikiPagePreviewView.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/views/XWikiPagePreviewView.java
2008-02-13 20:00:17 UTC (rev 7703)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/eclipse/views/XWikiPagePreviewView.java
2008-02-13 20:03:34 UTC (rev 7704)
@@ -20,10 +20,32 @@
*/
package org.xwiki.eclipse.views;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.browser.IWebBrowser;
+import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
import org.eclipse.ui.part.ViewPart;
import org.xwiki.eclipse.IXWikiEclipseEventListener;
import org.xwiki.eclipse.XWikiEclipseEvent;
@@ -32,64 +54,138 @@
import org.xwiki.eclipse.model.IXWikiPage;
import org.xwiki.eclipse.utils.XWikiEclipseUtil;
import org.xwiki.eclipse.viewers.XWikiPagePreviewViewer;
+import org.xwiki.plugins.eclipse.views.navigator.XWikiNavigator;
-public class XWikiPagePreviewView extends ViewPart implements
ISelectionListener,
- IXWikiEclipseEventListener
+public class XWikiPagePreviewView extends ViewPart implements
+ ISelectionListener, IXWikiEclipseEventListener
{
- public static final String ID = "org.xwiki.eclipse.views.XWikiPagePreview";
+ public static final String ID =
"org.xwiki.eclipse.views.XWikiPagePreview";
+ private Text url;
- private XWikiPagePreviewViewer previewViewer;
+ private XWikiPagePreviewViewer previewViewer;
- @Override
- public void createPartControl(Composite parent)
- {
- previewViewer = new XWikiPagePreviewViewer(parent);
+ @Override
+ public void createPartControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(composite);
-
getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(this);
-
XWikiEclipseNotificationCenter.getDefault().addListener(XWikiEclipseEvent.PAGE_UPDATED,
- this);
- }
+ Composite bar = new Composite(composite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().numColumns(2).applyTo(bar);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ false).applyTo(bar);
- @Override
- public void setFocus()
- {
- // TODO Auto-generated method stub
+ url = new Text(bar, SWT.BORDER);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(url);
+ url.addSelectionListener(new SelectionListener() {
- }
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ previewViewer.showURL(url.getText());
+
+ }
- @Override
- public void dispose()
- {
-
getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(this);
- XWikiEclipseNotificationCenter.getDefault().removeListener(
- XWikiEclipseEvent.PAGE_UPDATED, this);
- super.dispose();
- }
+ public void widgetSelected(SelectionEvent e)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ });
+
+ Button openInExternalBrowser = new Button(bar, SWT.PUSH);
+ openInExternalBrowser.setText("Open external browser");
+ openInExternalBrowser.addSelectionListener(new
SelectionListener()
+ {
- public void selectionChanged(IWorkbenchPart part, ISelection selection)
- {
- if (part instanceof XWikiPageEditor) {
- return;
- }
+ public void widgetDefaultSelected(SelectionEvent e)
+ {
+ // TODO Auto-generated method stub
- Object selectedObject =
-
XWikiEclipseUtil.getSingleSelectedObjectInStructuredSelection(selection);
- if (selectedObject instanceof IXWikiPage) {
- IXWikiPage xwikiPage = (IXWikiPage) selectedObject;
- previewViewer.showPreview(xwikiPage);
- } else {
- previewViewer.showPreview(null);
- }
- }
+ }
- public void handleEvent(Object sender, XWikiEclipseEvent event, Object
data)
- {
- switch (event) {
- case PAGE_UPDATED:
- IXWikiPage xwikiPage = (IXWikiPage) data;
- previewViewer.showPreview(xwikiPage);
- break;
- }
+ public void widgetSelected(SelectionEvent e)
+ {
+ IWorkbenchBrowserSupport browserSupport =
PlatformUI
+
.getWorkbench().getBrowserSupport();
- }
+ IWebBrowser browser;
+ try
+ {
+ browser =
browserSupport.createBrowser("xeclipse");
+ System.out.format("Opening browser on:
%s\n", url.getText());
+ browser.openURL(new URL(url.getText()));
+ } catch (Exception e1)
+ {
+
MessageDialog.openWarning(Display.getDefault()
+ .getActiveShell(),
"Warning", String.format(
+ "Unable to open
external browser\n%s", e1));
+ e1.printStackTrace();
+ }
+ }
+
+ });
+
+ previewViewer = new XWikiPagePreviewViewer(composite);
+ GridDataFactory.fillDefaults().align(SWT.FILL,
SWT.FILL).grab(true,
+ true).applyTo(previewViewer.getControl());
+
+ getSite().getWorkbenchWindow().getSelectionService()
+ .addPostSelectionListener(this);
+ XWikiEclipseNotificationCenter.getDefault().addListener(
+ XWikiEclipseEvent.PAGE_UPDATED, this);
+ }
+
+ @Override
+ public void setFocus()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ 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;
+ previewViewer.showPreview(xwikiPage);
+ url.setText(xwikiPage.getUrl());
+ } else
+ {
+ previewViewer.showPreview(null);
+ url.setText("");
+ }
+ }
+
+ public void handleEvent(Object sender, XWikiEclipseEvent event, Object
data)
+ {
+ switch (event)
+ {
+ case PAGE_UPDATED:
+ IXWikiPage xwikiPage = (IXWikiPage) data;
+ previewViewer.showPreview(xwikiPage);
+ url.setText(xwikiPage.getUrl());
+
+ break;
+ }
+
+ }
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications