<?xml version="1.0" encoding="UTF-8" ?> | |
<!-- | |
Licensed to the Apache Software Foundation (ASF) under one | |
or more contributor license agreements. See the NOTICE file | |
distributed with this work for additional information | |
regarding copyright ownership. The ASF licenses this file | |
to you under the Apache License, Version 2.0 (the | |
"License"); you may not use this file except in compliance | |
with the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, | |
software distributed under the License is distributed on an | |
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations | |
under the License. | |
--> | |
<library> | |
<class name="serverCombobox" extends="resetCombobox" shownitems="15"> | |
<attribute name="serverCount" type="number" value="0" /> | |
<attribute name="firstItem" type="number" value="0" /> | |
<attribute name="idToSelect" type="number" value="0" /> | |
<handler name="oninit"> | |
if ($debug) Debug.write("serverCombobox::oninit "); | |
var dh = new lz.datasetHelper(this); | |
dh.setServiceSource('ServerService/getServers', {start: 0, max: 9999}); | |
dh.successHandler = processServers; | |
dh.call(); | |
</handler> | |
<method name="processServers" args="p,d"> | |
<![CDATA[ | |
var dp = d.getPointer(); | |
if ($debug) Debug.write("processServers: dp -> ", dp); | |
p.serverCount = dp.xpathQuery('/getServersResponse/return/last()'); | |
p.serverCount = p.serverCount == null ? 0 : p.serverCount; | |
var servers = new Array(); | |
if (p.serverCount > 1) { | |
//servers == Array in case > 1 or just server | |
for (var i = 1; i <= p.serverCount; ++i) { | |
p.addServer(dp, i, servers); | |
} | |
} else if (p.serverCount > 0) { | |
p.addServer(dp, -1, servers); | |
} | |
if ($debug) Debug.write("processServers: servers -> ", servers); | |
p.reset(); | |
for (var i = 0; i < servers.length; ++i) { | |
p.addItem(servers[i].name, servers[i].value); | |
} | |
if (p.idToSelect != 0) { | |
p.selectItem(p.idToSelect); | |
p.idToSelect = 0; | |
} else { | |
p.selectItem(p.firstItem); | |
} | |
if ($debug) Debug.write("processServers: p -> ", p); | |
]]> | |
</method> | |
<method name="addServer" args="dp, i, servers"> | |
<![CDATA[ | |
var basePath = '/getServersResponse/return' + (i > -1 ? '[' + i + ']' : '') + '/'; | |
var sid = dp.xpathQuery(basePath + 'id/text()'); | |
servers[servers.length] = {name: dp.xpathQuery(basePath + 'name/text()'), value: sid}; | |
if (this.firstItem == 0) { | |
this.firstItem = sid; | |
} | |
]]> | |
</method> | |
</class> | |
</library> |