changeset 13:8d9075c07667

Enhanced the CollectionView: there are radio buttons for each module and a button to select one of those. flys-client/trunk@1322 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 17 Feb 2011 09:17:37 +0000 (2011-02-17)
parents fa0aad20af53
children fe2f4d1dd784
files flys-client/ChangeLog flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages.java flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages_de.properties flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages_en.properties flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java
diffstat 5 files changed, 78 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/flys-client/ChangeLog	Thu Feb 17 08:31:33 2011 +0000
+++ b/flys-client/ChangeLog	Thu Feb 17 09:17:37 2011 +0000
@@ -1,3 +1,18 @@
+2011-02-16  Ingo Weinzierl <ingo@intevation.de>
+
+	* src/main/java/de/intevation/flys/client/client/ui/CollectionView.java:
+	  This view will now display radio buttons to choose between the module
+	  'WINFO', 'MINFO', 'Map' and 'Fix-Analyse'. A button is shown to create an
+	  artifact of the selected module.
+
+	  NOTE: The next step here is to use the returning artifact with its
+	  description and display widgets based on these information.
+
+	* src/main/java/de/intevation/flys/client/client/FLYSMessages_en.properties,
+	  src/main/java/de/intevation/flys/client/client/FLYSMessages_de.properties,
+	  src/main/java/de/intevation/flys/client/client/FLYSMessages.java: Added
+	  i18n strings for the CollectionView's 'next' button.
+
 2011-02-16  Ingo Weinzierl <ingo@intevation.de>
 
 	* src/main/java/de/intevation/flys/client/shared/model/ArtifactDescription.java,
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages.java	Thu Feb 17 08:31:33 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages.java	Thu Feb 17 09:17:37 2011 +0000
@@ -43,5 +43,8 @@
 
     @DefaultMessage("TODO FIX ANALYSE TODO")
     String fix();
+
+    @DefaultMessage("Next")
+    String next();
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages_de.properties	Thu Feb 17 08:31:33 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages_de.properties	Thu Feb 17 09:17:37 2011 +0000
@@ -10,3 +10,4 @@
 minfo = MINFO
 map = Karte
 fix = Fixierungsanalyse
+next = Weiter
--- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages_en.properties	Thu Feb 17 08:31:33 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSMessages_en.properties	Thu Feb 17 09:17:37 2011 +0000
@@ -10,3 +10,4 @@
 minfo = MINFO
 map = Map
 fix = TODO FIX ANALYSE TODO
+next = Next
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java	Thu Feb 17 08:31:33 2011 +0000
+++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java	Thu Feb 17 09:17:37 2011 +0000
@@ -2,20 +2,25 @@
 
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.i18n.client.DateTimeFormat;
-import com.google.gwt.user.client.ui.RadioButton;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 
 import com.smartgwt.client.widgets.Canvas;
+import com.smartgwt.client.widgets.IButton;
 import com.smartgwt.client.widgets.Window;
+import com.smartgwt.client.widgets.events.ClickEvent;
+import com.smartgwt.client.widgets.events.ClickHandler;
 import com.smartgwt.client.widgets.form.DynamicForm;
 import com.smartgwt.client.widgets.form.fields.RadioGroupItem;
-import com.smartgwt.client.widgets.layout.HLayout;
 import com.smartgwt.client.widgets.layout.VLayout;
 import com.smartgwt.client.widgets.tab.Tab;
-import com.smartgwt.client.widgets.tab.TabSet;
 
+import de.intevation.flys.client.shared.model.Artifact;
 import de.intevation.flys.client.shared.model.Collection;
 
+import de.intevation.flys.client.client.FLYS;
 import de.intevation.flys.client.client.FLYSMessages;
+import de.intevation.flys.client.client.services.ArtifactService;
+import de.intevation.flys.client.client.services.ArtifactServiceAsync;
 
 
 /**
@@ -23,12 +28,23 @@
  */
 public class CollectionView extends Window {
 
+    /** The ArtifactService used to communicate with the Artifact server. */
+    protected ArtifactServiceAsync artifactService =
+        GWT.create(ArtifactService.class);
+
     /** The message class that provides i18n strings.*/
     FLYSMessages messages = GWT.create(FLYSMessages.class);
 
+    /** The FLYS instance used to call services.*/
+    protected FLYS flys;
+
     /** The collection to be displayed.*/
     protected Collection collection;
 
+    /** TODO The artifact needs to be removed here after the Collection stuff in
+     * the server has been finished! */
+    protected Artifact artifact;
+
     /** The parameter tab.*/
     protected Tab parameterTab;
 
@@ -42,7 +58,8 @@
      *
      * @param collection The collection to be displayed.
      */
-    public CollectionView(Collection collection) {
+    public CollectionView(FLYS flys, Collection collection) {
+        this.flys       = flys;
         this.collection = collection;
 
         init();
@@ -88,7 +105,7 @@
      * @return a Canvas that displays the plugins of FLYS.
      */
     protected Canvas renderNew() {
-        HLayout layout = new HLayout();
+        VLayout layout = new VLayout();
         layout.setWidth100();
 
         DynamicForm    form  = new DynamicForm();
@@ -104,9 +121,45 @@
 
         form.setFields(radio);
 
+        IButton go = new IButton(messages.next());
+        go.addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                artifactService.create("winfo", new AsyncCallback<Artifact>() {
+                    public void onFailure(Throwable caught) {
+                        GWT.log("Could not create the new artifact.");
+                        GWT.log(caught.getMessage());
+                    }
+
+                    public void onSuccess(Artifact artifact) {
+                        GWT.log("Successfully created a new artifact.");
+                        setArtifact(artifact);
+                    }
+                });
+            }
+        });
+
         layout.addMember(form);
+        layout.addMember(go);
 
         return layout;
     }
+
+
+    /**
+     * Set the current artifact.
+     *
+     * @param artifact The new artifact.
+     */
+    protected void setArtifact(Artifact artifact) {
+        this.artifact = artifact;
+
+        updateView();
+    }
+
+
+    protected void updateView() {
+        GWT.log("Update the view of the artifact: " + artifact.getUuid());
+        // TODO display the artifact information / data
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org