01: // Copyright %G% Sun Microsystems, Inc. All Rights Reserved.
02: // "%W% %E% Sun Microsystems"
03:
04: package com.sun.portal.wireless.taglibs.commprefs;
05:
06: import com.sun.portal.log.common.PortalLogger;
07: import com.sun.portal.wireless.taglibs.base.Context;
08: import com.sun.portal.wireless.taglibs.base.ContextTag;
09:
10: import javax.servlet.http.HttpServletRequest;
11: import javax.servlet.jsp.JspException;
12: import java.util.logging.Level;
13: import java.util.logging.Logger;
14:
15: public class MailPrefsContextTag extends ContextTag {
16: private static Logger logger = PortalLogger
17: .getLogger(MailPrefsContextTag.class);
18:
19: public Context findContext() throws Exception {
20:
21: String configNameKey = MailPrefsContext.CONTEXT_TYPE
22: + "configName";
23: String ssoAdapterKey = MailPrefsContext.CONTEXT_TYPE
24: + "ssoAdapter";
25:
26: computeConfigName(pageContext, configNameKey, ssoAdapterKey,
27: MailPrefsContext.SSO_CONFIG_TYPE);
28:
29: Context context = MailPrefsContext.getPrefsContext(pageContext);
30:
31: if (id != null) {
32: pageContext.setAttribute(id, context);
33: }
34:
35: return context;
36: }
37:
38: /**
39: * Remove the context this tag represents from all places
40: * it is referred from.
41: *
42: */
43: public void reset() {
44: logger.log(Level.FINE, "PSMA_CSPWTP0008");
45: Context.reset(pageContext, MailPrefsContext.CONTEXT_CLASS_NAME,
46: MailPrefsContext.CONTEXT_CACHE_CLASS_NAME,
47: MailPrefsContext.CONTEXT_TYPE);
48: }
49:
50: /**
51: * If the context's config needs saving, save and continue evaluating the page
52: *
53: * @return EVAL_PAGE
54: * @exception javax.servlet.jsp.JspException
55: */
56: public int doEndTag() throws JspException {
57:
58: try {
59: HttpServletRequest request = (HttpServletRequest) pageContext
60: .getRequest();
61: MailPrefsContext context = (MailPrefsContext) findContext();
62: context.maybeWriteConfiguration(request);
63: } catch (Exception e) {
64: logger.log(Level.WARNING, "PSMA_CSPWTP0002", e);
65: // throw JSPException
66: }
67: return super.doEndTag();
68: }
69:
70: }
|