1 /* 2 * Copyright (c) 2003-2008 by Cosylab d. d. 3 * 4 * This file is part of CosyBeans-Common. 5 * 6 * CosyBeans-Common is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * CosyBeans-Common is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with CosyBeans-Common. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 package com.cosylab.gui.components.table.cells; 21 22 import java.awt.event.ActionEvent; 23 24 import javax.swing.AbstractAction; 25 26 27 28 /** 29 * Action, which executes command. 30 * 31 * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a> 32 */ 33 public class CommandAction extends AbstractAction 34 { 35 private static final long serialVersionUID = 1L; 36 private Command command; 37 private TableCell cell; 38 39 /** 40 * Constructs a new CommandAction that belongs to a specific cell and can 41 * execute the given command. 42 * 43 * @param command executable command 44 * @param cell owner of the action 45 */ 46 public CommandAction(Command command, TableCell cell) 47 { 48 super(command.getName()); 49 50 this.command = command; 51 this.cell = cell; 52 } 53 54 /* (non-Javadoc) 55 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) 56 */ 57 public void actionPerformed(ActionEvent e) 58 { 59 try { 60 command.execute(cell); 61 } catch (Exception ex) { 62 ex.printStackTrace(); 63 } 64 } 65 } 66 67 /* __oOo__ */