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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 29 11:24:39 EDT 2007


Author: fmeyer
Date: 2007-04-29 11:24:38 -0400 (Sun, 29 Apr 2007)
New Revision: 11441

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImportWidget.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java
   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/RuleViewer.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
Log:
JBRULES-825 bug on upload file to asset
JBRULES-826 refactoy - created a generic file upload widget

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java	2007-04-29 15:12:42 UTC (rev 11440)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java	2007-04-29 15:24:38 UTC (rev 11441)
@@ -3,6 +3,7 @@
 import org.drools.brms.client.common.ErrorPopup;
 import org.drools.brms.client.common.FormStyleLayout;
 import org.drools.brms.client.common.HTMLFileManagerFields;
+import org.drools.brms.client.common.ImportWidget;
 import org.drools.brms.client.common.LoadingPopup;
 
 import com.google.gwt.core.client.GWT;
@@ -10,9 +11,7 @@
 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;
@@ -84,35 +83,18 @@
 //    }
 
     private Widget newImportWidget() {
+        final ImportWidget impWidget = new ImportWidget( HTMLFileManagerFields.FILE_UPLOAD_FIELD_NAME_IMPORT);
+        
+        impWidget.add( new Button( "Import", new ClickListener() {
+            public void onClick(Widget sender) {
+                if (Window.confirm( "Are you sure you want to import? this will erase any content in the repository currently?" )) {
+                    LoadingPopup.showMessage( "Importing 'drools:repository' file" );
+                    impWidget.submit();
+                }
+            }
+        } ) );
 
-        final FormPanel uploadFormPanel = new FormPanel();
-        uploadFormPanel.setAction( GWT.getModuleBaseURL() + "fileManager" );
-        uploadFormPanel.setEncoding( FormPanel.ENCODING_MULTIPART );
-        uploadFormPanel.setMethod( FormPanel.METHOD_POST );
-
-        HorizontalPanel panel = new HorizontalPanel();
-        uploadFormPanel.setWidget( panel );
-
-        final FileUpload upload = new FileUpload();
-        upload.setName( HTMLFileManagerFields.FILE_UPLOAD_FIELD_NAME_IMPORT );
-        panel.add( upload );
-
-        panel.add( new Button( "Import",
-                               new ClickListener() {
-                                   public void onClick(Widget sender) {
-                                       doImportFile( uploadFormPanel );
-                                   }
-
-                                private void doImportFile(final FormPanel uploadFormPanel) {
-                                       if (Window.confirm( "Are you sure you want to import? this will erase any content in the " +
-                                            "repository currently?" )) {
-                                           LoadingPopup.showMessage( "Importing 'drools:repository' file" );
-                                           uploadFormPanel.submit();
-                                       }
-                                }
-                               } ) );
-
-        uploadFormPanel.addFormHandler( new FormHandler() {
+        impWidget.addFormHandler( new FormHandler() {
             public void onSubmitComplete(FormSubmitCompleteEvent event) {
                 if (event.getResults().indexOf( "OK" ) > -1) {
                     Window.alert( "Rules repository imported successfully. Please refresh your browser (F5) to show the new content. ");
@@ -123,22 +105,21 @@
             }
 
             public void onSubmit(FormSubmitEvent event) {
-                if ( upload.getFilename().length() == 0 ) {
+                if ( impWidget.getFilename().length() == 0 ) {
                     Window.alert( "You did not specify an exported repository filename !" );
                     event.setCancelled( true );
-                } else if ( !upload.getFilename().endsWith( ".xml" ) ) {
+                } else if ( !impWidget.getFilename().endsWith( ".xml" ) ) {
                     Window.alert( "Please specify a valid repository xml file." );
                     event.setCancelled( true );
                 }
 
             }
         } );
-
-        return uploadFormPanel;
+        return impWidget;
     }
+    
 
     private void exportRepository() {
-
         LoadingPopup.showMessage( "Exporting 'drools:repository' file" );
         Window.open( GWT.getModuleBaseURL() + "fileManager?" + HTMLFileManagerFields.FORM_FIELD_REPOSITORY + "=true",
                      "downloading...",

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImportWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImportWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/ImportWidget.java	2007-04-29 15:24:38 UTC (rev 11441)
@@ -0,0 +1,85 @@
+package org.drools.brms.client.common;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.FileUpload;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This builds an ImportWidget for providing common import file features in a 
+ * form layout
+ * 
+ * @author Fernando Meyer
+ */
+
+public class ImportWidget extends FormPanel {
+    
+    private HorizontalPanel panel;
+    private FileUpload upload; 
+    
+    
+    /**
+     * 
+     * @param field
+     * @param uuid
+     */
+    public ImportWidget(String field, String uuid) {
+        initWidgets( field, uuid );
+    }
+    
+    /**
+     * 
+     * @param field
+     */
+    public ImportWidget (String field) {
+        initWidgets( field, null );
+    }
+    
+    /**
+     * 
+     * @param field
+     * @param uuid
+     */
+    public void initWidgets(String field, String uuid) {
+        panel = new HorizontalPanel();
+
+        setAction( GWT.getModuleBaseURL() + "fileManager" );
+        setEncoding( FormPanel.ENCODING_MULTIPART );
+        setMethod( FormPanel.METHOD_POST );
+
+        setWidget( panel );
+
+        upload = new FileUpload();
+        
+        if ( uuid != null ) { 
+            panel.add( getHiddenField(HTMLFileManagerFields.FORM_FIELD_UUID, uuid) );
+        }
+        upload.setName( field );
+
+        panel.add( upload );
+        
+    }
+
+    /**
+     * Override the add method to insert widget on internal panel  
+     */
+    public void add (Widget a) {
+        panel.add( a );
+    }
+    
+    public String getFilename() {
+        return upload.getFilename();
+    }
+    
+    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/packages/ModelAttachmentFileWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java	2007-04-29 15:12:42 UTC (rev 11440)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java	2007-04-29 15:24:38 UTC (rev 11441)
@@ -3,25 +3,21 @@
 import org.drools.brms.client.common.ErrorPopup;
 import org.drools.brms.client.common.FormStyleLayout;
 import org.drools.brms.client.common.HTMLFileManagerFields;
+import org.drools.brms.client.common.ImportWidget;
+import org.drools.brms.client.common.LoadingPopup;
 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;
 
 /**
@@ -35,41 +31,55 @@
 public class ModelAttachmentFileWidget extends Composite {
 
 
-    private FormPanel form;
     private Button ok;
     private HorizontalPanel busy;
-    private RuleViewer viewer;
     
 
-    public ModelAttachmentFileWidget(final RuleAsset asset, final RuleViewer viewer) {
-        this.viewer = viewer;
+    public ModelAttachmentFileWidget(final RuleAsset asset ) {
         initWidgets(asset.uuid, asset.metaData.name);
-        initAssetHandlers();
     }
     
-    protected void initWidgets(final String uuid, String formName) {
-        form = new FormPanel();
-        form.setAction( GWT.getModuleBaseURL() + "fileManager" );
-        form.setEncoding( FormPanel.ENCODING_MULTIPART );
-        form.setMethod( FormPanel.METHOD_POST );
+    private Widget newImportWidget(final String uuid) {
+
+        final ImportWidget impWidget = new ImportWidget( HTMLFileManagerFields.UPLOAD_FIELD_NAME_ATTACH, uuid);
+
+        impWidget.add( new Button( "Import", new ClickListener() {
+           public void onClick(Widget sender) {
+               doImportFile();
+           }
         
-        FileUpload up = new FileUpload();
-        up.setName( HTMLFileManagerFields.UPLOAD_FIELD_NAME_ATTACH );        
-        HorizontalPanel fields = new HorizontalPanel();
-        fields.add( getHiddenField(HTMLFileManagerFields.FORM_FIELD_UUID, uuid) );
-  
-        ok = new Button("Upload");
-                
-        fields.add( up );
-        fields.add( ok );
+           private void doImportFile() {
+               if ( Window.confirm( "Are you sure you want to import? this will erase the previous file?" ) ) {  
+                   LoadingPopup.showMessage( "Importing file to asset" );
+                   impWidget.submit();
+               }
+           }
+           
+        } ) );
+
+        impWidget.addFormHandler( new FormHandler() {
+            public void onSubmitComplete(FormSubmitCompleteEvent event) {
+                if (event.getResults().indexOf( "OK" ) > -1) {
+                    Window.alert( "File imported successfully. Please refresh your browser (F5) to show the new content. ");
+                } else {
+                    ErrorPopup.showMessage( "Unable to import into the repository. Consult the server logs for error messages." );
+                }                
+                LoadingPopup.close();
+            }
+
+            public void onSubmit(FormSubmitEvent event) {
+
+            }
+        } );
         
-        form.add( fields );
-        
+        return impWidget;
+    }
+    
+    
+    protected void initWidgets(final String uuid, String formName) {
         FormStyleLayout layout = new FormStyleLayout("images/model_large.png", 
                                                      formName);
-
-        
-        layout.addAttribute( "Upload new version:", form );
+        layout.addAttribute( "Upload new version:", newImportWidget(uuid) );
         Button dl = new Button("Download");
         dl.addClickListener( new ClickListener() {
             public void onClick(Widget w) {
@@ -85,55 +95,16 @@
         busy.add( new Image("images/spinner.gif") );
         
         layout.addRow( busy );
-        ok.addClickListener( new ClickListener() {
-            public void onClick(Widget w) {
-                showUploadingBusy();
-                submitUpload();
-            }            
-        });
-                
         initWidget( layout );
         
         this.setStyleName( "editable-Surface" );        
     }
-    
-    void initAssetHandlers( ) {
-        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." );
-                    }
-            }
-            
-        });        
-    }
-
-    protected void submitUpload() {
-        DeferredCommand.add( new Command() {
-            public void execute() {
-                form.submit();
-            }            
-        });
-    }
-
     protected void showUploadingBusy() {
         this.ok.setVisible( false );
-        this.form.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-04-29 15:12:42 UTC (rev 11440)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-04-29 15:24:38 UTC (rev 11441)
@@ -40,8 +40,7 @@
         } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {
             return new DSLRuleEditor( asset );
         } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
-            return new ModelAttachmentFileWidget( asset,
-                                                  viewer );
+            return new ModelAttachmentFileWidget( asset );
         } else {
 
             return new DefaultRuleContentWidget( asset );

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	2007-04-29 15:12:42 UTC (rev 11440)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java	2007-04-29 15:24:38 UTC (rev 11441)
@@ -175,7 +175,10 @@
             public void onSuccess(Object o) {
                 String uuid = (String)o;
                 
-                ((DirtyableComposite) editor).resetDirty();
+                if ( editor instanceof DirtyableComposite ) {
+                    ((DirtyableComposite) editor).resetDirty();
+                }
+                
                 metaWidget.resetDirty();
                 doco.resetDirty();
                 

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-04-29 15:12:42 UTC (rev 11440)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java	2007-04-29 15:24:38 UTC (rev 11441)
@@ -12,9 +12,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.drools.brms.client.admin.BackupManager;
 import org.drools.brms.client.common.HTMLFileManagerFields;
-import org.drools.brms.client.packages.ModelAttachmentFileWidget;
 import org.drools.brms.server.util.FileManagerUtils;
 import org.drools.brms.server.util.FormData;
 import org.drools.brms.server.util.TestEnvironmentSessionHelper;
@@ -43,9 +41,8 @@
     protected void doPost(HttpServletRequest request,
                           HttpServletResponse response) throws ServletException,
                                                        IOException {
-        response.setContentType( "text/plain" );
         FormData uploadItem = new FileManagerUtils().getFormData( request );
-
+        
         if ( uploadItem.getFile().getFieldName().equals( HTMLFileManagerFields.FILE_UPLOAD_FIELD_NAME_IMPORT ) ) {
             //importing a while repo
             response.getWriter().write(processImportRepository( uploadItem.getFile().getInputStream() ));
@@ -125,6 +122,7 @@
         RulesRepository repo = getRepository();
 
         uploadHelper.attachFile( uploadItem, repo );
+        
         uploadItem.getFile().getInputStream().close();
         
         return "OK";




More information about the jboss-svn-commits mailing list