[jboss-svn-commits] JBL Code SVN: r9627 - in labs/jbossrules/trunk/drools-jbrms/src/main: java/org/drools/brms/client/packages and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 20 01:39:33 EST 2007


Author: michael.neale at jboss.com
Date: 2007-02-20 01:39:33 -0500 (Tue, 20 Feb 2007)
New Revision: 9627

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/JBRMS.gwt.xml
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml
Log:
JBRULES-668 model upload

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/JBRMS.gwt.xml
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/JBRMS.gwt.xml	2007-02-20 05:20:45 UTC (rev 9626)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/JBRMS.gwt.xml	2007-02-20 06:39:33 UTC (rev 9627)
@@ -8,6 +8,6 @@
 	<entry-point class='org.drools.brms.client.JBRMSEntryPoint'/>
   
 	<servlet path="/jbrmsService" class="org.drools.brms.server.JBRMSServiceServlet" />  
-    <servlet path="/upload" class="org.drools.brms.server.FileUploadServlet"/>
+    <servlet path="/fileManager" class="org.drools.brms.server.FileUploadServlet"/>
     
 </module>

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java	2007-02-20 05:20:45 UTC (rev 9626)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java	2007-02-20 06:39:33 UTC (rev 9627)
@@ -1,122 +0,0 @@
-package org.drools.brms.client.packages;
-
-import org.drools.brms.client.common.ErrorPopup;
-import org.drools.brms.client.common.FormStyleLayout;
-import org.drools.brms.client.rpc.RuleAsset;
-import org.drools.brms.client.ruleeditor.RuleViewer;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FileUpload;
-import com.google.gwt.user.client.ui.FormHandler;
-import com.google.gwt.user.client.ui.FormPanel;
-import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
-import com.google.gwt.user.client.ui.FormSubmitEvent;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * This wraps a file uploader utility for model packages.
- * Model packages are jar files. 
- * 
- * @author Michael Neale
- */
-public class ModelArchiveFileWidget extends Composite {
-
-
-
-    public static final String FORM_FIELD_UUID = "uuid";
-    private FormPanel form;
-    private Button ok;
-    private HorizontalPanel busy;
-
-    public ModelArchiveFileWidget(RuleAsset asset, final RuleViewer viewer) {
-        
-        form = new FormPanel();
-        form.setAction( GWT.getModuleBaseURL() + "upload"   );
-        form.setEncoding( FormPanel.ENCODING_MULTIPART );
-        form.setMethod( FormPanel.METHOD_POST );
-        
-        FileUpload up = new FileUpload();
-        up.setName( "fileUploadElement" );        
-        HorizontalPanel fields = new HorizontalPanel();
-        fields.add( getHiddenField(FORM_FIELD_UUID, asset.uuid) );
-  
-        ok = new Button("Upload");
-                
-        fields.add( up );
-        fields.add( ok );
-        
-        form.add( fields );
-        
-        FormStyleLayout layout = new FormStyleLayout("images/model_large.png", 
-                                                     asset.metaData.name);
-
-        
-        layout.addAttribute( "Upload new version:", form );
-        
-        busy = new HorizontalPanel();
-        busy.setVisible( false );
-        busy.add( new Label("Uploading file...") );
-        busy.add( new Image("images/spinner.gif") );
-        
-        layout.addRow( busy );
-        ok.addClickListener( new ClickListener() {
-            public void onClick(Widget w) {
-                showUploadingBusy();
-                submitUpload();              
-            }            
-        });
-        
-        form.addFormHandler( new FormHandler() {
-
-            public void onSubmit(FormSubmitEvent ev) {                
-            }
-
-            public void onSubmitComplete(FormSubmitCompleteEvent ev) {  
-                    if (ev.getResults().indexOf( "OK" ) > -1) {                        
-                        viewer.refreshDataAndView();
-                    } else {
-                        ErrorPopup.showMessage( "Unable to upload the file." );
-                    }
-            }
-            
-        });
-        
-        initWidget( layout );
-        
-        this.setStyleName( "editable-Surface" );
-        
-    }
-
-    protected void submitUpload() {
-        DeferredCommand.add( new Command() {
-            public void execute() {
-                form.submit();
-            }            
-        });
-    }
-
-    protected void showUploadingBusy() {
-        this.ok.setVisible( false );
-        this.form.setVisible( false );
-        this.busy.setVisible( true );
-    }
-
-    private TextBox getHiddenField(String name, String value) {
-        TextBox t = new TextBox();
-        t.setName( name );
-        t.setText( value );
-        t.setVisible( false );
-        return t;
-    }
-    
-}

