[jboss-svn-commits] JBL Code SVN: r7360 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/rpc main/java/org/drools/brms/client/rpc/mock main/java/org/drools/brms/client/ruleeditor main/java/org/drools/brms/server test/java/org/drools/brms/server

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Nov 3 06:00:46 EST 2006


Author: michael.neale at jboss.com
Date: 2006-11-03 06:00:34 -0500 (Fri, 03 Nov 2006)
New Revision: 7360

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleContentText.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CheckinPopup.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
more meta data stuff

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/MetaData.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -18,14 +18,13 @@
 
     public String lastModifiedDate = "";
     public String lastContributor = "";
-    public int versionNumber;
+    public String versionNumber;
     public String   lastCheckinComment = "";
+    public String createdDate = "";
     
-    
     public String packageName = "";
     public String[] categories = new String[0];
     
-    
     public String format = "";
     public String type = "";
     public String creator = "";
@@ -36,7 +35,6 @@
     public String coverage = "";
     public String publisher = "";   
     
-    
     /** used to flag dirty - ie needs to be spanked. Or saved to the repo, whatever */
     public boolean dirty = false;
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleAsset.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -13,6 +13,8 @@
     IsSerializable {
     
     public MetaData metaData;
-    public IsSerializable ruleAsset;
+    public IsSerializable content;
+    public String dateEffective;
+    public String dateExpired;
 
 }

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleContentText.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleContentText.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleContentText.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -0,0 +1,14 @@
+package org.drools.brms.client.rpc;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * This is the guts of a plain text (advanced) rule.
+ * @author Michael Neale
+ */
+public class RuleContentText
+    implements
+    IsSerializable {
+    
+    public String content;
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleContentText.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -139,10 +139,11 @@
         MetaData meta = new MetaData();
         meta.categories = new String[] {"Approval", "Age related"};
         meta.name = "age rejection 1";
+        meta.versionNumber = "2";
         if (uuid.endsWith( "1" )) {
             meta.format = "DRL";
             TextData text = new TextData();
-            asset.ruleAsset = text;
+            asset.content = text;
             text.content = "rule la\n\twhen\n\t\tSomething() ...";
             
         } else {

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CheckinPopup.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CheckinPopup.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CheckinPopup.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -0,0 +1,50 @@
+package org.drools.brms.client.ruleeditor;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
+
+/**
+ * 
+ * A popup and confirmation dialog for committing an asset.
+ * 
+ * @author Michael Neale
+ *
+ */
+public class CheckinPopup extends PopupPanel {
+
+    final private FlexTable layout = new FlexTable();
+    final private TextArea comment = new TextArea();
+    final private ClickListener okClick;    
+    
+    public CheckinPopup(ClickListener okClick) {
+        super(true);        
+        this.okClick = okClick;
+        
+        FlexCellFormatter formatter = layout.getFlexCellFormatter();
+        
+        layout.setWidget( 0, 0, new Image() );
+        layout.setWidget( 1, 0, new Label("Comment:") );
+        layout.setWidget( 1, 1, comment );
+        Button ok = new Button();
+        ok.addClickListener( new ClickListener() {
+
+            public void onClick(Widget w) {
+
+                
+            }
+            
+        });
+        layout.setWidget( 2, 0,  ok);
+        
+        
+        add( layout );
+    }
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/CheckinPopup.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/MetaDataWidget.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -53,6 +53,7 @@
         addAttribute("Last modified by:", readOnlyText(data.lastContributor));
         addAttribute("Checkin note:", readOnlyText( data.lastCheckinComment ));
         addAttribute("Created by:", readOnlyText(data.creator));
+        addAttribute("Created on:", readOnlyText( data.createdDate ));
         addAttribute("Version number:", readOnlyText("" + data.versionNumber));
         addAttribute("Package:", readOnlyText(data.packageName));
         

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -85,7 +85,7 @@
             BREditor ed = new BREditor();
             layout.setWidget( 1, 1, ed );
         } else {
-            DefaultRuleContentWidget ed = new DefaultRuleContentWidget((TextData) asset.ruleAsset);
+            DefaultRuleContentWidget ed = new DefaultRuleContentWidget((TextData) asset.content);
             layout.setWidget( 1, 1, ed );
         }
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -1,6 +1,8 @@
 package org.drools.brms.server;
 
+import java.text.DateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Iterator;
 import java.util.List;
 
@@ -10,17 +12,21 @@
 import javax.jcr.Session;
 import javax.servlet.http.HttpSession;
 
+import org.drools.brms.client.rpc.MetaData;
 import org.drools.brms.client.rpc.RepositoryService;
 import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleContentText;
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
+import org.drools.repository.CategorisableItem;
 import org.drools.repository.CategoryItem;
 import org.drools.repository.RepositoryConfigurator;
 import org.drools.repository.RuleItem;
 import org.drools.repository.RulePackageItem;
 import org.drools.repository.RulesRepository;
 import org.drools.repository.RulesRepositoryException;
+import org.drools.repository.StateItem;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@@ -183,11 +189,90 @@
         return repository;
     }
 
+    /**
+     * This actually does the hard work of loading up an asset based
+     * on its format.
+     */
     public RuleAsset loadRuleAsset(String uuid) throws SerializableException {
-        return null;
+        RulesRepository repo = getRulesRepository();
+        RuleItem item = repo.loadRuleByUUID( uuid );
+        RuleAsset asset = new RuleAsset();
+        
+        asset.metaData = popuplateMetaData( item );
+        
+        
+        asset.dateEffective = formatDate( item.getDateEffective() );
+        asset.dateExpired = formatDate( item.getDateExpired() );
+        
+        
+        if (item.getFormat().equals( "DSL" )) {
+            //ok here is where we do DSLs...
+            throw new SerializableException("Can't load DSL rules just yet.");
+
+        } else if (item.getFormat().equals( "DSL" )) {
+        } else if (item.getFormat().equals( "DT" )) {
+            //and here we do decision tables
+            throw new SerializableException("Still working on this...");
+        } else {
+            //default to text, goode olde texte, just like mum used to make.
+            RuleContentText text = new RuleContentText();
+            text.content = item.getRuleContent();
+            asset.content = text;
+
+        }
+        
+        asset.metaData.packageName = item.getPackageName();
+        
+        
+        return asset;
     }
+    
+    /** pretty print the date. */
+    String formatDate(Calendar date) {
+        if (date == null) {
+            return "";
+        }
+        DateFormat f = DateFormat.getDateTimeInstance();
+        return f.format( date.getTime() );
+    }
 
+    /** 
+     * read in the meta data.
+     * @param item
+     * @return
+     */
+    MetaData popuplateMetaData(CategorisableItem item) {
+        MetaData meta = new MetaData();
+        meta.name = item.getName();
+        meta.title = item.getTitle();
+        
+        List cats = item.getCategories();
+        meta.categories = new String[cats.size()];
+        for ( int i = 0; i < meta.categories.length; i++ ) {
+            CategoryItem cat = (CategoryItem) cats.get(i);
+            meta.categories[i] = cat.getName();            
+        }
+        
+        meta.state = (item.getState() != null) ? item.getState().getName() : "";
+        
+        meta.coverage = item.getCoverage();
+        meta.creator = item.getCreator();
+        meta.description = item.getDescription();
+        meta.externalRelation = item.getExternalRelation();
+        meta.externalSource = item.getExternalSource();
+        meta.format = item.getFormat();
+        meta.lastCheckinComment = item.getCheckinComment();
+        meta.lastContributor = item.getLastContributor();
+        meta.lastModifiedDate = formatDate(item.getLastModified());
+        meta.createdDate = formatDate( item.getCreatedDate() );
+        meta.versionNumber = item.getVersionNumber();
+        
+        
+        
+        return meta;
+    }
 
+
     
     
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -1,5 +1,6 @@
 package org.drools.brms.server;
 
+import java.util.Calendar;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
@@ -11,6 +12,7 @@
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
+import org.drools.brms.client.rpc.RuleContentText;
 import org.drools.repository.RulesRepository;
 
 /**
@@ -38,6 +40,17 @@
     }
     
 
+    public void testFormattingDates() {
+        JBRMSServiceServlet serv = new JBRMSServiceServlet();
+        assertEquals("", serv.formatDate( null ));
+        
+        Calendar cal = Calendar.getInstance();
+        String d = serv.formatDate( cal );
+        assertNotNull(d);
+        assertTrue(d.length() > 5);
+        System.out.println(d);
+        
+    }
     
     
     static class MockHttpSession implements HttpSession {

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2006-11-03 10:59:56 UTC (rev 7359)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2006-11-03 11:00:34 UTC (rev 7360)
@@ -6,12 +6,14 @@
 
 import org.drools.brms.client.rpc.RepositoryService;
 import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.rpc.RuleContentText;
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
 import org.drools.brms.client.rulelist.RuleItemListViewer;
 
 import org.drools.repository.CategoryItem;
+import org.drools.repository.RuleItem;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 
@@ -147,9 +149,16 @@
       
       RuleAsset asset = impl.loadRuleAsset( uuid );
       assertNotNull(asset);
-      assertNotNull(asset.ruleAsset);
       
+      assertEquals("description", asset.metaData.description);
       
+      
+      assertNotNull(asset.content);
+      assertTrue(asset.content instanceof RuleContentText);
+      assertEquals("testLoadRuleAsset", asset.metaData.name);
+      assertEquals("testLoadRuleAsset", asset.metaData.title);
+      assertEquals("testLoadRuleAsset", asset.metaData.packageName);
+      
   }
   
     




More information about the jboss-svn-commits mailing list