Demo
Attribute management with JavaScript
Code:
<applet name="jumpLoaderApplet"
code="jmaster.jumploader.app.JumpLoaderApplet.class"
archive="jumploader_z.jar"
width="715"
height="450"
mayscript>
<param name="uc_uploadUrl" value="partitionedUploadHandler.php"/>
<param name="ac_fireUploaderSelectionChanged" value="true"/>
<param name="ac_fireUploaderFileStatusChanged" value="true"/>
</applet>
<!-- callback methods -->
<script language="javascript">
/**
* uploader selection changed notification
*/
function uploaderSelectionChanged( uploader ) {
dumpFileAttributes();
}
/**
* file status changed notification
*/
function uploaderFileStatusChanged( uploader, file ) {
traceEvent( "uploaderFileStatusChanged, index=" + file.getIndex() + ", status=" + file.getStatus() + ", content=" + file.getResponseContent() );
}
/**
* trace event to events textarea
*/
function traceEvent( message ) {
document.debugForm.txtEvents.value += message + "\r\n";
}
</script>
<!-- debug auxiliary methods -->
<script language="javascript">
/**
* dump attributes of uploader into html
*/
function dumpAttributes( attrSet, removeFunctionName ) {
var n = attrSet.getAttributeCount();
var content = "";
if( n > 0 ) {
content = "<table class='dataTableInner'>";
content += "<tr>" +
"<td class='dataColumnHeader'>#</td>" +
"<td class='dataColumnHeader'>Name</td>" +
"<td class='dataColumnHeader'>Value</td>" +
"<td class='dataColumnHeader'>Send</td>" +
"<td class='dataColumnHeader'>Action</td>" +
"</tr>";
for( i = 0; i < n; i++ ) {
var attr = attrSet.getAttributeAt( i );
content += "<tr class='dataRow" + ( i % 2 == 0 ? "Even" : "Odd" ) + "'>";
content += "<td class='dataRownum'>" + ( i + 1 ) + "</td>";
content += "<td class='dataText'>" + attr.getName() + "</td>";
content += "<td class='dataText'>" + attr.getStringValue() + "</td>";
content += "<td class='dataText'>" + attr.isSendToServer() + "</td>";
content += "<td class='dataText'><a href='javascript:" +
removeFunctionName + "(" + i + ")'>remove</a></td>";
content += "</tr>";
}
content += "</table>";
} else {
content = "No attributes";
}
return content;
}
/**
* dump attributes of uploader into html
*/
function dumpUploaderAttributes() {
var uploader = document.jumpLoaderApplet.getUploader();
var attrSet = uploader.getAttributeSet();
var content = dumpAttributes( attrSet, "removeUploaderAttribute" );
document.getElementById( "uploaderAttributes" ).innerHTML = content;
}
/**
* add attribute to uploader
*/
function createUploaderAttribute() {
var uploader = document.jumpLoaderApplet.getUploader();
var attrSet = uploader.getAttributeSet();
var name = document.debugForm.uploaderAttributeName.value;
var value = document.debugForm.uploaderAttributeValue.value;
var attr = attrSet.createStringAttribute( name, value );
attr.setSendToServer( document.debugForm.uploaderAttributeSendToServer.checked );
dumpUploaderAttributes();
}
/**
* remove uploader attribute at specified index
*/
function removeUploaderAttribute( index ) {
var uploader = document.jumpLoaderApplet.getUploader();
var attrSet = uploader.getAttributeSet();
var attr = attrSet.getAttributeAt( index );
attrSet.removeAttribute( attr );
dumpUploaderAttributes();
}
/**
* return selected file if and only if single file selected
*/
function getSelectedFile() {
var file = null;
var uploader = document.jumpLoaderApplet.getUploader();
var selection = uploader.getSelection();
var numSelected = selection.getSelectedItemCount();
if( numSelected == 1 ) {
var selectedIndex = selection.getSelectedItemIndexAt( 0 );
file = uploader.getFile( selectedIndex );
}
return file;
}
/**
* dump attributes of selected file into html
*/
function dumpFileAttributes() {
var content = "Single file should be selected";
var file = getSelectedFile();
if( file != null ) {
var attrSet = file.getAttributeSet();
content = dumpAttributes( attrSet, "removeFileAttribute" );
}
document.getElementById( "fileAttributes" ).innerHTML = content;
}
/**
* add attribute to selected file
*/
function createFileAttribute() {
var file = getSelectedFile();
if( file != null ) {
var attrSet = file.getAttributeSet();
var name = document.debugForm.fileAttributeName.value;
var value = document.debugForm.fileAttributeValue.value;
var attr = attrSet.createStringAttribute( name, value );
attr.setSendToServer( document.debugForm.fileAttributeSendToServer.checked );
dumpFileAttributes();
} else {
alert( "Single file should be selected" );
}
}
/**
* remove selected file attribute at specified index
*/
function removeFileAttribute( index ) {
var file = getSelectedFile();
if( file != null ) {
var attrSet = file.getAttributeSet();
var attr = attrSet.getAttributeAt( index );
attrSet.removeAttribute( attr );
dumpFileAttributes();
} else {
alert( "Single file should be selected" );
}
}
</script>
<form name="debugForm">
<table class="dataTableOuter" width="100%">
<tr>
<td class="dataHeader">Uploader attributes</td>
<td class="dataHeader">Selected file attributes</td>
</tr>
<tr>
<!-- uploader attributes control -->
<td valign="top">
<table class="formTableOuter">
<tr><td>
<table class="formTableInner">
<tr>
<td class="formLabel">Name:</td>
<td class="formControl"><input type="text" name="uploaderAttributeName"></td>
</tr>
<tr>
<td class="formLabel">Value:</td>
<td class="formControl"><input type="text" name="uploaderAttributeValue"></td>
</tr>
<tr>
<td class="formLabel">Send to server:</td>
<td class="formControl"><input type="checkbox" name="uploaderAttributeSendToServer"></td>
</tr>
</table>
</td></tr>
<tr><td class="formFooter">
<input type="button" value="set" onClick="createUploaderAttribute()">
</td></tr>
</table>
<p id="uploaderAttributes"><p></p>
<input type="button" value="refresh" onClick="dumpUploaderAttributes()">
</td>
<!-- file attributes control -->
<td valign="top">
<table class="formTableOuter">
<tr><td>
<table class="formTableInner">
<tr>
<td class="formLabel">Name:</td>
<td class="formControl"><input type="text" name="fileAttributeName"></td>
</tr>
<tr>
<td class="formLabel">Value:</td>
<td class="formControl"><input type="text" name="fileAttributeValue"></td>
</tr>
<tr>
<td class="formLabel">Send to server:</td>
<td class="formControl"><input type="checkbox" name="fileAttributeSendToServer"></td>
</tr>
</table>
</td></tr>
<tr><td class="formFooter">
<input type="button" value="set" onClick="createFileAttribute()">
</td></tr>
</table>
<p id="fileAttributes"><p></p>
<input type="button" value="refresh" onClick="dumpFileAttributes()">
</td>
</tr>
</table>
<p>Events:<br>
<textarea name="txtEvents" style="width:100%; font:10px monospace" rows="10" wrap="off" id="txtEvents"></textarea>
<p></p>
</form>
| advertising | — easy and efficient web file manager. |