[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