[jboss-svn-commits] JBL Code SVN: r9586 - in labs/jbossrules/trunk/drools-jbrms/src/main: java/org/drools/brms/client and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 19 03:16:45 EST 2007
Author: michael.neale at jboss.com
Date: 2007-02-19 03:16:44 -0500 (Mon, 19 Feb 2007)
New Revision: 9586
Added:
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/public/images/model_large.png
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/spinner.gif
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.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/RulesFeature.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/LoadingPopup.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.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/public/JBRMS.css
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_asset.gif
labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml
Log:
JBRULES-668 model upload/attach
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-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/JBRMS.gwt.xml 2007-02-19 08:16:44 UTC (rev 9586)
@@ -8,5 +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"/>
+
</module>
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java 2007-02-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -191,6 +191,8 @@
icon = "dsl.gif";
} else if (asset.metaData.format.equals( AssetFormats.FUNCTION )) {
icon = "function_assets.gif";
+ } else if (asset.metaData.format.equals( AssetFormats.MODEL )) {
+ icon = "model_asset.gif";
}
tab.add( view, "<img src='images/" + icon + "'>" + displayName, true );
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java 2007-02-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/AssetFormats.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -19,8 +19,9 @@
public static final String FUNCTION = "function";
/** For "model" assets */
- public static final String MODEL = "model";
+ public static final String MODEL = "jar";
+ /** For DSL language grammars */
public static final String DSL = "dsl";
/** Vanilla DRL "file" */
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/LoadingPopup.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/LoadingPopup.java 2007-02-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/LoadingPopup.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -25,6 +25,7 @@
super(true);
panel.add( errorMessage );
panel.add( ok );
+ panel.add( new Image("images/searching.gif") );
ok.addClickListener( new ClickListener() {
public void onClick(Widget arg0) {
hide();
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -0,0 +1,123 @@
+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 + "." + asset.metaData.format);
+
+
+ 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) {
+ Window.alert( "Model archive was uploaded successfully.");
+ 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;
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelArchiveFileWidget.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java 2007-02-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -117,6 +117,26 @@
}
});
+ Image uploadModel = new Image("images/model_asset.gif");
+ uploadModel.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ int left = 70;
+ int top = 100;
+
+ NewAssetWizard pop = new NewAssetWizard(new EditItemEvent() {
+ public void open(String key) {
+ editEvent.open( key );
+ }
+ }, false, AssetFormats.MODEL, "Create a new model archive");
+ pop.setPopupPosition( left, top );
+
+ pop.show();
+ }
+ });
+ uploadModel.setTitle( "This creates a new model archive - models contain classes/types that rules use." );
+
+ newWizards.add( uploadModel );
+
Image newRule = new Image("images/new_rule.gif");
newRule.setTitle( "Create new rule" );
@@ -183,10 +203,15 @@
}
+
+
+
+
+
private void refreshTreeView() {
+ LoadingPopup.showMessage( "Loading list of packages ..." );
-
RepositoryServiceFactory.getService().listRulePackages( new GenericCallback() {
public void onSuccess(Object data) {
@@ -197,6 +222,7 @@
addPackage( packages[i] );
}
+ LoadingPopup.close();
}
});
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-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -4,6 +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.rpc.DSLRuleData;
import org.drools.brms.client.rpc.RuleAsset;
import org.drools.brms.client.rpc.RuleModelData;
@@ -27,14 +28,17 @@
/**
* This will return the appropriate viewer for the asset.
*/
- public static Widget getEditorViewer(RuleAsset asset) {
+ public static Widget getEditorViewer(RuleAsset asset, RuleViewer viewer) {
//depending on the format, load the appropriate editor
if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
return new RuleModeller( getSuggestionCompletionEngine(asset), getRuleModel(asset) );
} else if (asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE )){
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);
} 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-02-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleViewer.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -112,7 +112,7 @@
//REMEMBER: subsequent rows have only one column, doh that is confusing !
//GAAAAAAAAAAAAAAAAAAAAAAAAAAH
- layout.setWidget( 1, 0, EditorLauncher.getEditorViewer(asset));
+ layout.setWidget( 1, 0, EditorLauncher.getEditorViewer(asset, this));
//the document widget
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2007-02-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2007-02-19 08:16:44 UTC (rev 9586)
@@ -326,8 +326,8 @@
}
.loading-Popup {
- background-color: #FDFCDC;
- border: 1px solid #B8B8B8;
+ //background-color: #FDFCDC;
+ border: 2px solid #B8B8B8;
padding: 4px;
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_asset.gif
===================================================================
(Binary files differ)
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_large.png
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_large.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/spinner.gif
===================================================================
(Binary files differ)
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/spinner.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java 2007-02-19 08:16:44 UTC (rev 9586)
@@ -0,0 +1,74 @@
+package org.drools.brms.server;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+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.repository.RulesRepositoryException;
+
+/**
+ * Files can be uploaded as part of the repo (eg model classes, spreadsheets).
+ *
+ * @author Michael Neale
+ */
+public class FileUploadServlet extends HttpServlet {
+
+ protected void doPost(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException,
+ IOException {
+ response.setContentType( "text/plain" );
+
+ FormData uploadItem = getFileItem( request );
+ if ( uploadItem.file == null || uploadItem.uuid == null) {
+ response.getWriter().write( "NO-SCRIPT-DATA" );
+ return;
+ }
+
+ //TODO: this is where we attach the file to the asset.
+
+ response.getWriter().write( "OK" );
+ }
+
+ /**
+ * This will return the file and the Asset UUID that it is to be attached to.
+ */
+ private FormData getFileItem(HttpServletRequest request) {
+ FileItemFactory factory = new DiskFileItemFactory();
+ ServletFileUpload upload = new ServletFileUpload( factory );
+
+ FormData data = new FormData();
+ try {
+ List items = upload.parseRequest( request );
+ Iterator it = items.iterator();
+ while ( it.hasNext() ) {
+ FileItem item = (FileItem) it.next();
+ if (item.isFormField() && item.getFieldName().equals( ModelArchiveFileWidget.FORM_FIELD_UUID )) {
+ data.uuid = item.getString();
+ } else if ( !item.isFormField() ) {
+ data.file = item;
+ }
+ }
+ return data;
+ } catch ( FileUploadException e ) {
+ throw new RulesRepositoryException( e );
+ }
+
+ }
+
+ static class FormData {
+ FileItem file;
+ String uuid;
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
___________________________________________________________________
Name: svn:eol-style
+ native
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-19 01:34:49 UTC (rev 9585)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/webapp/WEB-INF/web.xml 2007-02-19 08:16:44 UTC (rev 9586)
@@ -9,10 +9,20 @@
<servlet-name>JBRMSServiceServlet</servlet-name>
<servlet-class>org.drools.brms.server.JBRMSServiceServlet</servlet-class>
</servlet>
+
+ <servlet>
+ <servlet-name>FileUploadServlet</servlet-name>
+ <servlet-class>org.drools.brms.server.FileUploadServlet</servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>JBRMSServiceServlet</servlet-name>
<url-pattern>/org.drools.brms.JBRMS/jbrmsService</url-pattern>
</servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>FileUploadServlet</servlet-name>
+ <url-pattern>/org.drools.brms.JBRMS/upload</url-pattern>
+ </servlet-mapping>
</web-app>
More information about the jboss-svn-commits
mailing list