diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 90825e2392b2d70e43c7a25b8a3752299a933894 (patch) | |
tree | e33aa27f02b74604afbfd0ea4f1cfca8833d882a /qtjava/designer/juic/java/methods.xsl | |
download | tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtjava/designer/juic/java/methods.xsl')
-rw-r--r-- | qtjava/designer/juic/java/methods.xsl | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/qtjava/designer/juic/java/methods.xsl b/qtjava/designer/juic/java/methods.xsl new file mode 100644 index 00000000..388ba32e --- /dev/null +++ b/qtjava/designer/juic/java/methods.xsl @@ -0,0 +1,259 @@ +<?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"> + KCmdLineArgs.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"); + KApplication app = new KApplication(); + </xsl:when> + <xsl:otherwise> + QApplication app = new QApplication(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 QPixmap 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 < 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 QPixmap(pic); + } else { + return new QPixmap(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 = 'QDataTable' or @class = 'QDataBrowser']"> + <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 = 'QDataTable'"> + if ( <xsl:value-of select="$dataName"/> != null ) { + QSqlCursor cursor = <xsl:value-of select="$dataName"/>.sqlCursor(); + if ( cursor == null ) {<xsl:choose> + <xsl:when test="$conn = '(default)'"> + cursor = new QSqlCursor( "<xsl:value-of select="$table"/>" );</xsl:when> + <xsl:otherwise> + cursor = new QSqlCursor( "<xsl:value-of select="$table"/>", true, QSqlDatabase.database("<xsl:value-of select="$conn"/>") );</xsl:otherwise> + </xsl:choose> + if ( <xsl:value-of select="$dataName"/>.isReadOnly() ) + cursor.setMode( QSqlCursor.ReadOnly ); + <xsl:value-of select="$dataName"/>.setSqlCursor( cursor, false, true ); + } + if ( !cursor.isActive() ) + <xsl:value-of select="$dataName"/>.refresh( QDataTable.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)'"> + QSqlCursor cursor = new QSqlCursor( "<xsl:value-of select="$table"/>" );</xsl:when> + <xsl:otherwise> + QSqlCursor cursor = new QSqlCursor( "<xsl:value-of select="$table"/>", true, QSqlDatabase.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>( "</xsl:text> + <xsl:value-of select="java:toJavaString(property[@name = 'text']/string)"/> + <xsl:text>" ) );</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>( "</xsl:text> + <xsl:value-of select="java:toJavaString(property[@name='text']/string)"/> + <xsl:if test="property[@name='image']"> + </xsl:if> + <xsl:text>" ) );</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>( "</xsl:text> + <xsl:value-of select="java:toJavaString(property[@name='text']/string)"/> + <xsl:text>" ) );</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>( "</xsl:text> + <xsl:value-of select="java:toJavaString(@text)"/> + <xsl:text>" ) );</xsl:text> + </xsl:for-each> + } + </xsl:template> + +</xsl:stylesheet> + |