[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