KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > cocoon > forms > formmodel > ActionDefinition


1 /*
2  * Copyright 1999-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.cocoon.forms.formmodel;
17
18 import org.apache.cocoon.forms.event.ActionEvent;
19 import org.apache.cocoon.forms.event.ActionListener;
20 import org.apache.cocoon.forms.event.WidgetEventMulticaster;
21
22 /**
23  * The {@link WidgetDefinition} part of a Action widget, see {@link Action} for more information.
24  *
25  * @version $Id: ActionDefinition.java 289538 2005-09-16 13:46:22Z sylvain $
26  */

27 public class ActionDefinition extends AbstractWidgetDefinition {
28     private String JavaDoc actionCommand;
29     private ActionListener listener;
30
31     public void setActionCommand(String JavaDoc actionCommand) {
32         this.actionCommand = actionCommand;
33     }
34     
35     /**
36      * initialize this definition with the other, sort of like a copy constructor
37      */

38     public void initializeFrom(WidgetDefinition definition) throws Exception JavaDoc {
39         super.initializeFrom(definition);
40         
41         if(definition instanceof ActionDefinition) {
42             ActionDefinition other = (ActionDefinition)definition;
43             
44             this.actionCommand = other.actionCommand;
45             this.listener = other.listener;
46             
47         } else {
48             throw new Exception JavaDoc("Definition to inherit from is not of the right type! (at "+getLocation()+")");
49         }
50     }
51
52     public String JavaDoc getActionCommand() {
53         return actionCommand;
54     }
55
56     public Widget createInstance() {
57         return new Action(this);
58     }
59
60     public void addActionListener(ActionListener listener) {
61         checkMutable();
62         this.listener = WidgetEventMulticaster.add(this.listener, listener);
63     }
64     
65     public void fireActionEvent(ActionEvent event) {
66         if (this.listener != null) {
67             this.listener.actionPerformed(event);
68         }
69     }
70
71     public boolean hasActionListeners() {
72         return this.listener != null;
73     }
74 }
75
Popular Tags