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>
- <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