[jboss-svn-commits] JBL Code SVN: r7731 - in labs/jbossrules/trunk/drools-ide/src/main/java/org/drools: ide/editors ide/editors/rete ide/editors/rete/model reteoo

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Nov 20 17:16:46 EST 2006


Author: ahtik
Date: 2006-11-20 17:16:31 -0500 (Mon, 20 Nov 2006)
New Revision: 7731

Added:
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AccumulateNodeVertex.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/CollectNodeVertex.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ExistsNodeVertex.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/FromNodeVertex.java
Modified:
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java
   labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java
Log:
JBRULES-564: Added support for  'from', 'accumulate', 'collect', 'exists' nodes. Not tested very properly but it is not breaking anything. Improved plugin error reporting dialog.

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/DRLRuleEditor2.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -22,8 +22,11 @@
 import org.drools.ide.editors.rete.ReteViewer;
 import org.drools.ide.editors.rete.model.ReteGraph;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.gef.editparts.ZoomManager;
 import org.eclipse.gef.ui.actions.ZoomComboContributionItem;
+import org.eclipse.jface.dialogs.ErrorDialog;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.text.DocumentEvent;
@@ -284,13 +287,19 @@
         if ( cause == null ) {
             cause = t;
         }
-        String message = cause.getMessage();
+        String message = cause.getClass().getName()+": "+cause.getMessage();
         if ( message == null || message.length() == 0 ) {
             message = "Uncategorized Error!";
         }
-        MessageDialog.openError( getSite().getShell(),
-                                 "Rete Tree Error!",
-                                 message );
+        IStatus status = new Status( IStatus.ERROR,
+                                     DroolsIDEPlugin.getUniqueIdentifier(),
+                                     -1,
+                                     message,
+                                     null);
+        ErrorDialog.openError( getSite().getShell(),
+                               "Rete Tree Build Error!",
+                               "Rete Tree Build Error!",
+                               status );
 
     }
 

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/ReteViewer.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -38,6 +38,7 @@
 import org.drools.reteoo.ReteooVisitor;
 import org.drools.rule.Package;
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.draw2d.ColorConstants;
 import org.eclipse.draw2d.ConnectionLayer;
@@ -117,34 +118,29 @@
         return super.getAdapter( type );
     }
 
