| package org.eclipse.jst.pagedesigner.itemcreation; |
| |
| import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants; |
| import org.eclipse.jst.pagedesigner.IHTMLConstants; |
| import org.eclipse.jst.pagedesigner.dom.IDOMPosition; |
| import org.eclipse.jst.pagedesigner.itemcreation.command.ContainerCreationCommand; |
| import org.eclipse.jst.pagedesigner.itemcreation.command.ElementCustomizationCommand; |
| import org.eclipse.jst.pagedesigner.itemcreation.command.SingletonContainerCreationCommand; |
| import org.eclipse.jst.pagedesigner.itemcreation.command.TagContainerCreationCommand; |
| import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; |
| import org.w3c.dom.Element; |
| |
| /** |
| * The default advisor. |
| * |
| * Clients may extend this class. |
| * |
| * <p><b>Provisional API - subject to change</b></p> |
| * |
| * @author cbateman |
| * |
| */ |
| public class DefaultTagCreationAdvisor extends AbstractTagCreationAdvisor |
| { |
| /** |
| * @param creationData |
| */ |
| public DefaultTagCreationAdvisor(CreationData creationData) |
| { |
| super(creationData); |
| } |
| |
| |
| @Override |
| protected ElementCustomizationCommand getElementCustomizationCommand( |
| IDOMModel model, Element tagElement) { |
| return new ElementCustomizationCommand(model, tagElement, _creationData); |
| } |
| |
| /** |
| * @param position the initial drop position |
| * @return position after creating required containers |
| */ |
| protected ContainerCreationCommand getContainerCreationCommand(final IDOMPosition position) { |
| if (_creationData.isJSFComponent()) { |
| return getJSFContainerCommand(position); |
| } |
| else if (_creationData.isHTMLFormRequired()){ |
| return getHtmlFormCommand(position); |
| } |
| return null; |
| } |
| |
| /** |
| * @param position |
| * @return the default container creation command for a JSF tag |
| */ |
| protected ContainerCreationCommand getJSFContainerCommand(final IDOMPosition position) |
| { |
| ContainerCreationCommand command = |
| new SingletonContainerCreationCommand(position, IJSFConstants.TAG_IDENTIFIER_VIEW, _creationData.getTagId()); |
| |
| if (_creationData.isHTMLFormRequired()) |
| { |
| command.chain(new TagContainerCreationCommand(position, IJSFConstants.TAG_IDENTIFIER_FORM, _creationData.getTagId())); |
| } |
| |
| return command; |
| } |
| |
| /** |
| * @param position |
| * @return the default container creation command for an HTML form tag |
| */ |
| protected ContainerCreationCommand getHtmlFormCommand(final IDOMPosition position) |
| { |
| return new TagContainerCreationCommand(position, IHTMLConstants.TAG_IDENTIFIER_HTML_FORM, _creationData.getTagId()); |
| } |
| } |