[xwiki-notifications] r236 - in xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer: . editors utils

fmancinelli (SVN) notifications at xwiki.org
Tue Jul 1 16:21:55 CEST 2008


Author: fmancinelli
Date: 2008-07-01 16:21:55 +0200 (Tue, 01 Jul 2008)
New Revision: 236

Added:
   xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/utils/
   xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/utils/SafeRunnableWithResult.java
Modified:
   xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMContentProvider.java
   xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMLabelProvider.java
   xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMOutlinePage.java
Log:
Added error handling.

Modified: xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMContentProvider.java
===================================================================
--- xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMContentProvider.java	2008-06-30 15:11:13 UTC (rev 235)
+++ xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMContentProvider.java	2008-07-01 14:21:55 UTC (rev 236)
@@ -23,6 +23,7 @@
 
     public Object[] getChildren(Object parentElement)
     {
+        System.out.format("Children for %s\n", parentElement.getClass());
         if (parentElement instanceof Block) {
             Block block = (Block) parentElement;
 

Modified: xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMLabelProvider.java
===================================================================
--- xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMLabelProvider.java	2008-06-30 15:11:13 UTC (rev 235)
+++ xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMLabelProvider.java	2008-07-01 14:21:55 UTC (rev 236)
@@ -1,13 +1,7 @@
 package org.xwiki.xdomexplorer.editors;
 
 import org.eclipse.jface.viewers.LabelProvider;
-import org.xwiki.rendering.block.Block;
-import org.xwiki.rendering.block.BoldBlock;
-import org.xwiki.rendering.block.ItalicBlock;
-import org.xwiki.rendering.block.NewLineBlock;
-import org.xwiki.rendering.block.ParagraphBlock;
-import org.xwiki.rendering.block.SectionBlock;
-import org.xwiki.rendering.block.SpaceBlock;
+import org.xwiki.rendering.block.MacroBlock;
 import org.xwiki.rendering.block.WordBlock;
 
 public class XDOMLabelProvider extends LabelProvider
@@ -24,43 +18,27 @@
     @Override
     public String getText(Object element)
     {
-        if (element instanceof SectionBlock) {
-            SectionBlock sectionBlock = (SectionBlock) element;
-            return String.format("Section %s", sectionBlock.getLevel());
-        }
-
-        if (element instanceof ParagraphBlock) {
-            return String.format("Paragraph");
-        }
-
         if (element instanceof WordBlock) {
             WordBlock wordBlock = (WordBlock) element;
-            return String.format("Word [%s]", truncate(wordBlock.getWord(), 15));
+            return String.format("WordBlock [%s]", truncate(wordBlock.getWord(), 15));
         }
-
-        if (element instanceof SpaceBlock) {
-
-            return String.format("Space");
+        
+        if (element instanceof MacroBlock) {
+            MacroBlock macroBlock = (MacroBlock) element;
+            return String.format("MacroBlock [%s]", truncate(macroBlock.getContent(), 15));
         }
 
-        if (element instanceof BoldBlock) {
-
-            return String.format("Bold");
+        String className = element.getClass().getName(); 
+        
+        int index = className.lastIndexOf('.');
+        if(index == -1) {
+            index = 0;
         }
-
-        if (element instanceof ItalicBlock) {
-            return String.format("Italic");
+        else {
+            index++;
         }
-
-        if (element instanceof NewLineBlock) {
-            return String.format("NewLine");
-        }
-
-        if (element instanceof Block) {
-            Block block = (Block) element;
-            return block.toString();
-        }
-        return super.getText(element);
+        
+        return className.substring(index, className.length());
     }
 
 }

Modified: xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMOutlinePage.java
===================================================================
--- xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMOutlinePage.java	2008-06-30 15:11:13 UTC (rev 235)
+++ xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/editors/XDOMOutlinePage.java	2008-07-01 14:21:55 UTC (rev 236)
@@ -1,16 +1,16 @@
 package org.xwiki.xdomexplorer.editors;
 
-import java.io.InputStreamReader;
-import java.io.StringBufferInputStream;
+import java.io.StringReader;
 
+import org.eclipse.core.runtime.SafeRunner;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
 import org.xwiki.rendering.block.XDOM;
-import org.xwiki.rendering.parser.ParseException;
 import org.xwiki.rendering.parser.Parser;
 import org.xwiki.rendering.wikimodel.parser.WikiModelXWikiParser;
+import org.xwiki.xdomexplorer.utils.SafeRunnableWithResult;
 
 public class XDOMOutlinePage extends ContentOutlinePage
 {
@@ -40,16 +40,22 @@
         xdomTreeViewer.expandAll();
     }
 
-    private XDOM parse(IDocument document)
+    private XDOM parse(final IDocument document)
     {
-        Parser parser = new WikiModelXWikiParser();
-        try {
-            return parser.parse(new InputStreamReader(new StringBufferInputStream(document.get())));
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
+        SafeRunnableWithResult<XDOM> runnable = new SafeRunnableWithResult<XDOM>()
+        {
 
-        return null;
+            public void run() throws Exception
+            {
+                Parser parser = new WikiModelXWikiParser();
+                XDOM result = parser.parse(new StringReader(document.get()));
+
+                setResult(result);
+            }
+
+        };
+        SafeRunner.run(runnable);
+
+        return runnable.getResult();
     }
-
 }

Added: xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/utils/SafeRunnableWithResult.java
===================================================================
--- xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/utils/SafeRunnableWithResult.java	                        (rev 0)
+++ xeclipse-gsoc/org.xwiki.xdomexplorer/src/main/java/org/xwiki/xdomexplorer/utils/SafeRunnableWithResult.java	2008-07-01 14:21:55 UTC (rev 236)
@@ -0,0 +1,18 @@
+package org.xwiki.xdomexplorer.utils;
+
+import org.eclipse.jface.util.SafeRunnable;
+
+public abstract class SafeRunnableWithResult<T> extends SafeRunnable
+{
+        private T result = null;
+                  
+        public T getResult()
+        {
+            return result;
+        }
+
+        public void setResult(T result)
+        {
+            this.result = result;            
+        }
+}



More information about the notifications mailing list