Author: fmancinelli
Date: 2007-11-01 00:30:04 +0100 (Thu, 01 Nov 2007)
New Revision: 5589
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/META-INF/MANIFEST.MF
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageDocumentProvider.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/XWikiPageEditorInput.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/IXWikiPage.java
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPage.java
Log:
XECLIPSE-30
* Added editors and preview
* Minor refactorings and changes to the UI
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/META-INF/MANIFEST.MF
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/META-INF/MANIFEST.MF
2007-10-31 18:15:37 UTC (rev 5588)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/META-INF/MANIFEST.MF
2007-10-31 23:30:04 UTC (rev 5589)
@@ -17,6 +17,7 @@
org.eclipse.ui.editors,
org.eclipse.ui.workbench.texteditor,
org.eclipse.core.expressions,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.ui.forms
Eclipse-LazyStart: true
Export-Package: org.xwiki.plugins.eclipse.model
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageDocumentProvider.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageDocumentProvider.java
2007-10-31 18:15:37 UTC (rev 5588)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageDocumentProvider.java
2007-10-31 23:30:04 UTC (rev 5589)
@@ -18,14 +18,20 @@
public class XWikiPageDocumentProvider extends StorageDocumentProvider
{
+ private XWikiPageEditor xwikiPageEditor;
+ public XWikiPageDocumentProvider(XWikiPageEditor xwikiPageEditor)
+ {
+ this.xwikiPageEditor = xwikiPageEditor;
+ }
+
@Override
protected IDocument createDocument(Object element) throws CoreException
{
IDocument document = new Document();
if (element instanceof XWikiPageEditorInput) {
XWikiPageEditorInput input = (XWikiPageEditorInput) element;
- document.set(input.getXWikiPage().getContent());
+ document.set(input.getXWikiPage().getContent());
}
return document;
@@ -54,6 +60,8 @@
try {
xwikiPage.save();
+ document.set(input.getXWikiPage().getContent());
+ xwikiPageEditor.updateEditor(input.getXWikiPage());
} catch (XWikiConnectionException e) {
throw new CoreException(new Status(IStatus.ERROR,
XWikiEclipsePlugin.PLUGIN_ID, "Unable to save", e));
}
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-10-31 18:15:37 UTC (rev 5588)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditor.java
2007-10-31 23:30:04 UTC (rev 5589)
@@ -1,17 +1,94 @@
package org.xwiki.xeclipse.editors;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.texteditor.AbstractTextEditor;
+import org.xwiki.xeclipse.model.IXWikiConnection;
+import org.xwiki.xeclipse.model.IXWikiPage;
public class XWikiPageEditor extends AbstractTextEditor
{
public static final String ID = "org.xwiki.xeclipse.editors.XWikiPage";
+ private Form form;
+ private StackLayout stackLayout;
+ private Composite previewAreaComposite;
+ private Composite notConnectedLabelComposite;
+ private Browser browser;
public XWikiPageEditor()
{
super();
- setDocumentProvider(new XWikiPageDocumentProvider());
+ setDocumentProvider(new XWikiPageDocumentProvider(this));
setSourceViewerConfiguration(new SourceViewerConfiguration());
}
+
+ @Override
+ public void createPartControl(Composite parent)
+ {
+ IXWikiPage xwikiPage =
((XWikiPageEditorInput)getEditorInput()).getXWikiPage();
+
+ FormToolkit toolkit = new FormToolkit(parent.getDisplay());
+ form = toolkit.createForm(parent);
+ toolkit.decorateFormHeading(form);
+ GridLayoutFactory.fillDefaults().applyTo(form.getBody());
+
+ SashForm sashForm = new SashForm(form.getBody(), SWT.VERTICAL |
SWT.BORDER);
+ toolkit.adapt(sashForm);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true,
true).applyTo(sashForm);
+
+ super.createPartControl(sashForm);
+
+ previewAreaComposite = toolkit.createComposite(sashForm, SWT.NONE);
+ stackLayout = new StackLayout();
+ previewAreaComposite.setLayout(stackLayout);
+
+
+ notConnectedLabelComposite =
toolkit.createComposite(previewAreaComposite, SWT.NONE);
+ GridLayoutFactory.fillDefaults().applyTo(notConnectedLabelComposite);
+ Label label = toolkit.createLabel(notConnectedLabelComposite, "No
preview available if not connected.");
+ GridDataFactory.fillDefaults().align(SWT.CENTER,
SWT.CENTER).grab(true, true).applyTo(label);
+ label.setFont(JFaceResources.getHeaderFont());
+
label.setForeground(parent.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
+
+ browser = new Browser(previewAreaComposite, SWT.NONE);
+
+ sashForm.setWeights(new int[] {50, 50});
+
+ updateEditor(xwikiPage);
+ }
+
+ public void updateEditor(IXWikiPage page) {
+ String id = page.getId();
+ IXWikiConnection connection = page.getConnection();
+ String userName = connection.getUserName();
+ String serverUrl = connection.getServerUrl();
+ boolean connected = connection.isConnected();
+ int version = page.getVersion();
+
+ form.setText(String.format("%s version %d [%s]", id, version,
connected ? "online" : "cached", id));
+ form.setMessage(String.format("[EMAIL PROTECTED]", userName,
serverUrl));
+
+ if(connected) {
+ stackLayout.topControl = browser;
+ browser.setUrl(page.getUrl());
+ previewAreaComposite.layout();
+ }
+ else {
+ stackLayout.topControl = notConnectedLabelComposite;
+ previewAreaComposite.layout();
+
+ }
+ }
+
+
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorInput.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorInput.java
2007-10-31 18:15:37 UTC (rev 5588)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/editors/XWikiPageEditorInput.java
2007-10-31 23:30:04 UTC (rev 5589)
@@ -25,7 +25,7 @@
public String getName()
{
- return xwikiPage.getTitle();
+ return xwikiPage.getId();
}
public IPersistableElement getPersistable()
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/IXWikiPage.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/IXWikiPage.java
2007-10-31 18:15:37 UTC (rev 5588)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/IXWikiPage.java
2007-10-31 23:30:04 UTC (rev 5589)
@@ -60,4 +60,9 @@
* @throws XWikiConnectionException
*/
public void save() throws XWikiConnectionException;
+
+ /**
+ * @return The connection where this page has been fetched from.
+ */
+ public IXWikiConnection getConnection();
}
Modified:
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPage.java
===================================================================
---
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPage.java
2007-10-31 18:15:37 UTC (rev 5588)
+++
xwiki-extensions/xwiki-eclipse/trunk/plugins/org.xwiki.eclipse/src/main/java/org/xwiki/xeclipse/model/impl/XWikiPage.java
2007-10-31 23:30:04 UTC (rev 5589)
@@ -4,6 +4,7 @@
import java.util.Map;
import org.codehaus.swizzle.confluence.Page;
+import org.xwiki.xeclipse.model.IXWikiConnection;
import org.xwiki.xeclipse.model.IXWikiPage;
import org.xwiki.xeclipse.model.XWikiConnectionException;
@@ -195,7 +196,11 @@
}
catch(Exception e) {
e.printStackTrace();
- }
+ }
}
+
+ public IXWikiConnection getConnection() {
+ return connection;
+ }
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications