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 2007/01/24 07:10:09 UTC

svn commit: r499272 - in /shale/framework/trunk: shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/ shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/ shale-dialog/sr...

Author: craigmcc
Date: Tue Jan 23 22:10:08 2007
New Revision: 499272

URL: http://svn.apache.org/viewvc?view=rev&rev=499272
Log:
Implement a helper class with static methods to look up the
DialogContextManager for the current user, or the active DialogContext
for the current request (if any), so that applications do not need to
depend on accessing scoped variables directly.  Use these helper methods
to simplify the code both within the Dialog Manager implementations, and
in the test apps.

SHALE-397

Added:
    shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java   (with props)
Modified:
    shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Popup.java
    shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Wizard.java
    shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Popup.java
    shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Wizard.java
    shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogNavigationHandler.java
    shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogPhaseListener.java
    shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogVariableResolver.java

Modified: shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Popup.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Popup.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Popup.java (original)
+++ shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Popup.java Tue Jan 23 22:10:08 2007
@@ -24,6 +24,7 @@
 
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p>Event handlers for the "PopUp" dialog.</p>
@@ -64,9 +65,7 @@
         String state = (String) vb.getValue(context);
 
         // Set the currently selected state into our dialog data
-        DialogContext dcontext = (DialogContext)
-          context.getApplication().getVariableResolver().
-          resolveVariable(context, Constants.CONTEXT_BEAN);
+        DialogContext dcontext = DialogHelper.getDialogContext(context);
         PopupData data = (PopupData) dcontext.getData();
         data.setState(state);
 

Modified: shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Wizard.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Wizard.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Wizard.java (original)
+++ shale/framework/trunk/shale-apps/shale-test-dialog-basic/src/main/java/org/apache/shale/examples/test/dialog/basic/Wizard.java Tue Jan 23 22:10:08 2007
@@ -26,6 +26,7 @@
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
 import org.apache.shale.dialog.DialogContextManager;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p>Utility actions for the wizard dialog series of tests.</p>
@@ -80,9 +81,7 @@
     public String setup() {
 
         FacesContext context = FacesContext.getCurrentInstance();
-        DialogContext dcontext = (DialogContext)
-          context.getApplication().getVariableResolver().
-          resolveVariable(context, Constants.CONTEXT_BEAN);
+        DialogContext dcontext = DialogHelper.getDialogContext(context);
         if (log.isInfoEnabled()) {
             log.info("Setting up WizardData for a new dialog context id " + dcontext.getId());
         }
@@ -114,9 +113,8 @@
         }
 
         FacesContext context = FacesContext.getCurrentInstance();
-        DialogContextManager manager = (DialogContextManager)
-          context.getApplication().getVariableResolver().
-          resolveVariable(context, Constants.MANAGER_BEAN);
+        DialogContextManager manager =
+                DialogHelper.getDialogContextManager(context);
         DialogContext dcontext = manager.create(context, "wizard");
         dcontext.start(context);
         return null;

Modified: shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Popup.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Popup.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Popup.java (original)
+++ shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Popup.java Tue Jan 23 22:10:08 2007
@@ -24,6 +24,7 @@
 
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p>Event handlers for the "PopUp" dialog.</p>
@@ -64,9 +65,7 @@
         String state = (String) vb.getValue(context);
 
         // Set the currently selected state into our dialog data
-        DialogContext dcontext = (DialogContext)
-          context.getApplication().getVariableResolver().
-          resolveVariable(context, Constants.CONTEXT_BEAN);
+        DialogContext dcontext = DialogHelper.getDialogContext(context);
         PopupData data = (PopupData) dcontext.getData();
         data.setState(state);
 

Modified: shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Wizard.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Wizard.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Wizard.java (original)
+++ shale/framework/trunk/shale-apps/shale-test-dialog-scxml/src/main/java/org/apache/shale/examples/test/dialog/scxml/Wizard.java Tue Jan 23 22:10:08 2007
@@ -26,6 +26,7 @@
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
 import org.apache.shale.dialog.DialogContextManager;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p>Utility actions for the wizard dialog series of tests.</p>
@@ -80,9 +81,7 @@
     public String setup() {
 
         FacesContext context = FacesContext.getCurrentInstance();
-        DialogContext dcontext = (DialogContext)
-          context.getApplication().getVariableResolver().
-          resolveVariable(context, Constants.CONTEXT_BEAN);
+        DialogContext dcontext = DialogHelper.getDialogContext(context);
         if (log.isInfoEnabled()) {
             log.info("Setting up WizardData for a new dialog context id " + dcontext.getId());
         }
@@ -114,9 +113,8 @@
         }
 
         FacesContext context = FacesContext.getCurrentInstance();
-        DialogContextManager manager = (DialogContextManager)
-          context.getApplication().getVariableResolver().
-          resolveVariable(context, Constants.MANAGER_BEAN);
+        DialogContextManager manager =
+                DialogHelper.getDialogContextManager(context);
         DialogContext dcontext = manager.create(context, "wizard");
         dcontext.start(context);
         return null;

