You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2006/03/25 05:08:11 UTC

svn commit: r388698 - in /struts/sandbox/trunk/action2/apps/mailreader/src: java/mailreader2/MailreaderSupport.java java/mailreader2/Subscription.java java/xwork.xml webapp/pages/Registration.jsp webapp/pages/Subscription.jsp

Author: husted
Date: Fri Mar 24 20:08:09 2006
New Revision: 388698

URL: http://svn.apache.org/viewcvs?rev=388698&view=rev
Log:
Action2 Apps
* Mailreader - Work in progress







Modified:
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java
    struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription.java
    struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml
    struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp
    struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java?rev=388698&r1=388697&r2=388698&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java Fri Mar 24 20:08:09 2006
@@ -88,6 +88,18 @@
         this.task = task;
     }
 
+    // ---- Host property ----
+
+    private String host;
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String value) {
+        host = value;
+    }
+
     // ---- Password property ----
 
     /**
@@ -161,7 +173,7 @@
      *
      * @return a reference to the UserDatabase or null if the database is not available
      */
-    protected UserDatabase getDatabase() {
+    public UserDatabase getDatabase() {
         Object db = getApplication().get(Constants.DATABASE_KEY);
         if (db == null) {
             this.addActionError("error.database.missing");
@@ -169,7 +181,7 @@
         return (UserDatabase) db;
     }
 
-    protected void setDatabase(UserDatabase database) {
+    public void setDatabase(UserDatabase database) {
         getApplication().put(Constants.DATABASE_KEY, database);
     }
 
@@ -209,7 +221,7 @@
      *
      * @throws javax.servlet.ServletException On any error
      */
-    protected void saveUser() throws Exception {
+    public void saveUser() throws Exception {
         try {
             getDatabase().save();
         } catch (Exception e) {
@@ -226,12 +238,36 @@
      *
      * @return Cached Subscription object or null
      */
-    protected Subscription getSubscription() {
+    public Subscription getSubscription() {
         return (Subscription) getSession().get(Constants.SUBSCRIPTION_KEY);
     }
 
-    protected void getSubscriprtion(Subscription subscription) {
+    public void setSubscription(Subscription subscription) {
         getSession().put(Constants.SUBSCRIPTION_KEY, subscription);
+    }
+
+    /**
+     * <p> Obtain subscription matching host for our User, or return null if not found. </p>
+     *
+     * @return The matching Subscription or null
+     */
+    public Subscription findSubscription() {
+
+        Subscription subscription;
+
+        try {
+            subscription = getUser().findSubscription(getHost());
+        }
+        catch (NullPointerException e) {
+            subscription = null;
+        }
+
+        return subscription;
+    }
+
+    public void removeSubscription() throws Exception {
+        getUser().removeSubscription(getSubscription());
+        getSession().remove(Constants.SUBSCRIPTION_KEY);
     }
 
 }

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription.java
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription.java?rev=388698&r1=388697&r2=388698&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription.java (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription.java Fri Mar 24 20:08:09 2006
@@ -1,30 +1,62 @@
 package mailreader2;
 
-import java.util.ArrayList;
-import java.util.List;
+import com.opensymphony.xwork.Preparable;
 
-public final class Subscription extends MailreaderSupport {
+import java.util.LinkedHashMap;
+import java.util.Map;
 
-    List types = new ArrayList();
+public final class Subscription extends MailreaderSupport implements Preparable {
 
-    List getTypes() {
+    private Map types = null;
+
+    public Map getTypes() {
         return types;
     }
 
+    public void prepare() {
+        Map m = new LinkedHashMap();
+        m.put("imap", "IMAP Protocol");
+        m.put("pop3", "POP3 Protocol");
+        types = m;
+    }
+
     public String input() {
 
-        types.add(new KeyValue("imap", "IMAP Protocol"));
-        types.add(new KeyValue("pop3", "POP3 Protocol"));
+        setTask(Constants.CREATE);
+        return INPUT;
+    }
+
+    public String delete() {
 
+        setTask(Constants.DELETE);
         return INPUT;
     }
 
-    public String execute() {
+    public String edit() {
 
+        setTask(Constants.EDIT);
 
-        return SUCCESS;
+        org.apache.struts.apps.mailreader.dao.Subscription
+                sub = findSubscription();
+
+        if (sub == null) {
+            return ERROR;
+        }
+
+        setSubscription(sub);
+
+        return INPUT;
     }
 
+    public String execute() throws Exception {
+
+        if (Constants.DELETE.equals(getTask())) {
+            removeSubscription();
+        }
+
+        saveUser();
+        return SUCCESS;
+    }
 
     public static class KeyValue {
         String key;

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml?rev=388698&r1=388697&r2=388698&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml Fri Mar 24 20:08:09 2006
@@ -7,6 +7,18 @@
 
         <!-- default-action-ref name="Welcome"/ -->
 
+        <global-results>
+            <result name="error" type="chain">Error</result>
+        </global-results>
+
+        <global-exception-mappings>
+
+            <exception-mapping
+                    result="Error"
+                    exception="Exception"/>
+
+        </global-exception-mappings>
+
         <action name="Welcome">
             <result>/pages/Welcome.jsp</result>
         </action>
@@ -32,6 +44,11 @@
 
         <action name="Registration" class="mailreader2.Registration">
             <result name="input">/pages/Registration.jsp</result>
+            <result type="chain">MainMenu</result>
+        </action>
+
+        <action name="Subscription" class="mailreader2.Subscription">
+            <result name="input">/pages/Subscription.jsp</result>
             <result type="chain">MainMenu</result>
         </action>
 

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp?rev=388698&r1=388697&r2=388698&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp Fri Mar 24 20:08:09 2006
@@ -87,11 +87,11 @@
                 </td>
                 <td align="center">
 
-                    <a href="<a2:url action="Subscription!delete"><a2:param name="host" value="#host"/></a2:url>">
+                    <a href="<a2:url action="Subscription!delete"><a2:param name="host" value="host"/></a2:url>">
                         <a2:text name="registration.deleteSubscription"/>
                     </a>
                     &nbsp;
-                    <a href="<a2:url action="Subscription!edit"><a2:param name="host" value="#host"/></a2:url>">
+                    <a href="<a2:url action="Subscription!edit"><a2:param name="host" value="host"/></a2:url>">
                         <a2:text name="registration.editSubscription"/>
                     </a>
 
@@ -101,7 +101,8 @@
 
     </table>
 
-    <a2:action name="Subscription.edit"><a2:text name="registration.addSubscription"/></a2:action>
+    <a href="<a2:url action="Subscription!input"/>"><a2:text name="registration.addSubscription"/></a>
+
 </a2:if>
 
 <jsp:include page="Footer.jsp"/>

Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp?rev=388698&r1=388697&r2=388698&view=diff
==============================================================================
--- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp (original)
+++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp Fri Mar 24 20:08:09 2006
@@ -9,16 +9,14 @@
     <a2:if test="task=='Edit'">
         <title><a2:text name="subscription.title.edit"/></title>
     </a2:if>
-    <a2:if test="task=='Edit'">
-        <title><a2:text name="subscription.title.edit"/></title>
+    <a2:if test="task=='Delete'">
+        <title><a2:text name="subscription.title.delete"/></title>
     </a2:if>
 </head>
 
 <body>
-<a2:form method="POST" validate="true">
+<a2:form method="POST" action="Subscription" validate="true">
     <a2:hidden name="task"/>
-    <a2:hidden name="username"/>
-
     <a2:label label="%{getText('prompt.username')}" name="user.username"/>
 
     <a2:if test="task == 'Create'">
@@ -34,7 +32,7 @@
     <a2:textfield label="%{getText('prompt.mailPassword')}" name="subscription.password"/>
 
     <a2:select label="%{getText('prompt.mailServerType')}" name="subscription.type"
-               list="servers"/>
+               list="types"/>
 
     <a2:checkbox label="%{getText('prompt.autoConnect')}" name="subscription.autoConnect"/>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org