dion 2004/09/05 08:25:02 Added: jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt ColorTag.java FontTag.java Log: Add new tags Revision Changes Path 1.1 jakarta-commons/jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt/ColorTag.java Index: ColorTag.java =================================================================== /* * Copyright 2002,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.jelly.tags.swt; import org.apache.commons.jelly.JellyTagException; import org.apache.commons.jelly.TagSupport; import org.apache.commons.jelly.XMLOutput; import org.apache.commons.jelly.tags.swt.converters.ColorConverter; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Widget; /** * Class to create a [EMAIL PROTECTED] Color} instance within Jelly SWT. * * @author <a href="mailto:[EMAIL PROTECTED]">Marcus Crafter</a> * @author Written with much help thanks to the ImageTag class * @version CVS $Id: ColorTag.java,v 1.1 2004/09/05 15:25:02 dion Exp $ */ public class ColorTag extends TagSupport { /** RGB value */ private String rgb; /** Variable name */ private String var; /** * Sets the RGB value for this [EMAIL PROTECTED] Color} instance * * @param rgb value (eg. #666666); */ public void setRgb(final String rgb) { this.rgb = rgb; } /** * Obtain the RGB value for this [EMAIL PROTECTED] Color} instance * * @return the RGB value (eg. #666666) */ public String getRgb() { return this.rgb; } /** * Sets the variable name * * @param var the variable name of this [EMAIL PROTECTED] Color} instance */ public void setVar(final String var) { this.var = var; } /** * Obtain the variable name. * * @return the variable name of this [EMAIL PROTECTED] Color} instance */ public String getVar() { return this.var; } /** * @return the parent widget which this widget will be added to. */ public Widget getParentWidget() { final WidgetTag tag = (WidgetTag) findAncestorWithClass(WidgetTag.class); if (tag != null) { return tag.getWidget(); } return null; } // Tag interface //------------------------------------------------------------------------- /** * Creates a [EMAIL PROTECTED] Color} instance as defined by the RGB attribute. * Stores this [EMAIL PROTECTED] Color} instance in the Context so that it can be * referenced in the Jelly script. * * @param output [EMAIL PROTECTED] XMLOutput} reference * @throws JellyTagException if an error occurs * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput) */ public void doTag(final XMLOutput output) throws JellyTagException { // invoke by body just in case some nested tag configures me invokeBody(output); final Widget parent = getParentWidget(); if (parent == null) { throw new JellyTagException( "This tag must be nested within a Widget or a Window" ); } if (var == null) { throw new JellyTagException("This tag requires a context variable name"); } final Color color = new Color( parent.getDisplay(), ColorConverter.getInstance().parse(getRgb()) ); // store the Color in the context context.setVariable(var, color); } } 1.1 jakarta-commons/jelly/jelly-tags/swt/src/java/org/apache/commons/jelly/tags/swt/FontTag.java Index: FontTag.java =================================================================== /* * Copyright 2002,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.commons.jelly.tags.swt; import org.apache.commons.jelly.JellyTagException; import org.apache.commons.jelly.TagSupport; import org.apache.commons.jelly.XMLOutput; import org.apache.commons.jelly.tags.swt.converters.ColorConverter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.widgets.Widget; /** * Class to create a [EMAIL PROTECTED] Font} instance within Jelly SWT. * * @author <a href="mailto:[EMAIL PROTECTED]">Marcus Crafter</a> * @author Written with much help thanks to the ImageTag class * @version CVS $Id: FontTag.java,v 1.1 2004/09/05 15:25:02 dion Exp $ */ public class FontTag extends TagSupport { /** The Log to which logging calls will be made. */ private static final Log log = LogFactory.getLog(FontTag.class); /** Font type */ private String type; /** Font size */ private int size; /** Font style */ private String style; /** Font variable name */ private String var; /** * Set the type of this [EMAIL PROTECTED] Font} * * @param type [EMAIL PROTECTED] Font} type name */ public void setType(final String type) { this.type = type; } /** * Obtain the [EMAIL PROTECTED] Font} type name * * @return the [EMAIL PROTECTED] Font} type name */ public String getType() { return this.type; } /** * Set the size of this [EMAIL PROTECTED] Font} * * @param size [EMAIL PROTECTED] Font} size */ public void setSize(final int size) { this.size = size; } /** * Obtain the [EMAIL PROTECTED] Font} size * * @return the [EMAIL PROTECTED] Font} size */ public int getSize() { return this.size; } /** * Set the style of this [EMAIL PROTECTED] Font} (eg. bold, normal, italics) * * @param style the style of this [EMAIL PROTECTED] Font} */ public void setStyle(final String style) { this.style = style; } /** * Obtain the style of this [EMAIL PROTECTED] Font} * * @return the style of this [EMAIL PROTECTED] Font} */ public String getStyle() { return this.style; } /** * Sets the variable name * * @param var the variable name of this [EMAIL PROTECTED] Font} instance */ public void setVar(final String var) { this.var = var; } /** * Obtain the variable name. * * @return the variable name of this [EMAIL PROTECTED] Font} instance */ public String getVar() { return this.var; } /** * @return the parent widget which will deliver us a [EMAIL PROTECTED] Device} reference */ public Widget getParentWidget() { final WidgetTag tag = (WidgetTag) findAncestorWithClass(WidgetTag.class); if (tag != null) { return tag.getWidget(); } return null; } // Tag interface //------------------------------------------------------------------------- /** * Creates a [EMAIL PROTECTED] Font} instance as defined by the type, size and style * attributes, and stores this [EMAIL PROTECTED] Font} instance in the Context so that * it can be referenced in the Jelly script. * * @param output [EMAIL PROTECTED] XMLOutput} reference * @throws JellyTagException if an error occurs * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput) */ public void doTag(final XMLOutput output) throws JellyTagException { // invoke by body just in case some nested tag configures me invokeBody(output); final Widget parent = getParentWidget(); if (parent == null) { throw new JellyTagException( "This tag must be nested within a Widget or a Window" ); } if (var == null) { throw new JellyTagException("This tag requires a context variable name"); } if (type == null) { throw new JellyTagException("This tag requires a font type name"); } if (size <= 0) { throw new JellyTagException("This tag requires a font size greater than 0"); } if (style == null) { if (log.isDebugEnabled()) { log.debug("No style set on font " + type + ", defaulting to normal"); } } final Font font = new Font( parent.getDisplay(), type, size, style == null ? SWT.NORMAL : SwtHelper.parseStyle(SWT.class, style) ); // store the Color in the context context.setVariable(var, font); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]