| <?xml version="1.0"?> |
| <!-- |
| 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. |
| --> |
| |
| <!-- |
| @version $Id$ |
| --> |
| |
| <fd:form xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"> |
| |
| <fd:widgets> |
| <fd:tree id="directories" root-visible="true" selection="single"> |
| <fd:tree-model type="source" src="context://samples/blocks/forms"> |
| <!-- keep only directories --> |
| <fd:fileset> |
| <fd:exclude pattern="*"/> |
| </fd:fileset> |
| </fd:tree-model> |
| |
| <fd:on-selection-changed> |
| <fd:javascript> |
| if (event.isAddedPath()) { |
| // Change the directory displayed in the file panel |
| var source = event.tree.model.getNode(event.path); |
| var filesPanel = event.source.lookupWidget("../files"); |
| filesPanel.model.setRootSource(source); |
| // Clear the message in the status bar |
| event.source.lookupWidget("../messages").value = ""; |
| } |
| </fd:javascript> |
| </fd:on-selection-changed> |
| </fd:tree> |
| |
| <fd:tree id="files" root-visible="false"> |
| <fd:tree-model type="source" src="context://samples/blocks/forms"/> |
| <fd:on-selection-changed> |
| <fd:javascript> |
| var files = event.source; |
| var model = files.model; |
| var messages = event.source.lookupWidget("../messages"); |
| var count = event.source.selectionCount; |
| if (count == 0) { |
| messages.setValue("No selection"); |
| } else if (count == 1) { |
| var src = model.getNode(files.selectionPath); |
| messages.setValue(src.name + " - " + src.contentLength + " bytes"); |
| } else { |
| messages.setValue(count + " files selected"); |
| } |
| </fd:javascript> |
| </fd:on-selection-changed> |
| </fd:tree> |
| |
| <fd:output id="messages"> |
| <fd:initial-value>No selection</fd:initial-value> |
| <fd:datatype base="string"/> |
| </fd:output> |
| </fd:widgets> |
| |
| </fd:form> |