Hi,
I lately implemented custom saxon instructions
that allow to create a message boxes or option dialogs from within an XSLT
script.
Since it turned out to be pretty easy
to implement and very useful within my framework, I just wanted to share
this idea - and the joy over oxygen, that even this is possible.
One use-cases would be a transformation
that potentially overwrites an existing file and asks the user before doing
so (if the file already exists). The code looks like this:
<xsl:if
test="java:fileExists($myFile)">
<xsl:variable
name="userDecision"
as="xs:integer">
<gui:option-dialog
title="Warning"
options="('Continue', 'Abort')"
default="1">
<xsl:text/>The
file '<xsl:value-of
select="$myFile"/>'
already exists and will be overwritten.<xsl:text/>
</gui:option-dialog>
</xsl:variable>
<xsl:if
test="$userDecision = 1">
<xsl:message
terminate="yes">Abort
on user request</xsl:message>
</xsl:if>
</xsl:if>
To implement such extension instructions
you will have to implement your own java library and put it into oxygens
lib folder.
To do so follow the saxon documentation
at
http://www.saxonica.com/documentation/#!extensibility/instructions
and - much more important - look at
the sample of Saxon-SQL, which is included in the open source edition of
saxon:
http://sourceforge.net/projects/saxon/files/Saxon-HE/)
Make sure to use the same version as
included into oxygen!
To open the actual dialog you can use
something like
JOptionPane.showOptionDialog(
(Frame)PluginWorkspaceProvider.getPluginWorkspace().getParentFrame(),
textString,
titleString,
(optionList.size()
== 2) ? JOptionPane.YES_NO_OPTION
: JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
optionList.toArray(new
String[optionList.size()]),
defaultOption);
(If someone should be interested - I
will also gladly share my java code.)
There is also an entry in the forum
for this:
http://www.oxygenxml.com/forum/topic11531.html
Regards,
PatrikGDV Dienstleistungs-GmbH & Co. KG
Glockengießerwall 1
D-20095 Hamburg
www.gdv-dl.de
Sitz und Registergericht: Hamburg
HRA 93 894
USt.-IdNr : DE 205183123
Komplementärin:
GDV Beteiligungsgesellschaft mbH
Sitz und Registergericht: Hamburg
HRB 71 153
Geschäftsführer:
Dr. Jens Bartenwerfer
Michael Bathke
Heiko Beermann
Volker Sonnenburg
------------------------------------------------------------------
Diese E-Mail und alle Anhänge enthalten vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe der E-Mail ist nicht gestattet.
This e-mail and any attached files may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distributionof the material in this e-mail is strictly forbidden.