1 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 27 public class ActionDefinition extends AbstractWidgetDefinition { 28 private String actionCommand; 29 private ActionListener listener; 30 31 public void setActionCommand(String actionCommand) { 32 this.actionCommand = actionCommand; 33 } 34 35 38 public void initializeFrom(WidgetDefinition definition) throws Exception { 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 ("Definition to inherit from is not of the right type! (at "+getLocation()+")"); 49 } 50 } 51 52 public String 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 |