⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parsedhtml.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		{			return true;		}		protected boolean addToContext()		{			return false;		}		final protected ParsedHTML getParsedHTML(NodeUtils.PreOrderTraversal pot)		{			return (ParsedHTML)getClosestContext(pot, ParsedHTML.class);		}		final protected Object getClosestContext(NodeUtils.PreOrderTraversal pot, Class aClass)		{			return pot.getClosestContext(aClass);		}		protected ParsedHTML getRootContext(NodeUtils.PreOrderTraversal pot)		{			return (ParsedHTML)pot.getRootContext();		}	}	static class DefaultElementFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			if (element.getAttribute("id").equals(""))			{				return null;			}			return parsedHTML.toDefaultElement(element);		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{		}	}	private HTMLElement toDefaultElement(Element element)	{		return new HTMLElementBase(element)		{			protected ScriptableDelegate newScriptable()			{				return new HTMLElementScriptable(this);			}			protected ScriptableDelegate getParentDelegate()			{				return getResponse().getScriptableObject().getDocument();			}		};	}	static class WebFormFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toWebForm(element);		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			super.addToLists(pot, htmlElement);			getRootContext(pot)._activeForm = (WebForm)htmlElement;		}	}	static class WebLinkFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toLinkAnchor(element);		}	}	static class TextBlockFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toTextBlock(element);		}		protected boolean addToContext()		{			return true;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			for (Iterator i = pot.getContexts(); i.hasNext();)			{				Object o = i.next();				if (!(o instanceof ParsedHTML))				{					continue;				}				((ParsedHTML)o).addToList(htmlElement);				break;			}		}	}	static class ScriptFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return null;		}		void recordElement(NodeUtils.PreOrderTraversal pot, Element element, ParsedHTML parsedHTML)		{			parsedHTML.interpretScriptElement(element);		}	}	static class NoScriptFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toNoscriptElement(element);		}		protected boolean addToContext()		{			return true;		}	}	static class WebFrameFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toWebFrame(element);		}	}	static class WebIFrameFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toWebIFrame(element);		}		protected boolean isRecognized(ClientProperties properties)		{			return properties.isIframeSupported();		}		protected boolean addToContext()		{			return true;		}	}	static class WebImageFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toWebImage(element);		}	}	static class WebAppletFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toWebApplet(element);		}		protected boolean addToContext()		{			return true;		}	}	static class WebTableFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toWebTable(element);		}		protected boolean addToContext()		{			return true;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			getParsedHTML(pot).addToList(htmlElement);		}	}	static class TableRowFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			WebTable wt = getWebTable(pot);			if (wt == null)			{				return null;			}			return wt.newTableRow(element);		}		private WebTable getWebTable(NodeUtils.PreOrderTraversal pot)		{			return (WebTable)getClosestContext(pot, WebTable.class);		}		protected boolean addToContext()		{			return true;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			getWebTable(pot).addRow((WebTable.TableRow)htmlElement);		}	}	static class TableCellFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			WebTable.TableRow tr = getTableRow(pot);			if (tr == null)			{				return null;			}			return tr.newTableCell(element);		}		private WebTable.TableRow getTableRow(NodeUtils.PreOrderTraversal pot)		{			return (WebTable.TableRow)getClosestContext(pot, WebTable.TableRow.class);		}		protected boolean addToContext()		{			return true;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			getTableRow(pot).addTableCell((TableCell)htmlElement);		}	}	static class FormControlFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			final WebForm form = getForm(pot);			return form == null ? newControlWithoutForm(parsedHTML, element) : form					.newFormControl(element);		}		private HTMLElement newControlWithoutForm(ParsedHTML parsedHTML, Element element)		{			if (element.getNodeName().equalsIgnoreCase("button") &&					isValidNonFormButtonType(NodeUtils.getNodeAttribute(element, "type")))			{				return parsedHTML.toButtonWithoutForm(element);			}			else			{				return null;			}		}		private boolean isValidNonFormButtonType(String buttonType)		{			return buttonType.equals("") || buttonType.equalsIgnoreCase("button");		}		private WebForm getForm(NodeUtils.PreOrderTraversal pot)		{			return getRootContext(pot)._activeForm;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			WebForm form = getForm(pot);			if (form != null)			{				form.addFormControl((FormControl)htmlElement);			}		}	}	static class WebListFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			return parsedHTML.toOrderedList(element);		}		protected boolean addToContext()		{			return true;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{			TextBlock textBlock = getTextBlock(pot);			if (textBlock != null)			{				textBlock.addList((WebList)htmlElement);			}		}		private TextBlock getTextBlock(NodeUtils.PreOrderTraversal pot)		{			return (TextBlock)getClosestContext(pot, TextBlock.class);		}	}	static class ListItemFactory extends HTMLElementFactory	{		HTMLElement toHTMLElement(NodeUtils.PreOrderTraversal pot, ParsedHTML parsedHTML,				Element element)		{			WebList webList = getWebList(pot);			if (webList == null)			{				return null;			}			return webList.addNewItem(element);		}		private WebList getWebList(NodeUtils.PreOrderTraversal pot)		{			return (WebList)getClosestContext(pot, WebList.class);		}		protected boolean addToContext()		{			return true;		}		protected void addToLists(NodeUtils.PreOrderTraversal pot, HTMLElement htmlElement)		{		}	}	private static HashMap _htmlFactoryClasses = new HashMap();	private static HTMLElementFactory _defaultFactory = new DefaultElementFactory();	static	{		_htmlFactoryClasses.put("a", new WebLinkFactory());		_htmlFactoryClasses.put("area", new WebLinkFactory());		_htmlFactoryClasses.put("form", new WebFormFactory());		_htmlFactoryClasses.put("img", new WebImageFactory());		_htmlFactoryClasses.put("applet", new WebAppletFactory());		_htmlFactoryClasses.put("table", new WebTableFactory());		_htmlFactoryClasses.put("tr", new TableRowFactory());		_htmlFactoryClasses.put("td", new TableCellFactory());		_htmlFactoryClasses.put("th", new TableCellFactory());		_htmlFactoryClasses.put("frame", new WebFrameFactory());		_htmlFactoryClasses.put("iframe", new WebIFrameFactory());		_htmlFactoryClasses.put("script", new ScriptFactory());		_htmlFactoryClasses.put("noscript", new NoScriptFactory());		_htmlFactoryClasses.put("ol", new WebListFactory());		_htmlFactoryClasses.put("ul", new WebListFactory());		_htmlFactoryClasses.put("li", new ListItemFactory());		for (int i = 0; i < TEXT_ELEMENTS.length; i++)		{			_htmlFactoryClasses.put(TEXT_ELEMENTS[i], new TextBlockFactory());		}		for (Iterator i = Arrays.asList(FormControl.getControlElementTags()).iterator(); i				.hasNext();)		{			_htmlFactoryClasses.put(i.next(), new FormControlFactory());		}	}	private static HTMLElementFactory getHTMLElementFactory(String tagName)	{		final HTMLElementFactory factory = (HTMLElementFactory)_htmlFactoryClasses.get(tagName);		return factory != null ? factory : _defaultFactory;	}	private void loadElements()	{		if (!_updateElements)		{			return;		}		NodeUtils.NodeAction action = new NodeUtils.NodeAction()		{			public boolean processElement(NodeUtils.PreOrderTraversal pot, Element element)			{				HTMLElementFactory factory = getHTMLElementFactory(element.getNodeName()						.toLowerCase());				if (factory == null || !factory.isRecognized(getClientProperties()))				{					return true;				}				if (pot.getClosestContext(ContentConcealer.class) != null)				{					return true;				}				if (!_elements.containsKey(element))				{					factory.recordElement(pot, element, ParsedHTML.this);				}				if (factory.addToContext())				{					pot.pushContext(_elements.get(element));				}				return true;			}			public void processTextNode(NodeUtils.PreOrderTraversal pot, Node textNode)			{				if (textNode.getNodeValue().trim().length() == 0)				{					return;				}				Node parent = textNode.getParentNode();				if (!parent.getNodeName().equalsIgnoreCase("body"))				{					return;				}				if (pot.getClosestContext(ContentConcealer.class) != null)				{					return;				}				new HtmlElementRecorder().recordHtmlElement(pot, textNode, newTextBlock(textNode));			}		};		NodeUtils.PreOrderTraversal nt = new NodeUtils.PreOrderTraversal(getRootNode());		nt.pushBaseContext(this);		nt.perform(action);		_updateElements = false;	}	private ClientProperties getClientProperties()	{		WebWindow window = _response.getWindow();		return window == null ? ClientProperties.getDefaultProperties() : window.getClient()				.getClientProperties();	}	private Button toButtonWithoutForm(Element element)	{		return new Button(_response, element);	}	private WebForm toWebForm(Element element)	{		return new WebForm(_response, _baseURL, element, _frame, _baseTarget, _characterSet);	}	private WebFrame toWebFrame(Element element)	{		return new WebFrame(_response, _baseURL, element, _frame);	}	private WebFrame toWebIFrame(Element element)	{		return new WebIFrame(_baseURL, element, _frame);	}	private WebLink toLinkAnchor(Element child)	{		return (!isWebLink(child)) ? null : new WebLink(_response, _baseURL, child, _frame,				_baseTarget, _characterSet);	}	private boolean isWebLink(Node node)	{		return (node.getAttributes().getNamedItem("href") != null);	}	private WebImage toWebImage(Element child)	{		return new WebImage(_response, this, _baseURL, child, _frame, _baseTarget, _characterSet);	}	private WebApplet toWebApplet(Element element)	{		return new WebApplet(_response, element, _baseTarget);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -