[jboss-svn-commits] JBL Code SVN: r21134 - in labs/jbossrules/trunk/drools-guvnor: src/main/java/org/drools/guvnor and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jul 20 09:01:15 EDT 2008
Author: arhan
Date: 2008-07-20 09:01:15 -0400 (Sun, 20 Jul 2008)
New Revision: 21134
Added:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ImageSetWidget.java
Modified:
labs/jbossrules/trunk/drools-guvnor/build.xml
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
Log:
GSOC2008: ImageSetWidget, initial version.
- supports one image per RuleAsset
- requires refactoring
- makes use of rolodex widget
Modified: labs/jbossrules/trunk/drools-guvnor/build.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/build.xml 2008-07-20 10:48:17 UTC (rev 21133)
+++ labs/jbossrules/trunk/drools-guvnor/build.xml 2008-07-20 13:01:15 UTC (rev 21134)
@@ -18,7 +18,7 @@
<gwt:compile outDir="target/gwt-compiled-output"
gwtHome="${gwt.home}"
classBase="org.drools.guvnor.Guvnor"
- sourceclasspath="src/main/java; ../drools-compiler/src/main/java; ../lib/gwtext.jar"
+ sourceclasspath="src/main/java; ../drools-compiler/src/main/java; ../lib/gwtext.jar;../lib/gwt-rolodex-gwt15-1.1.jar"
/>
<!-- get rid of old -->
<delete>
@@ -35,7 +35,7 @@
</target>
<target name="gwt-shell">
- <gwt:shell sourceclasspath="src/main/java/; ../drools-compiler/src/main/java"
+ <gwt:shell sourceclasspath="src/main/java/; ../drools-compiler/src/main/java; ../lib/gwt-rolodex-gwt15-1.1.jar"
bindir="target/classes"
outDir="src/main/webapp"
gwtHome="${gwt.home}"
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml 2008-07-20 10:48:17 UTC (rev 21133)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/Guvnor.gwt.xml 2008-07-20 13:01:15 UTC (rev 21134)
@@ -3,6 +3,7 @@
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<inherits name="com.gwtext.GwtExt"/>
+ <inherits name='com.yesmail.gwt.rolodex.Rolodex'/>
<!-- Specify the app entry point class. -->
<!-- <entry-point class='org.drools.guvnor.client.JBRMS'/> -->
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java 2008-07-20 10:48:17 UTC (rev 21133)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/AssetFormats.java 2008-07-20 13:01:15 UTC (rev 21134)
@@ -16,7 +16,6 @@
*/
-
/**
* Keeps track of the different rule formats we support.
* Each format type corresponds to the dublin core "format" attribute.
@@ -26,9 +25,7 @@
*
* If an asset type is unknown, then it will be opened with the default editor.
*
- *
* @author Michael Neale
- *
*/
public class AssetFormats {
@@ -69,10 +66,13 @@
/** For fact models in drl. */
public static final String DRL_MODEL = "model.drl";
+ /** for a set of images */
+ public static final String IMAGE_SET = "image-set";
+
/**
* The following group the assets together for lists, helpers etc...
*/
- public static final String[] BUSINESS_RULE_FORMATS = new String[] {AssetFormats.BUSINESS_RULE, AssetFormats.DSL_TEMPLATE_RULE, AssetFormats.DECISION_SPREADSHEET_XLS, AssetFormats.DECISION_TABLE_GUIDED};
+ public static final String[] BUSINESS_RULE_FORMATS = new String[]{AssetFormats.BUSINESS_RULE, AssetFormats.DSL_TEMPLATE_RULE, AssetFormats.DECISION_SPREADSHEET_XLS, AssetFormats.DECISION_TABLE_GUIDED, AssetFormats.IMAGE_SET};
/**
@@ -95,6 +95,4 @@
}
-
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java 2008-07-20 10:48:17 UTC (rev 21133)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerLayoutManager.java 2008-07-20 13:01:15 UTC (rev 21134)
@@ -410,6 +410,14 @@
}
}, "images/gdst.gif"));
+ //TODO: new icon
+ //TODO: refactor this methid to a class, make menus pluggable
+ m.addItem(new Item("New ImageSet", new BaseItemListenerAdapter() {
+ public void onClick(BaseItem item, EventObject e) {
+ launchWizard(AssetFormats.IMAGE_SET, "New ImageSet", true);
+ }
+ }, "images/rule_asset.gif"));
+
m.addItem(new Item("New Test Scenario", new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
launchWizard(AssetFormats.TEST_SCENARIO,
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java 2008-07-20 10:48:17 UTC (rev 21133)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/EditorLauncher.java 2008-07-20 13:01:15 UTC (rev 21134)
@@ -52,9 +52,6 @@
/**
* This will return the appropriate viewer for the asset.
- *
- * TODO: the method to be changed in order to make the editors pluggable
- * TODO: look at http://gwtreflection.sourceforge.net/
*/
public static Widget getEditorViewer(RuleAsset asset,
RuleViewer viewer) {
@@ -80,6 +77,8 @@
return new RuleValidatorWrapper(new GuidedDecisionTableWidget(asset), asset);
} else if (asset.metaData.format.equals(AssetFormats.DRL_MODEL)) {
return new RuleValidatorWrapper(new FactModelWidget(asset), asset);
+ } else if (asset.metaData.format.equals(AssetFormats.IMAGE_SET)) {
+ return new ImageSetWidget(asset, viewer);
} else {
return new DefaultContentUploadEditor( asset, viewer );
}
Added: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ImageSetWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ImageSetWidget.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ImageSetWidget.java 2008-07-20 13:01:15 UTC (rev 21134)
@@ -0,0 +1,173 @@
+package org.drools.guvnor.client.ruleeditor;
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.guvnor.client.common.*;
+import org.drools.guvnor.client.rpc.RuleAsset;
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.ui.*;
+import com.google.gwt.user.client.ui.impl.ClippedImagePrototype;
+import com.google.gwt.user.client.Window;
+import com.yesmail.gwt.rolodex.client.RolodexPanel;
+import com.yesmail.gwt.rolodex.client.RolodexCardBundle;
+import com.yesmail.gwt.rolodex.client.RolodexCard;
+
+/**
+ * ImageSetWidget - allows to use images as assets. Can upload images one by one and display them as a deck of cards (using rolodex).
+ *
+ * TODO: support in content handler to enable multiple images and carry out graphic routines
+ * TODO: refactor initWidgets (as it was copypasted from AssetAttachmentFileWidget
+ * TODO: The "Loading.." popup doesn't close
+ * TODO: functional features ?
+ *
+ */
+public class ImageSetWidget extends DirtyableComposite {
+
+ private FormPanel form;
+ private ImageButton ok;
+ private RuleViewer viewer;
+ private FormStyleLayout layout;
+ private RuleAsset asset;
+
+ public ImageSetWidget(RuleAsset asset, RuleViewer viewer) {
+ this.asset = asset;
+ this.viewer = viewer;
+ initWidgets(asset.uuid, asset.metaData.name);
+ }
+
+ private void initWidgets(final String uuid, String formName) {
+ form = new FormPanel();
+ form.setAction(GWT.getModuleBaseURL() + "asset");
+ form.setEncoding(FormPanel.ENCODING_MULTIPART);
+ form.setMethod(FormPanel.METHOD_POST);
+
+ 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 ImageButton("images/upload.gif", "Upload");
+
+ fields.add(up);
+ fields.add(new Label("upload:"));
+ fields.add(ok);
+
+ form.add(fields);
+
+ layout = new FormStyleLayout("images/upload.gif", formName);
+
+ createRolodexPanel();
+
+ if (!this.asset.isreadonly)
+ layout.addAttribute("Upload new version:", form);
+
+ Button dl = new Button("Download");
+ dl.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ Window.open(GWT.getModuleBaseURL() + "asset?" + HTMLFileManagerFields.FORM_FIELD_UUID + "=" + uuid,
+ "downloading", "resizable=no,scrollbars=yes,status=no");
+ }
+ });
+ layout.addAttribute("Download current version:", dl);
+
+ ok.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ showUploadingBusy();
+ submitUpload();
+ }
+ });
+
+ initWidget(layout);
+ layout.setWidth("100%");
+ this.setStyleName(getOverallStyleName());
+ }
+
+ private void createRolodexPanel() {
+ RolodexCardBundle images = getImagesFromAsset();
+ RolodexCard[] rolodexCards = images.getRolodexCards();
+ if (rolodexCards.length > 0) {
+ final RolodexPanel rolodex = new RolodexPanel(images, 3, rolodexCards[0], true);
+ rolodex.setHeight("200px");
+ layout.addRow(rolodex);
+ }
+ }
+
+ protected void submitUpload() {
+ form.submit();
+ }
+
+ protected void showUploadingBusy() {
+ LoadingPopup.showMessage("Uploading...");
+ }
+
+ void initAssetHandlers() {
+ form.addFormHandler(new FormHandler() {
+ public void onSubmit(FormSubmitEvent ev) {
+ }
+
+ public void onSubmitComplete(FormSubmitCompleteEvent ev) {
+ LoadingPopup.close();
+ if (ev.getResults().indexOf("OK") > -1) {
+ Window.alert("File was uploaded successfully.");
+ viewer.refreshDataAndView();
+ } else {
+ ErrorPopup.showMessage("Unable to upload the file.");
+ }
+ }
+ });
+ }
+
+ private TextBox getHiddenField(String name, String value) {
+ TextBox t = new TextBox();
+ t.setName(name);
+ t.setText(value);
+ t.setVisible(false);
+ return t;
+ }
+
+ //TODO: new icon
+ public String getIcon() {
+ return "images/decision_table.png";
+ }
+
+ //TODO: ?
+ public String getOverallStyleName() {
+ return "decision-Table-upload";
+ }
+
+ /**
+ * TODO: create a bundle of images using asset.content
+ */
+ public RolodexCardBundle getImagesFromAsset() {
+ return new RolodexCardBundle() {
+ public int getMaxHeight() {
+ return 80;
+ }
+
+ ClippedImagePrototype clip = new ClippedImagePrototype(
+ GWT.getModuleBaseURL() + "asset?" + HTMLFileManagerFields.FORM_FIELD_UUID + "=" + asset.uuid,
+ 0, 0, 300, 200
+ );
+
+ RolodexCard card = new RolodexCard(clip, clip, clip, 300, 100, 10);
+
+ public RolodexCard[] getRolodexCards() {
+ return new RolodexCard[]{card};
+ }
+ };
+
+ }
+}
More information about the jboss-svn-commits
mailing list