1 /* 2 * $HeadURL: https://mindtreeinsight.svn.sourceforge.net/svnroot/mindtreeinsight/insight/insight-ui/trunk/src/main/java/com/mindtree/techworks/insight/gui/widgets/InsightToolbarButton.java $ 3 * $Date: 2007-12-16 05:20:57 -0700 (Sun, 16 Dec 2007) $ 4 * $Revision: 30 $ 5 * $Author: bindul $ 6 * 7 * Copyright (c) 2005 MindTree Consulting Ltd. 8 * 9 * This file is part of Insight. 10 * 11 * Insight is free software: you can redistribute it and/or modify it under the 12 * terms of the GNU General Public License as published by the Free Software 13 * Foundation, either version 3 of the License, or (at your option) any later 14 * version. 15 * 16 * Insight is distributed in the hope that it will be useful, but 17 * WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 19 * Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License along with 22 * Insight. If not, see <http://www.gnu.org/licenses/>. 23 */ 24 package com.mindtree.techworks.insight.gui.widgets; 25 26 import java.awt.event.ActionListener; 27 import java.net.URL; 28 29 import javax.swing.ImageIcon; 30 import javax.swing.JButton; 31 32 import com.mindtree.techworks.insight.Controller; 33 import com.mindtree.techworks.insight.gui.action.IAction; 34 35 /** 36 * 37 * The <code>InsightToolbarButton</code> class represents all toolbar 38 * button instances in Insight. It contains specific behavior for enabling 39 * and disabling, registering with the Controller for data related 40 * call-back. 41 * 42 * @see com.mindtree.techworks.insight.Controller 43 * @see com.mindtree.techworks.insight.gui.action.IAction 44 * @see com.mindtree.techworks.insight.gui.Presentation 45 * 46 * @author Regunath B 47 * @version 1.0, 05/03/11 48 */ 49 50 public class InsightToolbarButton extends JButton implements IAction { 51 52 /** 53 * Used for object serialization 54 */ 55 private static final long serialVersionUID = 1L; 56 57 /** 58 * The type of this IAction 59 */ 60 private int type; 61 62 /** 63 * The Controller instance for this IAction 64 */ 65 private Controller controller; 66 67 /** 68 * Constructor for this class 69 * @param type the valid type of this InsightToolbarButton as defined in IAction 70 * @param name null or the name of the button 71 * @param imageName relative file path to the image for the JButton 72 * @param toolTip tooltip text for the JButton 73 * @param actionListener ActionListener instance that processes ActionEvent generated on this JButton 74 * @see IAction 75 */ 76 public InsightToolbarButton (int type, String name, String imageName, 77 String toolTip, ActionListener actionListener) { 78 this.type = type; 79 if (name != null) { 80 this.setName(name); 81 } 82 this.setIcon(new ImageIcon(imageName)); 83 this.setToolTipText(toolTip); 84 this.addActionListener(actionListener); 85 } 86 87 /** 88 * Constructor for this class 89 * @param type the valid type of this InsightToolbarButton as defined in IAction 90 * @param name null or the name of the button 91 * @param imageUrl URL to retrieve the image 92 * @param toolTip tooltip text for the JButton 93 * @param actionListener ActionListener instance that processes ActionEvent generated on this JButton 94 * @see IAction 95 */ 96 public InsightToolbarButton (int type, String name, URL imageUrl, 97 String toolTip, ActionListener actionListener) { 98 this.type = type; 99 if (name != null) { 100 this.setName(name); 101 } 102 this.setIcon(new ImageIcon(imageUrl)); 103 this.setToolTipText(toolTip); 104 this.addActionListener(actionListener); 105 } 106 107 /** 108 * Constructor for this class 109 * @param type the valid type of this InsightToolbarButton as defined in IAction 110 * @param name null or the name of the button 111 * @param image The image 112 * @param toolTip tooltip text for the JButton 113 * @param actionListener ActionListener instance that processes ActionEvent generated on this JButton 114 * @see IAction 115 */ 116 public InsightToolbarButton (int type, String name, ImageIcon imageIcon, 117 String toolTip, ActionListener actionListener) { 118 this.type = type; 119 if (name != null) { 120 this.setName(name); 121 } 122 this.setIcon(imageIcon); 123 this.setToolTipText(toolTip); 124 this.addActionListener(actionListener); 125 } 126 127 /** 128 * @return Returns the type. 129 */ 130 public int getType() { 131 return type; 132 } 133 134 /** 135 * @return Returns the controller. 136 */ 137 public Controller getController() { 138 return controller; 139 } 140 141 /** 142 * @param controller The controller to set. 143 */ 144 public void setController(Controller controller) { 145 this.controller = controller; 146 this.controller.registerAction(this); 147 } 148 149 /** 150 * Sets the icon of this button to the specified image and the tooltip 151 * to the specified string 152 * @param iconName the image name 153 * @param toolTip the tooltip text 154 */ 155 public void setIconAndToolTip(String iconName, String toolTip) { 156 this.setIcon(new ImageIcon(iconName)); 157 this.setToolTipText(toolTip); 158 } 159 160 /** 161 * Sets the icon of this button to the specified image and the tooltip 162 * to the specified string 163 * @param imageIcon The image icon 164 * @param toolTip the tooltip text 165 */ 166 public void setIconAndToolTip(ImageIcon imageIcon, String toolTip) { 167 this.setIcon(imageIcon); 168 this.setToolTipText(toolTip); 169 } 170 171 }