- From: Aaron Reed <aaronr@us.ibm.com>
- Date: Wed, 09 May 2007 19:06:12 -0500
- To: www-forms@w3.org
As Iņaki mentioned, it is a problem for the XForms processor to know
whether the form author intends the user to pick a file or a directory.
And the processor in many cases MUST know in order to create the
widget correctly. For example, in Mozilla when instantiating a file
picker, we'll need to pass in a flag if we want the file picker to pick
a folder instead of a file. This is the case on other platforms and in
different OS's, too, I'm sure.
--Aaron
Iņaki Salinas Bueno wrote:
> Hi all,
>
> I want to suggest include the option of select a folder using upload
> form control (or another form control).
>
> My scenario is:
> - The user had a java.policy defined. This policy allows applets signed
> by X to write/read in a particular folder (choosed by the user).
> - The signing applet (signed by X) must know this folder to be able to
> store the documents in the user's PC.
> - In the XForms+applet application, the user should enter the
> destination folder with other critical information and then call the
> applet sending it this parameters.
>
> I have to use the input control and do copy&paste of the folder's path
> because the upload control isn't able to select a folder. I understand a
> folder as an URI, so I suppose a folder is included in the xsd:anyURI
> type definition, and the upload control is the manager of this type...
> reading the spec I don't see anything wrong in including folder
> selection in the upload control (well, avoiding filename, and maybe
> mediatype and size).
>
> Aaron Reed explained me some problems on knowing if the user wants to
> select a folder or wants to select a file. I don't know how to solve
> this problem.
>
> My use case:
>
> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
>
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:xforms="http://www.w3.org/2002/xforms"
> xmlns:ev="http://www.w3.org/2001/xml-events"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>
> <head>
>
> <title>Test - Select a folder as input</title>
>
> <script language="javascript">
> <![CDATA[
> function sign() {
> //get the instance
> var model = document.getElementById("model");
> var instance = model.getInstanceDocument("data");
>
> //get parameter
> var keystore = instance.getElementsByTagName("keystore");
> var password = instance.getElementsByTagName("password");
> var folder = instance.getElementsByTagName("folder");
>
> //call the applet
>
> document.applets.item("theapplet").sign(keystore[0].firstChild.nodeValue,
> password[0].firstChild.nodeValue, folder[0].firstChild.nodeValue);
> }
> ]]>
> </script>
>
> <xforms:model id="model">
>
> <xforms:instance id="data" xmlns="">
> <data>
> <keystore filename="" mediatype="" size="" />
> <password />
> <folder filename="" mediatype="" size="" />
> </data>
> </xforms:instance>
> <xforms:bind nodeset="instance('data')/keystore"
> type="xsd:anyURI"/>
> <xforms:bind nodeset="instance('data')/password" id="password"
> type="xsd:string"/>
> <xforms:bind nodeset="instance('data')/folder" type="xsd:anyURI"/>
> </xforms:model>
>
> </head>
>
> <body>
>
> <h1>Signing test</h1>
>
> <h2>Key Access</h2>
> <p>
> <xforms:upload ref="instance('data')/keystore">
> <xforms:label>Select your KeyStore</xforms:label>
> <xforms:filename ref="@filename"/>
> <xforms:mediatype ref="@mediatype"/>
> <xforms:size ref="@size"/>
> </xforms:upload>
> <xforms:secret
> bind="password"><xforms:label>Password</xforms:label></xforms:secret>
> </p>
> <h2>Destination folder</h2>
> <p>
> <xforms:upload ref="instance('data')/folder">
> <xforms:label>Folder</xforms:label>
> <xforms:filename ref="@filename"/>
> <xforms:mediatype ref="@mediatype"/>
> <xforms:size ref="@size"/>
> </xforms:upload>
> </p>
>
> <p>
> <xforms:trigger>
> <xforms:label>Sign</xforms:label>
> <xforms:action ev:event="DOMActivate">
> <xforms:load resource="javascript:sign()"/>
> </xforms:action>
> </xforms:trigger>
> </p>
>
>
> <!--* APPLET FIRMA *-->
> <applet code="signing.Sign.class"
> archive="sSigning.jar"
> type="application/x-java-applet"
> width="200" height="200" id="theapplet">
> Signing no se ha podido cargar
> </applet>
> <!-- -->
>
> </body>
>
> </html>
>
>
> Regards
>
> Iņaki
Received on Thursday, 10 May 2007 00:13:35 UTC