Revision: 8084
Author: rj...@google.com
Date: Mon May 10 21:33:59 2010
Log: No more double warning on canceled New

http://code.google.com/p/google-web-toolkit/source/detail?r=8084

Modified:
/branches/2.1/bikeshed/src/com/google/gwt/valuestore/ui/AbstractRecordEditActivity.java

=======================================
--- /branches/2.1/bikeshed/src/com/google/gwt/valuestore/ui/AbstractRecordEditActivity.java Fri May 7 15:22:39 2010 +++ /branches/2.1/bikeshed/src/com/google/gwt/valuestore/ui/AbstractRecordEditActivity.java Mon May 10 21:33:59 2010
@@ -34,13 +34,14 @@
public abstract class AbstractRecordEditActivity<R extends Record> implements
     Activity, RecordEditView.Delegate {

-  private String id;
   private final RequestFactory requests;
   private final boolean creating;
-  private String futureId;
-
-  private RecordEditView<R> view;
+  private final RecordEditView<R> view;
+
+  private String id;
+  private String futureId;
   private DeltaValueStore deltas;
+  private Display display;

   public AbstractRecordEditActivity(RecordEditView<R> view, String id,
       RequestFactory requests) {
@@ -53,7 +54,12 @@

   public void cancelClicked() {
     if (willStop()) {
-      exit();
+      deltas = null; // silence the next willStop() call when place changes
+      if (creating) {
+        display.showActivityWidget(null);
+      } else {
+        exit();
+      }
     }
   }

@@ -62,7 +68,7 @@
   }

   public void onStop() {
-    this.view = null;
+    this.display = null;
   }

   public void saveClicked() {
@@ -74,7 +80,7 @@

Receiver<Set<SyncResult>> receiver = new Receiver<Set<SyncResult>>() {
         public void onSuccess(Set<SyncResult> response) {
-          if (view == null) {
+          if (display == null) {
             return;
           }
           boolean hasViolations = false;
@@ -112,7 +118,9 @@
   }

   @SuppressWarnings("unchecked")
-  public void start(final Display display) {
+  public void start(Display display) {
+    this.display = display;
+
     view.setDelegate(this);
     view.setDeltaValueStore(deltas);
     view.setCreating(creating);
@@ -126,8 +134,8 @@
     } else {
       fireFindRequest(Value.of(id), new Receiver<R>() {
         public void onSuccess(R record) {
-          if (view != null) {
-            doStart(display, record);
+          if (AbstractRecordEditActivity.this.display != null) {
+            doStart(AbstractRecordEditActivity.this.display, record);
           }
         }
       });

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to