?? menutag.java
字號:
/*
* OPIAM Suite
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package opiam.admin.faare.struts.taglib;
import opiam.admin.faare.persistence.javabeans.JBTop;
import opiam.admin.faare.service.UserContext;
import opiam.admin.faare.struts.service.beans.JBFeature;
import opiam.admin.faare.struts.service.beans.JBMenuElement;
import org.apache.struts.taglib.TagUtils;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* Generates menu element, after calling the menu feature plugin if defined.<br>
* Example of generated code:<br>
* <code>
*<A
* href="showSearchUser.do"><IMG border='0' alt='Directory'
* src="/application_name/images/but_annuaire.gif"
* name='directory_button'></A>
* </code>
*
*/
public class MenuTag extends TagSupport
{
/** Menu name. */
private String name;
//DW/2668/BeginPatch
/** Base context for the Url */
private String basecontext = null;
//DW/2668/EndPatch
/** Not used. */
private String property = null;
/** Menu scope. */
private String scope;
/** Menu CSS style. */
private String style;
/**
* @see javax.servlet.jsp.tagext.Tag#doStartTag().
*/
public int doStartTag() throws JspException
{
JBMenuElement elt;
JBFeature fea;
String paramUrl = null;
try
{
elt = (JBMenuElement) TagUtils.getInstance().lookup(pageContext, name,
property, scope);
fea = elt.getFeature();
if (fea == null)
{
return SKIP_BODY;
}
else
{
if (fea.getPlugin() != null)
{
// check if this feature is active by the supplied plugin
UserContext userContext = (UserContext) TagUtils.getInstance().lookup(pageContext,
"sessionContext", "userContext", "session");
JBTop currentEntry = (JBTop) TagUtils.getInstance().lookup(pageContext,
fea.getCurrentObjname(), fea.getCurrentObjprop(),
"session");
if (!fea.getPlugin().isActive(fea.getName(), currentEntry,
userContext))
{
return SKIP_BODY;
}
}
if (fea.getParamId() != null)
{
// construction de param鑤re pour l'url
paramUrl = (String) TagUtils.getInstance().lookup(pageContext,
fea.getParamName(), fea.getParamProperty(),
"session");
}
}
// fea not null
StringBuffer sb = new StringBuffer();
sb.append("<a href='");
//DW/2668/BeginPatch
if ((basecontext != null) && (basecontext.equals("page")))
{
String pagecontext = ((HttpServletRequest) pageContext.getRequest()).getContextPath();
sb.append(pagecontext);
int pos = pagecontext.lastIndexOf("/");
if (pos < pagecontext.length())
{
sb.append("/");
}
}
else if (basecontext != null)
{
sb.append(basecontext);
}
//DW/2668/EndPatch
//DW/2606/BeginPatch
sb.append(URLEncoder.encode(fea.getUrl(), "UTF-8"));
//DW/2606/EndPatch
if (fea.getParamId() != null)
{
// ajout de param鑤re
sb.append("?");
//DW/2606/BeginPatch
sb.append(URLEncoder.encode(fea.getParamId(), "UTF-8"));
//DW/2606/EndPatch
sb.append("=");
//DW/2606/BeginPatch
sb.append(URLEncoder.encode(paramUrl, "UTF-8"));
//DW/2606/EndPatch
}
//DW/2666/BeginPatch
if (fea.getTarget() != null)
{
sb.append("' target='");
sb.append(URLEncoder.encode(fea.getTarget(), "UTF-8"));
}
//DW/2666/EndPatch
if (style != null)
{
sb.append("' class='");
sb.append(style);
sb.append("' >");
}
else
{
sb.append("'>");
}
if (elt.useIcon())
{
sb.append("<IMG border='0' alt='");
sb.append(fea.getLabel());
sb.append("' name='");
sb.append(fea.getName());
sb.append("' src='");
sb.append(((HttpServletRequest) pageContext.getRequest()).getContextPath());
sb.append(fea.getOnicon());
sb.append("'>");
}
else
{
// label only
sb.append(fea.getLabel());
}
sb.append("</a>");
TagUtils.getInstance().write(pageContext, sb.toString());
}
catch (Exception e)
{
//e.printStackTrace();
return (SKIP_BODY); // Nothing to output
}
return SKIP_BODY;
}
/**
* @see javax.servlet.jsp.tagext.Tag#release().
*/
public void release()
{
super.release();
}
/**
* Sets the name of the menu.
* @param aname The name to set
*/
public void setName(String aname)
{
this.name = aname;
}
/**
* Sets the scope of the menu.
* @param ascope The scope to set
*/
public void setScope(String ascope)
{
this.scope = ascope;
}
/**
* Gets the menu CSS style.
* @return style
*/
public String getStyle()
{
return style;
}
/**
* Sets the menu CSS style.
* @param string style
*/
public void setStyle(String string)
{
style = string;
}
//DW/2668/BeginPatch
/**
* Gets the base context of the Url.
* @return basecontext
*/
public String getBasecontext()
{
return basecontext;
}
/**
* Sets the base context of the Url.
* @param string abasecontext
*/
public void setBasecontext(String aBasecontext)
{
basecontext = aBasecontext;
}
//DW/2668/EndPatch
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -