1   package com.mlw.fps.view.taglib;
2   
3   import java.util.Collection;
4   import java.util.Iterator;
5   
6   import javax.servlet.jsp.JspException;
7   import javax.servlet.jsp.JspWriter;
8   import javax.servlet.jsp.PageContext;
9   
10  import org.apache.struts.taglib.tiles.ComponentConstants;
11  import org.apache.struts.tiles.ComponentContext;
12  import org.apache.struts.tiles.beans.SimpleMenuItem;
13  import org.apache.struts.util.RequestUtils;
14  
15  import com.mlw.fps.view.manager.ViewManager;
16  /***
17   *
18   * @author  Matthew Wilson
19   * @version $Revision: 1.3 $
20   */
21  public class TabsTag extends javax.servlet.jsp.tagext.BodyTagSupport
22  {
23    private String name;
24    
25    /*** Creates new GridTag
26     */
27    public TabsTag()
28    {
29      super();
30    }
31    
32    /***
33     * @throws JspException
34     * @return
35     **/
36    public int doStartTag() throws JspException
37    {
38      try
39      {
40        ViewManager manager = (ViewManager)pageContext.getSession().getAttribute("viewManager");
41        String imageDir = "/fps/images/"+manager.getStyle()+"/tabs/";
42        
43        ComponentContext compContext = (ComponentContext)pageContext.getAttribute( ComponentConstants.COMPONENT_CONTEXT, PageContext.REQUEST_SCOPE);
44        
45        Collection collection = (Collection)compContext.findAttribute(getName(), pageContext);
46        String selected = (String)compContext.findAttribute(getName()+".selected", pageContext);
47        
48        StringBuffer sb = new StringBuffer();
49        
50        sb.append("\n<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n");
51        sb.append("  <tr>\n");
52        
53        int i = 0;
54        boolean previousTabIsOn = false;
55        boolean isOn = false;
56        for(Iterator iter = collection.iterator(); iter.hasNext(); i++)
57        {
58          SimpleMenuItem item = (SimpleMenuItem)iter.next();
59          isOn = item.getValue().equals(selected);
60          
61          if( i == 0 )
62          {
63            sb.append("    <th><img src=\"").append(imageDir).append("front_").append(isOn?"on":"off").append(".gif\"></th>\n");
64          }
65          else
66          {
67            if (previousTabIsOn)
68            {
69              sb.append("    <th><img src=\"").append(imageDir).append("mid_").append(previousTabIsOn?"on":"off").append("2.gif\"/></th>\n");
70            }
71            else
72            {
73              sb.append("    <th><img src=\"").append(imageDir).append("mid_").append(isOn?"on":"off").append("1.gif\"/></th>\n");
74            }
75            
76          }
77          
78          sb.append("    <th nowrap class=\"tabs").append(isOn?"On":"Off").append("Line\"><a target=\"_top\" href=\"").append(item.getLink()).append("\">");
79          sb.append( RequestUtils.message(pageContext, null, null, item.getValue(), null));
80          sb.append("</a></th>\n");
81          
82          
83          previousTabIsOn = isOn;
84        }
85        
86        sb.append("    <th><img src=\"").append(imageDir).append("end_").append(isOn?"on":"off").append(".gif\"></th>\n");
87        sb.append("  </tr>\n");
88        sb.append("</table>\n");
89        
90        try
91        {
92          JspWriter out = pageContext.getOut();
93          out.println( sb.toString() );
94        }
95        catch(Exception e)
96        {
97          e.printStackTrace();
98        }
99        
100     }
101     catch(Exception e)
102     {
103       e.printStackTrace();
104     }
105     
106     return EVAL_BODY_AGAIN;
107   }
108   
109   public int doEndTag() throws JspException
110   {
111     return SKIP_BODY;
112   }
113   
114   /*** Getter for property name.
115    * @return Value of property name.
116    */
117   public String getName()
118   {
119     return this.name;
120   }
121   
122   /*** Setter for property name.
123    * @param name New value of property name.
124    */
125   public void setName(String name)
126   {
127     this.name = name;
128   }
129   
130 }
This page was automatically generated by Maven