package org.openflexo.fib.editor.controller; import javax.swing.Icon; import org.openflexo.fib.model.FIBModelObject; public class EditorAction { private String actionName; private Icon actionIcon; private ActionPerformer performer; private ActionAvailability availability; public EditorAction(String actionName, Icon actionIcon, ActionPerformer performer, ActionAvailability availability) { super(); this.actionName = actionName; this.actionIcon = actionIcon; this.performer = performer; this.availability = availability; } public static abstract class ActionPerformer { public abstract FIBModelObject performAction(FIBModelObject object); } public static abstract class ActionAvailability { public abstract boolean isAvailableFor(FIBModelObject object); } public String getActionName() { return actionName; } public Icon getActionIcon() { return actionIcon; } public ActionPerformer getPerformer() { return performer; } public ActionAvailability getAvailability() { return availability; } }