Added: shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java?view=auto&rev=499272
==============================================================================
--- shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java (added)
+++ shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java Tue Jan 23 22:10:08 2007
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you 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.
+ */
+
+package org.apache.shale.dialog;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * <p>Helper class that provides static accessor methods for key objects
+ * provided by the Dialog Manager module.</p>
+ *
+ * @since 1.1.0
+ */
+public class DialogHelper {
+    
+
+    /**
+     * <p>Return the active {@link DialogContext} instance for the current
+     * request, if any; otherwise, return <code>null</code>.</p>
+     */
+    public static DialogContext getDialogContext() {
+
+        return getDialogContext(FacesContext.getCurrentInstance());
+
+    }
+
+
+    /**
+     * <p>Return the active {@link DialogContext} instance for the current
+     * request, if any; otherwise, return <code>null</code>.</p>
+     *
+     * @param context <code>FacesContext</code> for the current request
+     */
+    public static DialogContext getDialogContext(FacesContext context) {
+
+        DialogContextManager manager = getDialogContextManager(context);
+        if (manager != null) {
+            return manager.getActiveDialogContext(context);
+        } else {
+            return null;
+        }
+
+    }
+
+
+    /**
+     * <p>Return the {@link DialogContextManager} instance for the current
+     * user, creating it first if necessary.</p>
+     */
+    public static DialogContextManager getDialogContextManager() {
+
+        return getDialogContextManager(FacesContext.getCurrentInstance());
+
+    }
+
+
+    /**
+     * <p>Return the {@link DialogContextManager} instance for the current
+     * user, creating it first if necessary.</p>
+     *
+     * @param context <code>FacesContext</code> for the current request
+     */
+    public static DialogContextManager getDialogContextManager(FacesContext context) {
+
+        DialogContextManager manager = (DialogContextManager)
+          context.getApplication().getVariableResolver().
+          resolveVariable(context, Constants.MANAGER_BEAN);
+        return manager;
+
+    }
+
+
+}

Propchange: shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/DialogHelper.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogNavigationHandler.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogNavigationHandler.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogNavigationHandler.java (original)
+++ shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogNavigationHandler.java Tue Jan 23 22:10:08 2007
@@ -25,6 +25,7 @@
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
 import org.apache.shale.dialog.DialogContextManager;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p><code>NavigationHandler</code> implementation that allows dialogs to
@@ -109,15 +110,13 @@
                       + outcome + "')");
         }
 
-        DialogContext dcontext = (DialogContext)
-          context.getExternalContext().getRequestMap().get(Constants.CONTEXT_BEAN);
+        DialogContext dcontext = DialogHelper.getDialogContext(context);
         String prefix = prefix(context);
         if (dcontext == null) {
             if ((outcome != null) && outcome.startsWith(prefix)) {
                 // Create and start a new DialogContext instance
-                DialogContextManager manager = (DialogContextManager)
-                  context.getApplication().getVariableResolver().
-                  resolveVariable(context, Constants.MANAGER_BEAN);
+                DialogContextManager manager =
+                        DialogHelper.getDialogContextManager(context);
                 dcontext =
                   manager.create(context, outcome.substring(prefix.length()));
                 dcontext.start(context);

Modified: shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogPhaseListener.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogPhaseListener.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogPhaseListener.java (original)
+++ shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogPhaseListener.java Tue Jan 23 22:10:08 2007
@@ -29,6 +29,7 @@
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
 import org.apache.shale.dialog.DialogContextManager;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p>Phase listener that saves and restores the dialog identifier for the
@@ -274,9 +275,8 @@
     private DialogContext create(FacesContext context, String dialogName,
                                  String parentId) {
 
-        DialogContextManager manager = (DialogContextManager)
-          context.getApplication().getVariableResolver().
-                resolveVariable(context, Constants.MANAGER_BEAN);
+        DialogContextManager manager =
+                DialogHelper.getDialogContextManager(context);
         if (manager == null) {
             return null;
         }
@@ -301,9 +301,8 @@
      */
     private void restore(FacesContext context, String dialogId) {
 
-        DialogContextManager manager = (DialogContextManager)
-          context.getApplication().getVariableResolver().
-                resolveVariable(context, Constants.MANAGER_BEAN);
+        DialogContextManager manager =
+                DialogHelper.getDialogContextManager(context);
         if (manager == null) {
             return;
         }

Modified: shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogVariableResolver.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogVariableResolver.java?view=diff&rev=499272&r1=499271&r2=499272
==============================================================================
--- shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogVariableResolver.java (original)
+++ shale/framework/trunk/shale-dialog/src/main/java/org/apache/shale/dialog/faces/DialogVariableResolver.java Tue Jan 23 22:10:08 2007
@@ -17,12 +17,12 @@
 
 package org.apache.shale.dialog.faces;
 
-import java.util.Map;
 import javax.faces.context.FacesContext;
 import javax.faces.el.EvaluationException;
 import javax.faces.el.VariableResolver;
 import org.apache.shale.dialog.Constants;
 import org.apache.shale.dialog.DialogContext;
+import org.apache.shale.dialog.DialogHelper;
 
 /**
  * <p>Variable resolver that provides access to the instance data for a
@@ -75,10 +75,9 @@
         }
 
         // Look up and return our instance data object (if any)
-        Map map = context.getExternalContext().getRequestMap();
-        DialogContext dc = (DialogContext) map.get(Constants.CONTEXT_BEAN);
-        if (dc != null) {
-            return dc.getData();
+        DialogContext dcontext = DialogHelper.getDialogContext(context);
+        if (dcontext != null) {
+            return dcontext.getData();
         } else {
             return null;
         }