00001 <?xml version="1.0" encoding="UTF-8" ?> 00002 <!-- $Id: expand.xsl,v 1.12 2004/08/24 17:23:10 ensonic Exp $ 00003 * @file expand.xsl 00004 * @author Stefan Kost <ensonic@users.sf.net> 00005 * @date Thu Jan 17 11:22:38 2002 00006 * 00007 * @brief inserts default values into dialogs 00008 * @ingroup gitkcoretransformation 00009 * 00010 --> 00011 <xsl:stylesheet version="1.0" 00012 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 00013 xmlns:giml="http://gitk.sourceforge.net/" 00014 xmlns:dc="http://purl.org/dc/elements/1.1/" 00015 xmlns:i18n="http://apache.org/cocoon/i18n/2.0" 00016 xmlns="http://gitk.sourceforge.net/" 00017 exclude-result-prefixes="giml"> 00018 00019 <xsl:output method="xml" doctype-system="http://gitk.sourceforge.net/giml.dtd"/> 00020 00021 <xsl:template match="giml:widget"> 00022 <xsl:copy> 00023 <xsl:copy-of select="@*"/> 00024 <xsl:variable name="type" select="./@type"/> 00025 <xsl:if test="count(@hasFocus)=0"> 00026 <xsl:choose> 00027 <!-- if this element is the same as the first non-label --> 00028 <xsl:when test="@id=((//giml:widgetgroup/giml:widget[@type!='label'])[1])/@id"> 00029 <xsl:attribute name="hasFocus">true</xsl:attribute> 00030 </xsl:when> 00031 <xsl:otherwise> 00032 <xsl:attribute name="hasFocus">false</xsl:attribute> 00033 </xsl:otherwise> 00034 </xsl:choose> 00035 </xsl:if> 00036 <xsl:if test="count(giml:disabled)=0"> 00037 <giml:disabled>false</giml:disabled> 00038 </xsl:if> 00039 <xsl:if test="count(giml:required)=0"> 00040 <giml:required>false</giml:required> 00041 </xsl:if> 00042 <xsl:if test="count(giml:value)=0"> 00043 <xsl:choose> 00044 <xsl:when test="$type='characterinput'"><giml:value/></xsl:when> 00045 <xsl:when test="$type='characterinput_alphabetic'"><giml:value/></xsl:when> 00046 <xsl:when test="$type='optionchoice'"><giml:value>0</giml:value></xsl:when> 00047 <xsl:when test="$type='optionchoice_single'"><giml:value>0</giml:value></xsl:when> 00048 <xsl:when test="$type='optionchoice_single_compact'"><giml:value>0</giml:value></xsl:when> 00049 <xsl:otherwise><giml:value/></xsl:otherwise> 00050 </xsl:choose> 00051 </xsl:if> 00052 <xsl:apply-templates/> 00053 </xsl:copy> 00054 </xsl:template> 00055 00056 <xsl:template match="giml:meta"> 00057 <xsl:copy> 00058 <xsl:copy-of select="@*"/> 00059 <xsl:if test="count(dc:title)=0"> 00060 <dc:title>unnamed</dc:title> 00061 </xsl:if> 00062 <xsl:apply-templates/> 00063 </xsl:copy> 00064 </xsl:template> 00065 00066 <xsl:template match="giml:dialog"> 00067 <xsl:copy> 00068 <xsl:copy-of select="@*"/> 00069 <xsl:if test="count(@focus)=0"> 00070 <xsl:attribute name="focus">main</xsl:attribute> 00071 </xsl:if> 00072 <xsl:if test="count(giml:meta)=0"> 00073 <giml:meta> 00074 <dc:title>unnamed</dc:title> 00075 </giml:meta> 00076 </xsl:if> 00077 <xsl:if test="count(giml:widgetgroup)=0"> 00078 <giml:widgetgroup/> 00079 </xsl:if> 00080 <xsl:apply-templates/> 00081 </xsl:copy> 00082 </xsl:template> 00083 00084 <xsl:template match="@*|node()"> 00085 <xsl:copy> 00086 <xsl:apply-templates select="@*|node()"/> 00087 </xsl:copy> 00088 </xsl:template> 00089 00090 </xsl:stylesheet>