01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.forms.formmodel;
18:
19: import org.apache.cocoon.forms.datatype.SelectionList;
20:
21: /**
22: * A {@link Widget} that can have a selection list. The initial selection list is set by the
23: * widget's {@link WidgetDefinition}, and can be changed afterwards. The selection list can
24: * be removed by setting the list to <code>null</code>.
25: *
26: * @version $Id: SelectableWidget.java 449149 2006-09-23 03:58:05Z crossley $
27: */
28: public interface SelectableWidget extends Widget {
29:
30: /**
31: * Set the widget's selection list given a {@link SelectionList}.
32: *
33: * @param selectionList the selection list or <code>null</code> to have no selection list.
34: */
35: public void setSelectionList(SelectionList selectionList);
36:
37: /**
38: * Set the widget's selection list given a source URI where the list will be read from.
39: *
40: * @param uri the selection list's URI
41: */
42: public void setSelectionList(String uri);
43:
44: /**
45: * Set the widgdet's selection given an object and XPath expressions.
46: *
47: * @param model the selection list model. This is typically a collection or an array of objects
48: * in which <code>valuePath</code> and <code>labelPath</code> will extract some data.
49: * @param valuePath the XPath expression to extract values
50: * @param labelPath the XPath expression to extract labels (can be absent in which case the value is
51: * used as label).
52: */
53: public void setSelectionList(Object model, String valuePath,
54: String labelPath);
55: }
|