You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by cr...@apache.org on 2006/09/11 22:51:32 UTC

svn commit: r442348 - in /shale/sandbox: shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/ shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/ shale-dialog2/src/main/java/org/apache/shale/dialog2/

Author: craigmcc
Date: Mon Sep 11 13:51:32 2006
New Revision: 442348

URL: http://svn.apache.org/viewvc?view=rev&rev=442348
Log:
For symmetry with start(), and a stop() method to encapsulate
programmatically stopping an existing DialogContext instance
prematurely.

Modified:
    shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyDialogContext.java
    shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/SCXMLDialogContext.java
    shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/DialogContext.java

Modified: shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyDialogContext.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyDialogContext.java?view=diff&rev=442348&r1=442347&r2=442348
==============================================================================
--- shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyDialogContext.java (original)
+++ shale/sandbox/shale-dialog2-legacy/src/main/java/org/apache/shale/dialog2/legacy/LegacyDialogContext.java Mon Sep 11 13:51:32 2006
@@ -25,6 +25,7 @@
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
 import javax.faces.el.MethodBinding;
+import org.apache.shale.dialog2.Constants;
 import org.apache.shale.dialog2.DialogContext;
 import org.apache.shale.dialog2.DialogContextManager;
 import org.apache.shale.dialog2.legacy.config.ConfigurationParser;
@@ -266,7 +267,7 @@
                 pop();
                 position = peek();
                 if (position == null) {
-                    deactivate();
+                    stop(context);
                 }
                 return ((EndState) state).getViewId();
             } else if (state instanceof SubdialogState) {
@@ -317,13 +318,29 @@
     }
 
 
+    /** {@inheritDoc} */
+    public void stop(FacesContext context) {
+
+        if (!started) {
+            throw new IllegalStateException("Dialog instance '"
+                    + getId() + "' for dialog name '"
+                    + getName() + "' has not yet been started");
+        }
+        started = false;
+        deactivate();
+        manager.remove(this);
+
+    }
+
+
     // ------------------------------------------------- Package Private Methods
 
 
     /**
      * <p>Mark this {@link DialogContext} as being deactivated.  This should only
      * be called by the <code>remove()</code> method on our associated
-     * {@link DialogContextManager}.</p>
+     * {@link DialogContextManager}, or the logic of our <code>stop()</code>
+     * method.</p>
      */
     void deactivate() {
 

Modified: shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/SCXMLDialogContext.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/SCXMLDialogContext.java?view=diff&rev=442348&r1=442347&r2=442348
==============================================================================
--- shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/SCXMLDialogContext.java (original)
+++ shale/sandbox/shale-dialog2-scxml/src/main/java/org/apache/shale/dialog2/scxml/SCXMLDialogContext.java Mon Sep 11 13:51:32 2006
@@ -190,6 +190,12 @@
     }
 
 
+    /** {@inheritDoc} */
+    public void stop(FacesContext context) {
+        throw new UnsupportedOperationException(); // FIXME - implement this
+    }
+
+
     // ------------------------------------------------- Package Private Methods
 
 

Modified: shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/DialogContext.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/DialogContext.java?view=diff&rev=442348&r1=442347&r2=442348
==============================================================================
--- shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/DialogContext.java (original)
+++ shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/DialogContext.java Mon Sep 11 13:51:32 2006
@@ -114,4 +114,16 @@
     public void start(FacesContext context);
 
 
+    /**
+     * <p>Stop the execution of a currently running dialog context instance,
+     * resulting in no currently active dialog for the current JSF view.</p>
+     *
+     * @param context FacesContext for the current request
+     *
+     * @exception IllegalStateException if this {@link DialogContext}
+     *  instance has not yet been started
+     */
+    public void stop(FacesContext context);
+
+
 }