/******************************************************************************* * 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.richfaces.template; import org.jboss.tools.jsf.vpe.richfaces.ComponentUtil; import org.jboss.tools.vpe.editor.context.VpePageContext; import org.jboss.tools.vpe.editor.template.VpeAbstractTemplate; import org.jboss.tools.vpe.editor.template.VpeCreationData; import org.jboss.tools.vpe.editor.util.HTML; import org.mozilla.interfaces.nsIDOMDocument; import org.mozilla.interfaces.nsIDOMElement; import org.w3c.dom.Element; import org.w3c.dom.Node; /** * Displays template for gmap * * @author Max Areshkau * */ public class RichFacesGMapTemplate extends VpeAbstractTemplate { private static final String ALL_CONTROLS_IMG = "gmap/allControls.png"; //$NON-NLS-1$ private static final String NO_CONTROLS_IMG = "gmap/noControls.png"; //$NON-NLS-1$ private static final String LARGE_IMG = "gmap/large.png"; //$NON-NLS-1$ private static final String SCALE_IMG = "gmap/scale.png"; //$NON-NLS-1$ private static final String TYPE_IMG = "gmap/type.png"; //$NON-NLS-1$ private static final String LARGE_SCALE_IMG = "gmap/large-scale.png"; //$NON-NLS-1$ private static final String LARGE_TYPE_IMG = "gmap/large-type.png"; //$NON-NLS-1$ private static final String TYPE_SCALE_IMG = "gmap/type-scale.png"; //$NON-NLS-1$ private static final String SHOW_LARGE_MAP = "showGLargeMapControl"; //$NON-NLS-1$ private static final String SHOW_MAP_TYPE = "showGMapTypeControl"; //$NON-NLS-1$ private static final String SHOW_SCALE = "showGScaleControl"; //$NON-NLS-1$ private static final String TRUE = "true"; //$NON-NLS-1$ /** * Create html instead of rich:faces component. * * @param pageContext * Contains the information on edited page. * @param sourceNode * The current node of the source tree. * @param visualDocument * The document of the visual tree. * @return The information on the created node of the visual tree. */ public VpeCreationData create(VpePageContext pageContext, Node sourceNode, nsIDOMDocument visualDocument) { Element sourceElement = (Element) sourceNode; /* * Value indicating enabled controls combinations: * * 0 - no controls are available. * 1 - map type control is enabled. * 2 - large map control is enabled. * 4 - scale control is enabled. * 3 - map type and large map controls are enabled. * 5 - map type and scale controls are enabled. * 6 - large map and scale controls are enabled. * 7 - all controls are enabled. */ int controls = 0; String showGLargeMapControl = sourceElement.getAttribute(SHOW_LARGE_MAP); String showGMapTypeControl = sourceElement.getAttribute(SHOW_MAP_TYPE); String showGScaleControl = sourceElement.getAttribute(SHOW_SCALE); String style = sourceElement.getAttribute(HTML.ATTR_STYLE); String styleClass = sourceElement.getAttribute(RichFaces.ATTR_STYLE_CLASS); nsIDOMElement mapImg = visualDocument.createElement(HTML.TAG_IMG); if (TRUE.equalsIgnoreCase(showGMapTypeControl)) { controls += 1; } if (TRUE.equalsIgnoreCase(showGLargeMapControl)) { controls += 2; } if (TRUE.equalsIgnoreCase(showGScaleControl)) { controls += 4; } switch (controls) { case 0: ComponentUtil.setImg(mapImg, NO_CONTROLS_IMG); break; case 1: ComponentUtil.setImg(mapImg, TYPE_IMG); break; case 2: ComponentUtil.setImg(mapImg, LARGE_IMG); break; case 4: ComponentUtil.setImg(mapImg, SCALE_IMG); break; case 3: ComponentUtil.setImg(mapImg, LARGE_TYPE_IMG); break; case 5: ComponentUtil.setImg(mapImg, TYPE_SCALE_IMG); break; case 6: ComponentUtil.setImg(mapImg, LARGE_SCALE_IMG); break; case 7: ComponentUtil.setImg(mapImg, ALL_CONTROLS_IMG); break; default: ComponentUtil.setImg(mapImg, NO_CONTROLS_IMG); } mapImg.setAttribute(HTML.ATTR_CLASS, styleClass); mapImg.setAttribute(HTML.ATTR_STYLE, style); VpeCreationData creationData = new VpeCreationData(mapImg); return creationData; } }