Copied: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java (from rev 9626, labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java	2007-02-20 06:39:33 UTC (rev 9627)
@@ -0,0 +1,133 @@
+package org.drools.brms.client.packages;
+
+import org.drools.brms.client.common.ErrorPopup;
+import org.drools.brms.client.common.FormStyleLayout;
+import org.drools.brms.client.rpc.RuleAsset;
+import org.drools.brms.client.ruleeditor.RuleViewer;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FileUpload;
+import com.google.gwt.user.client.ui.FormHandler;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
+import com.google.gwt.user.client.ui.FormSubmitEvent;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This wraps a file uploader utility for model packages.
+ * Model packages are jar files. 
+ * 
+ * @author Michael Neale
+ */
+public class ModelAttachmentFileWidget extends Composite {
+
+
+
+    public static final String FORM_FIELD_UUID = "uuid";
+    private FormPanel form;
+    private Button ok;
+    private HorizontalPanel busy;
+
+    public ModelAttachmentFileWidget(final RuleAsset asset, final RuleViewer viewer) {
+        
+        form = new FormPanel();
+        form.setAction( GWT.getModuleBaseURL() + "fileManager"   );
+        form.setEncoding( FormPanel.ENCODING_MULTIPART );
+        form.setMethod( FormPanel.METHOD_POST );
+        
+        FileUpload up = new FileUpload();
+        up.setName( "fileUploadElement" );        
+        HorizontalPanel fields = new HorizontalPanel();
+        fields.add( getHiddenField(FORM_FIELD_UUID, asset.uuid) );
+  
+        ok = new Button("Upload");
+                
+        fields.add( up );
+        fields.add( ok );
+        
+        form.add( fields );
+        
+        FormStyleLayout layout = new FormStyleLayout("images/model_large.png", 
+                                                     asset.metaData.name);
+
+        
+        layout.addAttribute( "Upload new version:", form );
+        Button dl = new Button("download current version");
+        dl.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                Window.open( GWT.getModuleBaseURL() + "fileManager?" +  FORM_FIELD_UUID + "=" + asset.uuid, 
+                             "downloading...", "" );
+            }            
+        });
+        layout.addAttribute( "Download:", dl );
+        
+        busy = new HorizontalPanel();
+        busy.setVisible( false );
+        busy.add( new Label("Uploading file...") );
+        busy.add( new Image("images/spinner.gif") );
+        
+        
+        
+        layout.addRow( busy );
+        ok.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                showUploadingBusy();
+                submitUpload();              
+            }            
+        });
+        
+        form.addFormHandler( new FormHandler() {
+
+            public void onSubmit(FormSubmitEvent ev) {                
+            }
+
+            public void onSubmitComplete(FormSubmitCompleteEvent ev) {  
+                    if (ev.getResults().indexOf( "OK" ) > -1) {                        
+                        viewer.refreshDataAndView();
+                    } else {
+                        ErrorPopup.showMessage( "Unable to upload the file." );
+                    }
+            }
+            
+        });
+        
+        initWidget( layout );
+        
+        this.setStyleName( "editable-Surface" );
+        
+    }
+
+    protected void submitUpload() {
+        DeferredCommand.add( new Command() {
+            public void execute() {
+                form.submit();
+            }            
+        });
+    }
+
+    protected void showUploadingBusy() {
+        this.ok.setVisible( false );
+        this.form.setVisible( false );
+        this.busy.setVisible( true );
+    }
+
+    private TextBox getHiddenField(String name, String value) {
+        TextBox t = new TextBox();
+        t.setName( name );
+        t.setText( value );
+        t.setVisible( false );
+        return t;
+    }
+    
+}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-02-20 05:20:45 UTC (rev 9626)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-02-20 06:39:33 UTC (rev 9627)
@@ -4,7 +4,7 @@
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.modeldriven.ui.RuleModeller;
-import org.drools.brms.client.packages.ModelArchiveFileWidget;
+import org.drools.brms.client.packages.ModelAttachmentFileWidget;
 import org.drools.brms.client.rpc.DSLRuleData;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleModelData;
