001 /* 002 * $Id: Targetable.java,v 1.2 2005/10/10 18:02:41 rbair Exp $ 003 * 004 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle, 005 * Santa Clara, California 95054, U.S.A. All rights reserved. 006 * 007 * This library is free software; you can redistribute it and/or 008 * modify it under the terms of the GNU Lesser General Public 009 * License as published by the Free Software Foundation; either 010 * version 2.1 of the License, or (at your option) any later version. 011 * 012 * This library is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this library; if not, write to the Free Software 019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 020 */ 021 022 package org.jdesktop.swingx.action; 023 024 025 /** 026 * An interface which exposes the allowable actions to a TargetManager. 027 * The getCommands method will expose the allowable actions to another class 028 * and the doCommand method is called to invoke an action on the class. 029 * <p> 030 * Usually, the command key will be the key value of the Action. For components 031 * This could be the ActionMap keys. For actions managed with the ActionManager, 032 * this will be the value of an actions Action.ACTION_COMMAND_KEY 033 * 034 * @see TargetManager 035 * @author Mark Davidson 036 */ 037 public interface Targetable { 038 039 /** 040 * Perform the command using the object value. 041 * 042 * @param command is a Action.ACTION_COMMAND_KEY 043 * @param value an arbitrary value. Usually this will be 044 * EventObject which trigered the command. 045 */ 046 boolean doCommand(Object command, Object value); 047 048 /** 049 * Return a flag that indicates if a command is supported. 050 * 051 * @param command is a Action.ACTION_COMMAND_KEY 052 * @return true if command is supported; false otherwise 053 */ 054 boolean hasCommand(Object command); 055 056 /** 057 * Returns an array of supported commands. If this Targetable 058 * doesn't support any commands (which is unlikely) then an 059 * empty array is returned. 060 * 061 * @return array of supported commands 062 */ 063 Object[] getCommands(); 064 }