package org.ditchnet.jsp.taglib.tabs.handler;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.Tag;
import com.frameworkset.common.ecs.IFrame;
import com.frameworkset.common.tag.BaseTag;
import com.frameworkset.common.tag.contextmenu.ContextMenu;
public class IFrameTag extends BaseTag {
private TabContainerTag tabContainer;
private TabPaneTag pane = null;
private String marginwidth;
private String longdesc;
private String name;
private String src;
private String frameborder;
private String height;
private String width;
private String marginheight;
private String scrolling;
private String id;
private String classname;
private String style;
private String align;
private String tabIndex;
private String extend;
private String title;
private int position = -1;
private String text;
private IFrame iframe ;
public int doStartTag() throws JspException
{
//IFrame iframe = new IFrame();
iframe = new IFrame();
if(this.align != null)
iframe.setAlign(this.align);
if(this.classname != null)
iframe.setClass(this.classname);
if(this.extend != null)
iframe.setExtend(this.getExtend());
if(this.frameborder != null)
iframe.setFrameBorder(!this.frameborder.equals("0"));
if(this.height != null)
iframe.setHeight(this.getHeight());
if(this.id != null)
iframe.setID(this.getId());
if(this.longdesc != null)
iframe.setLongDesc(this.longdesc);
if(this.marginheight != null)
iframe.setMarginHeight(this.marginheight);
if(this.marginwidth != null)
iframe.setMarginWidth(this.marginwidth);
if(this.name != null)
iframe.setName(this.name);
if(this.scrolling != null)
iframe.setScrolling(this.scrolling);
if(this.style != null)
iframe.setStyle(this.style);
if(this.position != -1)
iframe.setTagPosition(this.position );
if(this.text != null)
iframe.setTagText(this.text);
if(this.title != null)
iframe.setTitle(this.title);
if(this.width != null)
iframe.setWidth(this.width);
//是否加载src页面
loadSRC(iframe);
int ret = super.doStartTag();
return ret;
}
public TabContainerTag getTabContainer() {
if (null == tabContainer) {
tabContainer = (TabContainerTag)
findAncestorWithClass(this,TabContainerTag.class);
}
return tabContainer;
}
public TabPaneTag getTabPaneTag() {
if (null == pane) {
pane = (TabPaneTag)
findAncestorWithClass(this,TabPaneTag.class);
}
return pane;
}
public int doEndTag() throws JspException
{
List l = this.getTabPaneTag().getListIFrame();
l.add(new String[]{this.id,this.src});
try {
this.getJspWriter().println(iframe);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int ret = super.doEndTag();
iframe = null;
return ret;
}
/**
* 重置所有的属性
*
*/
void reset()
{
tabContainer = null;
pane = null;
marginwidth = null;
longdesc = null;
name = null;
src = null;
frameborder = null;
height = null;
width = null;
marginheight = null;
scrolling = null;
id = null;
classname = null;
style = null;
align = null;
tabIndex = null;
extend = null;
title = null;
position = -1;
text = null;
iframe = new IFrame();
}
/**
Sets the LONGDESC="" attribute
@param longdesc the LONGDESC="" attribute
*/
public void setLongDesc(String longdesc)
{
this.longdesc = longdesc;
}
/**
Sets the NAME="" attribute
@param name the NAME="" attribute
* @return
*/
public void setName(String name)
{
this.name = name;
}
/**
Sets the SRC="" attribute
@param src the SRC="" attribute
*/
public void setSrc(String src)
{
this.src = src;
}
/**
Sets the FRAMEBORDER="" attribute
@param frameborder the FRAMEBORDER="" attribute
*/
public void setFrameBorder(String frameborder)
{
this.frameborder = frameborder;
//
// if (frameborder)
// addAttribute("frameborder",Integer.toString(1));
// else
// addAttribute("frameborder",Integer.toString(0));
// return this;
}
/**
Sets the MARGINWIDTH="" attribute
@param marginwidth the MARGINWIDTH="" attribute
*/
public void setMarginWidth(String marginwidth)
{
this.marginwidth = marginwidth;
}
/**
Sets the HEIGHT="" attribute
@param height the HEIGHT="" attribute
*/
public void setHeight(String height)
{
this.height = height;
}
/**
Sets the WIDTH="" attribute
@param width the WIDTH="" attribute
*/
public void setWidth(String width)
{
this.width = width;
}
/**
Sets the SCROLLING="" attribute
@param scrolling the SCROLLING="" attribute
*/
public void setScrolling(String scrolling)
{
this.scrolling = scrolling;
}
/**
Sets the ALIGN="" attribute.
@param align sets the ALIGN="" attribute. You can
use the AlignType.* variables for convience.
*/
public void setAlign(String align)
{
this.align = align;
}
public String getClassname() {
return classname;
}
public void setClassname(String className) {
this.classname = className;
}
public String getExtend() {
return extend;
}
public void setExtend(String extend) {
this.extend = extend;
}
public String getFrameborder() {
return frameborder;
}
public void setFrameborder(String frameborder) {
this.frameborder = frameborder;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLongdesc() {
return longdesc;
}
public void setLongdesc(String longdesc) {
this.longdesc = longdesc;
}
public String getMarginheight() {
return marginheight;
}
public void setMarginheight(String marginheight) {
this.marginheight = marginheight;
}
public String getMarginwidth() {
return marginwidth;
}
public void setMarginwidth(String marginwidth) {
this.marginwidth = marginwidth;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public String getTabIndex() {
return tabIndex;
}
public void setTabIndex(String tabIndex) {
this.tabIndex = tabIndex;
}
public String getAlign() {
return align;
}
public String getHeight() {
return height;
}
public String getName() {
return name;
}
public String getScrolling() {
return scrolling;
}
public String getSrc() {
return src;
}
public String getWidth() {
return width;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPosition() {
return position;
}
public void setPosition(int position) {
this.position = position;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String generateContent() {
// TODO Auto-generated method stub
return super.generateContent();
}
public ContextMenu getContextMenu() {
// TODO Auto-generated method stub
return super.getContextMenu();
}
public void initContextMenu() {
// TODO Auto-generated method stub
super.initContextMenu();
}
public boolean isEnablecontextmenu() {
// TODO Auto-generated method stub
return super.isEnablecontextmenu();
}
public void setEnablecontextmenu(boolean arg0) {
// TODO Auto-generated method stub
super.setEnablecontextmenu(arg0);
}
public void setPageContext(PageContext arg0) {
// TODO Auto-generated method stub
super.setPageContext(arg0);
}
public void write(OutputStream arg0) {
// TODO Auto-generated method stub
super.write(arg0);
}
public int doAfterBody() throws JspException {
// TODO Auto-generated method stub
return super.doAfterBody();
}
public void release() {
// TODO Auto-generated method stub
super.release();
}
public void setParent(Tag arg0) {
// TODO Auto-generated method stub
super.setParent(arg0);
}
public Tag getParent() {
// TODO Auto-generated method stub
return super.getParent();
}
public void setValue(String arg0, Object arg1) {
// TODO Auto-generated method stub
super.setValue(arg0, arg1);
}
public Object getValue(String arg0) {
// TODO Auto-generated method stub
return super.getValue(arg0);
}
public void removeValue(String arg0) {
// TODO Auto-generated method stub
super.removeValue(arg0);
}
public Enumeration getValues() {
// TODO Auto-generated method stub
return super.getValues();
}
public int hashCode() {
// TODO Auto-generated method stub
return super.hashCode();
}
public void finalize() throws Throwable {
// TODO Auto-generated method stub
super.finalize();
}
public Object clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return super.clone();
}
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return super.equals(obj);
}
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
private void loadSRC(IFrame iframe){
if(this.src != null){
if(this.getTabPaneTag().isLazeload()
&& !this.getTabPaneTag().isSelectedTab()){
iframe.setSrc("");
}else{
iframe.setSrc(this.src);
}
}
}
@Override
public void doFinally() {
iframe = null;
reset();
super.doFinally();
}
}