@@ -36,7 +36,7 @@
             DSLRuleData data = (DSLRuleData) asset.content;            
             return new DSLRuleEditor( data.text, data.lhsSuggestions, data.rhsSuggestions );
         } else if (asset.metaData.format.equals( AssetFormats.MODEL ) ) {
-            return new ModelArchiveFileWidget(asset, viewer);
+            return new ModelAttachmentFileWidget(asset, viewer);
         } else {
 
             return new DefaultRuleContentWidget( asset );

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java	2007-02-20 05:20:45 UTC (rev 9626)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java	2007-02-20 06:39:33 UTC (rev 9627)
@@ -1,6 +1,7 @@
 package org.drools.brms.server;
 
 import java.io.IOException;
+import java.io.OutputStream;
 import java.util.Iterator;
 import java.util.List;
 
@@ -14,7 +15,7 @@
 import org.apache.commons.fileupload.FileUploadException;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;
-import org.drools.brms.client.packages.ModelArchiveFileWidget;
+import org.drools.brms.client.packages.ModelAttachmentFileWidget;
 import org.drools.brms.server.util.RepositoryManager;
 import org.drools.repository.AssetItem;
 import org.drools.repository.RulesRepository;
@@ -22,6 +23,8 @@
 
 /**
  * Files can be uploaded as part of the repo (eg model classes, spreadsheets).
+ * This servlet supports the uploading and downloading of files 
+ * in assets in the repository.
  * 
  * @author Michael Neale
  */
@@ -29,6 +32,9 @@
 
     private static final long serialVersionUID = 3909768997932550498L;
 
+    /**
+     * The post accepts files for attachment to an asset.
+     */
     protected void doPost(HttpServletRequest request,
                           HttpServletResponse response) throws ServletException,
                                                        IOException {
@@ -41,15 +47,48 @@
         }
         
         
-        RepositoryManager repoMan = new RepositoryManager();
-        RulesRepository repo = repoMan.getRepositoryFrom( request.getSession() );
+        RulesRepository repo = getRepository( request );
         attachFile( uploadItem, repo );
         
         uploadItem.file.getInputStream().close();
         
         response.getWriter().write( "OK" );
     }
+    
+    /** 
+     * The get returns files based on UUID.
+     * you can do a request like /fileManager?uuid=..... 
+     * (need to know the UUID) and it will return it as a file.
+     */
+    protected void doGet(HttpServletRequest req,
+                         HttpServletResponse res) throws ServletException,
+                                                  IOException {
+        
+        String uuid = (String) req.getParameter( ModelAttachmentFileWidget.FORM_FIELD_UUID );
+        if (uuid == null) {
+            res.sendError( HttpServletResponse.SC_BAD_REQUEST );
+            return;
+        }
+        AssetItem item = getRepository( req ).loadAssetByUUID( uuid );
+        
+        res.setContentType("application/x-download");
+        res.setHeader("Content-Disposition", "attachment; filename=" + item.getBinaryContentAttachmentFileName());
+        
+        byte[] data = item.getBinaryContentAsBytes();
+        res.setContentLength( data.length );
+        
+        OutputStream out = res.getOutputStream();
+        out.write( data );        
+        out.flush();
+        
+    }    
 
+    private RulesRepository getRepository(HttpServletRequest request) {
+        RepositoryManager repoMan = new RepositoryManager();
+        RulesRepository repo = repoMan.getRepositoryFrom( request.getSession() );
+        return repo;
+    }
+
     void attachFile(FormData uploadItem,
                             RulesRepository repo) throws IOException {
         AssetItem item = repo.loadAssetByUUID( uploadItem.uuid );
@@ -71,7 +110,7 @@
             Iterator it = items.iterator();
             while ( it.hasNext() ) {
                 FileItem item = (FileItem) it.next();
-                if (item.isFormField() && item.getFieldName().equals( ModelArchiveFileWidget.FORM_FIELD_UUID )) {
+                if (item.isFormField() && item.getFieldName().equals( ModelAttachmentFileWidget.FORM_FIELD_UUID )) {
                     data.uuid = item.getString();
                 } else if ( !item.isFormField() ) {
                     data.file = item;
@@ -89,4 +128,7 @@
         String uuid;
     }
 
+
+
+
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml	2007-02-20 05:20:45 UTC (rev 9626)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml	2007-02-20 06:39:33 UTC (rev 9627)
@@ -22,7 +22,7 @@
 	
 	<servlet-mapping>
 		<servlet-name>FileUploadServlet</servlet-name>
-		<url-pattern>/org.drools.brms.JBRMS/upload</url-pattern>
+		<url-pattern>/org.drools.brms.JBRMS/fileManager</url-pattern>
 	</servlet-mapping>  
   
 </web-app>




More information about the jboss-svn-commits mailing list