/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.vpe.myfaces.template; import org.jboss.tools.vpe.editor.context.VpePageContext; import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate; import org.jboss.tools.vpe.editor.template.VpeAnyData; import org.jboss.tools.vpe.editor.template.VpeChildrenInfo; import org.jboss.tools.vpe.editor.template.VpeCreationData; import org.jboss.tools.vpe.editor.template.VpeTagDescription; import org.jboss.tools.vpe.editor.util.HTML; import org.mozilla.interfaces.nsIDOMDocument; import org.mozilla.interfaces.nsIDOMElement; import org.mozilla.interfaces.nsIDOMNode; import org.mozilla.interfaces.nsIDOMText; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class VpeMyFacesDataScrollerTemplate extends VpeAbstractTemplate { public VpeCreationData create(VpePageContext pageContext, Node sourceNode, nsIDOMDocument visualDocument) { nsIDOMElement table = visualDocument.createElement(HTML.TAG_TABLE); VpeCreationData data = new VpeCreationData(table); VpeChildrenInfo childInfo = createFacet(sourceNode, "first", visualDocument); //$NON-NLS-1$ nsIDOMElement td = null; if (childInfo != null) { data.addChildrenInfo(childInfo); td = childInfo.getVisualParent(); table.appendChild(td); } childInfo = createFacet(sourceNode, "fastrewind", visualDocument); //$NON-NLS-1$ if (childInfo != null) { data.addChildrenInfo(childInfo); td = childInfo.getVisualParent(); table.appendChild(td); } childInfo = createFacet(sourceNode, "previous", visualDocument); //$NON-NLS-1$ if (childInfo != null) { data.addChildrenInfo(childInfo); td = childInfo.getVisualParent(); table.appendChild(td); } td = visualDocument.createElement(HTML.TAG_TD); nsIDOMText text = visualDocument.createTextNode("1 2 3 ..."); //$NON-NLS-1$ td.appendChild(text); table.appendChild(td); childInfo = createFacet(sourceNode, "next", visualDocument); //$NON-NLS-1$ if (childInfo != null) { data.addChildrenInfo(childInfo); td = childInfo.getVisualParent(); table.appendChild(td); } childInfo = createFacet(sourceNode, "fastforward", visualDocument); //$NON-NLS-1$ if (childInfo != null) { data.addChildrenInfo(childInfo); td = childInfo.getVisualParent(); table.appendChild(td); } childInfo = createFacet(sourceNode, "last", visualDocument); //$NON-NLS-1$ if (childInfo != null) { data.addChildrenInfo(childInfo); td = childInfo.getVisualParent(); table.appendChild(td); } return data; } private VpeChildrenInfo createFacet(Node sourceNode, String facetName, nsIDOMDocument visualDocument) { if (sourceNode != null && facetName != null) { NodeList childs = sourceNode.getChildNodes(); if (childs != null) { for (int i = 0; i < childs.getLength(); i++) { Node child = childs.item(i); if (child != null && child.getNodeType() == Node.ELEMENT_NODE && child.getNodeName().indexOf(":facet") > 0) { //$NON-NLS-1$ Element facet = (Element)child; Attr nameAttr = facet.getAttributeNode("name"); //$NON-NLS-1$ if (nameAttr != null && nameAttr.getValue().equals(facetName)) { nsIDOMElement td = visualDocument.createElement(HTML.TAG_TD); VpeChildrenInfo info = new VpeChildrenInfo(td); info.addSourceChild(facet); return info; } } } } } return null; } public void setAttribute(VpePageContext pageContext, Element sourceElement, Document visualDocument, Node visualNode, Object data, String name, String value) { } public void removeAttribute(VpePageContext pageContext, Element sourceElement, Document visualDocument, Node visualNode, Object data, String name) { } /* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeAbstractTemplate#getOutputTextNode(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Element, java.lang.Object) */ @Override public nsIDOMText getOutputTextNode(VpePageContext pageContext, Element sourceElement, Object data) { return null; } public boolean isOutputAttributes() { return false; } public int getType() { return 0; } public VpeAnyData getAnyData() { return null; } /* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeTemplate#beforeRemove(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Node, org.mozilla.interfaces.nsIDOMNode, java.lang.Object) */ @Override public void beforeRemove(VpePageContext pageContext, Node sourceNode, nsIDOMNode visualNode, Object data) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeTemplate#isRecreateAtAttrChange(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Element, org.mozilla.interfaces.nsIDOMDocument, org.mozilla.interfaces.nsIDOMElement, java.lang.Object, java.lang.String, java.lang.String) */ @Override public boolean recreateAtAttrChange(VpePageContext pageContext, Element sourceElement, nsIDOMDocument visualDocument, nsIDOMElement visualNde, Object data, String name, String value) { // TODO Auto-generated method stub return false; } /* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeTemplate#removeAttribute(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Element, org.mozilla.interfaces.nsIDOMDocument, org.mozilla.interfaces.nsIDOMNode, java.lang.Object, java.lang.String) */ @Override public void removeAttribute(VpePageContext pageContext, Element sourceElement, nsIDOMDocument visualDocument, nsIDOMNode visualNode, Object data, String name) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeTemplate#setAttribute(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Element, org.mozilla.interfaces.nsIDOMDocument, org.mozilla.interfaces.nsIDOMNode, java.lang.Object, java.lang.String, java.lang.String) */ @Override public void setAttribute(VpePageContext pageContext, Element sourceElement, nsIDOMDocument visualDocument, nsIDOMNode visualNode, Object data, String name, String value) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.jboss.tools.vpe.editor.template.VpeTemplate#validate(org.jboss.tools.vpe.editor.context.VpePageContext, org.w3c.dom.Node, org.mozilla.interfaces.nsIDOMDocument, org.jboss.tools.vpe.editor.template.VpeCreationData) */ @Override public void validate(VpePageContext pageContext, Node sourceNode, nsIDOMDocument visualDocument, VpeCreationData data) { // TODO Auto-generated method stub } }