You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebindings/qtjava/designer/juic/java/methods.xsl

260 lines
11 KiB

<?xml version="1.0" encoding="iso-8859-1"?>
<!--
** Author: Marco Ladermann <marco.ladermann@gmx.de>
** Date: Thu Mar 06 16:08:06 CET 2003 @672 /Internet Time/
**
** This software is free software. It is released under the terms of the
** GNU Lesser General Public Licence (LGPL)
** see http://www.gnu.org/copyleft/lesser.html
**
** These stylesheets are distributed in the hope that they will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-->
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:func="http://exslt.org/functions"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:kde="http://kde.org/functions"
xmlns:java="http://kde.org/java"
>
<!--
** All methods definitions are in this stylesheet
-->
<!--
** Put the definition of all needed method
** @param data opaque data for user purpose
-->
<xsl:template name="putMethods">
<xsl:param name="data"/>
<!-- Do we need a uncompress function for Pixmap's ? -->
<xsl:if test="boolean(//image | //pixmap) and not(/UI/pixmapfunction | /UI/pixmapinproject)">
<xsl:call-template name="putDecodePixmaps"/>
</xsl:if>
<!-- Do we need "polishing" ? -->
<xsl:if test="//property[@name = 'database']">
<xsl:call-template name="putPolish"/>
</xsl:if>
<!-- The slot for a language change signal -->
<xsl:call-template name="putLanguageChangeSlot"/>
</xsl:template>
<!--
** Put the definition of the main method
** @param data opaque data for user purpose
-->
<xsl:template name="putMain">
<xsl:param name="data"/>
<xsl:if test="not($abstract) and $main">
public static void main(String [] args) {
<xsl:choose>
<xsl:when test="$kde">
TDECmdLineArgs.init( args , "<xsl:value-of select="$mainClass"/>", "<xsl:value-of select="$mainClass"/>", "<xsl:value-of select="java:toJavaString(/UI/widget/property[@name='caption']/string)"/>", "version");
TDEApplication app = new TDEApplication();
</xsl:when>
<xsl:otherwise>
TQApplication app = new TQApplication(args);
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$mainClass"/> myWidget = new <xsl:value-of select="$mainClass"/>();
app.setMainWidget( myWidget );
myWidget.show();
app.exec();
}</xsl:if>
</xsl:template>
<xsl:template name="putDecodePixmaps">
/**
* decodePixmap extracts a pixmap from coded data
* @param size of uncompressed data
* @param code string coded data
* @param isCompressed need data to be uncompressed
*/
private static TQPixmap decodePixmap(int size, String code, boolean isCompressed) {
int len = code.length() >> 1;
byte [] data = new byte[len];
try {
for (int i=0, j=0 ; i &lt; len; ++i, j+=2) {
data[i] = (byte)Short.parseShort(code.substring(j, j+2), 16);
}
if (isCompressed) {
byte [] pic = new byte [size];
Inflater inflater = new Inflater();
pic = new byte [size];
inflater.setInput(data);
inflater.inflate(pic, 0, size);
return new TQPixmap(pic);
} else {
return new TQPixmap(data);
}
}
catch (Exception e) {
System.err.println("Problem, while reading image data: "+e.getMessage());
}
return null;
}
</xsl:template>
<xsl:template name="putPolish">
/**
* polish does some last initialization just before the widget
* is displayed. Here we setup:
* i) databases
* ...
*/
public void polish() {
<xsl:for-each select="//widget[@class = 'TQDataTable' or @class = 'TQDataBrowser']">
<xsl:if test="not( property[@name = 'frameworkCode']/bool = 'false' )">
<xsl:variable name="dataName" select="java:getNodeName(.)"/>
<xsl:variable name="conn" select="property[@name='database']/stringlist/string[1]"/>
<xsl:variable name="table" select="property[@name='database']/stringlist/string[2]"/>
<xsl:choose>
<xsl:when test="@class = 'TQDataTable'">
if ( <xsl:value-of select="$dataName"/> != null ) {
TQSqlCursor cursor = <xsl:value-of select="$dataName"/>.sqlCursor();
if ( cursor == null ) {<xsl:choose>
<xsl:when test="$conn = '(default)'">
cursor = new TQSqlCursor( "<xsl:value-of select="$table"/>" );</xsl:when>
<xsl:otherwise>
cursor = new TQSqlCursor( "<xsl:value-of select="$table"/>", true, TQSqlDatabase.database("<xsl:value-of select="$conn"/>") );</xsl:otherwise>
</xsl:choose>
if ( <xsl:value-of select="$dataName"/>.isReadOnly() )
cursor.setMode( TQSqlCursor.ReadOnly );
<xsl:value-of select="$dataName"/>.setSqlCursor( cursor, false, true );
}
if ( !cursor.isActive() )
<xsl:value-of select="$dataName"/>.refresh( TQDataTable.RefreshAll );
}
</xsl:when>
<xsl:otherwise>
if ( <xsl:value-of select="$dataName"/> != null ) {
if ( <xsl:value-of select="$dataName"/>.sqlCursor() == null ) {<xsl:choose>
<xsl:when test="$conn = '(default)'">
TQSqlCursor cursor = new TQSqlCursor( "<xsl:value-of select="$table"/>" );</xsl:when>
<xsl:otherwise>
TQSqlCursor cursor = new TQSqlCursor( "<xsl:value-of select="$table"/>", true, TQSqlDatabase.database("<xsl:value-of select="$conn"/>") );</xsl:otherwise>
</xsl:choose><xsl:text>
</xsl:text>
<xsl:value-of select="$dataName"/>.setSqlCursor( cursor, true );
<xsl:value-of select="$dataName"/>.refresh();
<xsl:value-of select="$dataName"/>.first();
}
}
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:for-each>
super.polish();
}
</xsl:template>
<xsl:template name="putLanguageChangeSlot">
/**
* SLOT
* languageChange sets the strings according to current language
*/
protected void languageChange() {
<!-- all "normal" i18n strings -->
<xsl:for-each select="//*[not(name() = 'item' or name() = 'column' or name() = 'row')]/property/string">
<xsl:apply-templates select="." mode="property">
<xsl:with-param name="name" select="../@name"/>
<xsl:with-param name="data" select="'languageChange'"/>
</xsl:apply-templates>
</xsl:for-each>
<!-- all ListViews -->
<xsl:for-each select="//widget[item]">
<xsl:variable name="contName" select="java:getContainerName(.)"/>
<xsl:for-each select="./column">
<xsl:value-of select="$nlIndent8"/>
<xsl:value-of select="$contName"/>
<xsl:text>.header().setLabel( </xsl:text>
<xsl:value-of select="position() - 1"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="java:tr(kde:isUtf8(property[@name = 'text']/string))"/>
<xsl:text>( &quot;</xsl:text>
<xsl:value-of select="java:toJavaString(property[@name = 'text']/string)"/>
<xsl:text>&quot; ) );</xsl:text>
</xsl:for-each>
<xsl:value-of select="$nlIndent8"/>
<xsl:value-of select="$contName"/>
<xsl:text>.clear();</xsl:text>
<xsl:variable name="containerClass">
<xsl:apply-templates mode="toClass" select="."/>
</xsl:variable>
<xsl:for-each select="item">
<xsl:call-template name="putItemDefinition">
<xsl:with-param name="class" select="$containerClass"/>
<xsl:with-param name="number" select="position() - 1"/>
<!-- xsl:with-param name="data" select=""/ -->
</xsl:call-template>
</xsl:for-each>
</xsl:for-each>
<!-- all Tables -->
<xsl:for-each select="//widget[(column or row) and not(item)]">
<xsl:variable name="table" select="property[@name='name']/cstring"/>
<xsl:for-each select="column">
<xsl:value-of select="$nlIndent8"/>
<xsl:value-of select="$table"/>
<xsl:choose>
<xsl:when test="substring(../@class, 2) = 'ListView'">
<xsl:text>.header()</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>.horizontalHeader()</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:text>.setLabel( </xsl:text>
<xsl:value-of select="position() - 1"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="java:tr(kde:isUtf8(property[@name='text']/string))"/>
<xsl:text>( &quot;</xsl:text>
<xsl:value-of select="java:toJavaString(property[@name='text']/string)"/>
<xsl:if test="property[@name='image']">
</xsl:if>
<xsl:text>&quot; ) );</xsl:text>
</xsl:for-each>
<xsl:for-each select="row">
<xsl:value-of select="$nlIndent8"/>
<xsl:value-of select="$table"/>
<xsl:text>.verticalHeader().setLabel( </xsl:text>
<xsl:value-of select="position() - 1"/>
<xsl:value-of select="java:tr(kde:isUtf8(property[@name='text']/string))"/>
<xsl:text>( &quot;</xsl:text>
<xsl:value-of select="java:toJavaString(property[@name='text']/string)"/>
<xsl:text>&quot; ) );</xsl:text>
</xsl:for-each>
</xsl:for-each>
<!-- Menubar -->
<xsl:variable name="menubar" select="/UI/menubar/property[@name='name']/cstring"/>
<xsl:for-each select="/UI/menubar/item">
<xsl:variable name="findItem">
<xsl:value-of select="$menubar"/>
<xsl:text>.findItem(</xsl:text>
<xsl:value-of select="position()"/>
<xsl:text>)</xsl:text>
</xsl:variable>
<xsl:value-of select="$nlIndent8"/>
<xsl:text>if (</xsl:text>
<xsl:value-of select="$findItem"/>
<xsl:text> != null)</xsl:text>
<xsl:value-of select="$nlIndent8"/>
<xsl:text> </xsl:text>
<xsl:value-of select="$findItem"/>
<xsl:text>.setText( </xsl:text>
<xsl:value-of select="java:tr(kde:isUtf8(@text))"/>
<xsl:text>( &quot;</xsl:text>
<xsl:value-of select="java:toJavaString(@text)"/>
<xsl:text>&quot; ) );</xsl:text>
</xsl:for-each>
}
</xsl:template>
</xsl:stylesheet>