-    private RuleBase getRuleBase(String contents) {
+    private RuleBase getRuleBase(String contents) throws PackageIntegrationException,
+                                                 DroolsParserException,
+                                                 CoreException {
         if ( getEditorInput() instanceof IFileEditorInput ) {
-            try {
+            ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
+            ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
+            IFile file = ((IFileEditorInput) getEditorInput()).getFile();
+            if ( file.getProject().getNature( JAVA_NATURE ) != null ) {
+                IJavaProject project = JavaCore.create( file.getProject() );
+                newLoader = ProjectClassLoader.getProjectClassLoader( project );
+            }
 
-                ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
-                ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
-                IFile file = ((IFileEditorInput) getEditorInput()).getFile();
-                if ( file.getProject().getNature( JAVA_NATURE ) != null ) {
-                    IJavaProject project = JavaCore.create( file.getProject() );
-                    newLoader = ProjectClassLoader.getProjectClassLoader( project );
-                }
+            Reader dslReader = DSLAdapter.getDSLContent( contents,
+                                                         file );
 
-                Reader dslReader = DSLAdapter.getDSLContent( contents,
-                                                             file );
+            try {
+                Thread.currentThread().setContextClassLoader( newLoader );
 
-                try {
-                    Thread.currentThread().setContextClassLoader( newLoader );
+                return parseRuleBase( contents,
+                                      dslReader );
 
-                    return parseRuleBase( contents,
-                                          dslReader );
-
-                } catch ( Exception t ) {
-                    throw t;
-                } finally {
-                    Thread.currentThread().setContextClassLoader( oldLoader );
-                }
-            } catch ( Throwable t ) {
-                DroolsIDEPlugin.log( t );
+            } finally {
+                Thread.currentThread().setContextClassLoader( oldLoader );
             }
         }
 

Modified: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/ide/editors/rete/model/VertexPropertySource.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -5,9 +5,13 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.reteoo.AccumulateNodeVertex;
 import org.drools.reteoo.AlphaNodeVertex;
 import org.drools.reteoo.BaseVertex;
+import org.drools.reteoo.CollectNodeVertex;
 import org.drools.reteoo.EvalConditionNodeVertex;
+import org.drools.reteoo.ExistsNodeVertex;
+import org.drools.reteoo.FromNodeVertex;
 import org.drools.reteoo.JoinNodeVertex;
 import org.drools.reteoo.LeftInputAdapterNodeVertex;
 import org.drools.reteoo.NotNodeVertex;
@@ -29,6 +33,14 @@
     implements
     IPropertySource {
 
+    private static final String       VERTEX_FROM                = "From BaseVertex";
+
+    private static final String       VERTEX_ACCUMULATE          = "Accumulate BaseVertex";
+
+    private static final String       VERTEX_COLLECT             = "Collect BaseVertex";
+
+    private static final String       VERTEX_EXISTS              = "Exists BaseVertex";
+
     private static final String       VERTEX_TERMINAL            = "Terminal BaseVertex";
 
     private static final String       VERTEX_EVAL_CONDITION      = "Eval Condition BaseVertex";
@@ -100,7 +112,23 @@
 
         List descriptorList = new ArrayList();
 
-        if ( vertex instanceof TerminalNodeVertex ) {
+        if ( vertex instanceof ExistsNodeVertex ) {
+            initExistsNodeProperties( (ExistsNodeVertex) vertex,
+                                      descriptorList,
+                                      values );
+        } else if ( vertex instanceof FromNodeVertex ) {
+            initFromNodeProperties( (FromNodeVertex) vertex,
+                                    descriptorList,
+                                    values );
+        } else if ( vertex instanceof AccumulateNodeVertex ) {
+            initAccumulateNodeProperties( (AccumulateNodeVertex) vertex,
+                                          descriptorList,
+                                          values );
+        } else if ( vertex instanceof CollectNodeVertex ) {
+            initCollectNodeProperties( (CollectNodeVertex) vertex,
+                                       descriptorList,
+                                       values );
+        } else if ( vertex instanceof TerminalNodeVertex ) {
             initTerminalNodeProperties( (TerminalNodeVertex) vertex,
                                         descriptorList,
                                         values );
@@ -140,6 +168,60 @@
         descriptors = (IPropertyDescriptor[]) descriptorList.toArray( new IPropertyDescriptor[0] );
     }
 
+    private void initExistsNodeProperties(ExistsNodeVertex vertex,
+                                          List descriptorList,
+                                          Map valueMap) {
+        addProperty( PROP_NAME,
+                     VERTEX_EXISTS,
+                     descriptorList,
+                     valueMap );
+        addProperty( PROP_ID,
+                     Integer.toString( vertex.getId() ),
+                     descriptorList,
+                     valueMap );
+
+    }
+
+    private void initCollectNodeProperties(CollectNodeVertex vertex,
+                                           List descriptorList,
+                                           Map valueMap) {
+        addProperty( PROP_NAME,
+                     VERTEX_COLLECT,
+                     descriptorList,
+                     valueMap );
+        addProperty( PROP_ID,
+                     Integer.toString( vertex.getId() ),
+                     descriptorList,
+                     valueMap );
+
+    }
+
+    private void initAccumulateNodeProperties(AccumulateNodeVertex vertex,
+                                              List descriptorList,
+                                              Map valueMap) {
+        addProperty( PROP_NAME,
+                     VERTEX_ACCUMULATE,
+                     descriptorList,
+                     valueMap );
+        addProperty( PROP_ID,
+                     Integer.toString( vertex.getId() ),
+                     descriptorList,
+                     valueMap );
+    }
+
+    private void initFromNodeProperties(FromNodeVertex vertex,
+                                        List descriptorList,
+                                        Map valueMap) {
+        addProperty( PROP_NAME,
+                     VERTEX_FROM,
+                     descriptorList,
+                     valueMap );
+        addProperty( PROP_ID,
+                     Integer.toString( vertex.getId() ),
+                     descriptorList,
+                     valueMap );
+    }
+
     private void initReteNodeProperties(ReteVertex vertex,
                                         List descriptorList,
                                         Map valueMap) {

Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AccumulateNodeVertex.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AccumulateNodeVertex.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/AccumulateNodeVertex.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -0,0 +1,59 @@
+/**
+ * 
+ */
+package org.drools.reteoo;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link AccumulateNode} and adds visual extras like color information
+ *
+ */
+public class AccumulateNodeVertex extends BaseVertex {
+    
+    private static final String NODE_NAME = "AccumulateNode";
+    
+    private final AccumulateNode node;
+
+    /**
+     * Constructor
+     * 
+     * @param node node to be wrapped
+     */
+    public AccumulateNodeVertex(final AccumulateNode node) {
+        super();
+        this.node = node;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+     */
+    public String getHtml() {
+        return NODE_NAME+" : " + this.node.getId() + " : Chared count=" + this.node.getSharedCount();
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+     */
+    public String toString() {
+        return NODE_NAME;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+     */
+    public Color getFillColor() {
+        return ColorConstants.lightGreen;
+    }
+
+    /**
+     * Node ID
+     * 
+     * @return id
+     */
+    public int getId() {
+        return this.node.getId();
+    }
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/CollectNodeVertex.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/CollectNodeVertex.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/CollectNodeVertex.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -0,0 +1,59 @@
+/**
+ * 
+ */
+package org.drools.reteoo;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link CollectNode} and adds visual extras like color information
+ *
+ */
+public class CollectNodeVertex extends BaseVertex {
+    
+    private static final String NODE_NAME = "CollectNode";
+    
+    private final CollectNode node;
+
+    /**
+     * Constructor
+     * 
+     * @param node node to be wrapped
+     */
+    public CollectNodeVertex(final CollectNode node) {
+        super();
+        this.node = node;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+     */
+    public String getHtml() {
+        return NODE_NAME+" : " + this.node.getId() + " : Chared count = " + this.node.getSharedCount();
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+     */
+    public String toString() {
+        return NODE_NAME;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+     */
+    public Color getFillColor() {
+        return ColorConstants.lightGray;
+    }
+
+    /**
+     * Node ID
+     * 
+     * @return id
+     */
+    public int getId() {
+        return this.node.getId();
+    }
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ExistsNodeVertex.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ExistsNodeVertex.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/ExistsNodeVertex.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -0,0 +1,59 @@
+/**
+ * 
+ */
+package org.drools.reteoo;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link ExistsNode} and adds visual extras like color information
+ *
+ */
+public class ExistsNodeVertex extends BaseVertex {
+
+    private static final String NODE_NAME = "ExistsNode";
+
+    private final ExistsNode    node;
+
+    /**
+     * Constructor
+     * 
+     * @param node node to be wrapped
+     */
+    public ExistsNodeVertex(final ExistsNode node) {
+        super();
+        this.node = node;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+     */
+    public String getHtml() {
+        return NODE_NAME + " : " + this.node.getId() + " : Chared count=" + this.node.getSharedCount();
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+     */
+    public String toString() {
+        return NODE_NAME;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+     */
+    public Color getFillColor() {
+        return ColorConstants.cyan;
+    }
+
+    /**
+     * Node ID
+     * 
+     * @return id
+     */
+    public int getId() {
+        return this.node.getId();
+    }
+
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/FromNodeVertex.java
===================================================================
--- labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/FromNodeVertex.java	2006-11-20 21:11:06 UTC (rev 7730)
+++ labs/jbossrules/trunk/drools-ide/src/main/java/org/drools/reteoo/FromNodeVertex.java	2006-11-20 22:16:31 UTC (rev 7731)
@@ -0,0 +1,59 @@
+/**
+ * 
+ */
+package org.drools.reteoo;
+
+import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.swt.graphics.Color;
+
+/**
+ * Wraps {@link FromNode} and adds visual extras like color information
+ *
+ */
+public class FromNodeVertex extends BaseVertex {
+
+    private static final String NODE_NAME = "FromNode";
+
+    private final FromNode      node;
+
+    /**
+     * Constructor
+     * 
+     * @param node node to be wrapped
+     */
+    public FromNodeVertex(final FromNode node) {
+        super();
+        this.node = node;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getHtml()
+     */
+    public String getHtml() {
+        return NODE_NAME + " : " + this.node.getId() + " : Chared count=" + this.node.getSharedCount();
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.ide.editors.rete.model.BaseVertex#toString()
+     */
+    public String toString() {
+        return NODE_NAME;
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.reteoo.BaseNodeVertex#getFillColor()
+     */
+    public Color getFillColor() {
+        return ColorConstants.lightBlue;
+    }
+
+    /**
+     * Node ID
+     * 
+     * @return id
+     */
+    public int getId() {
+        return this.node.getId();
+    }
+
+}
\ No newline at end of file




More information about the jboss-svn-commits mailing list