001: /*
002: * CreateTableToolBar.java
003: *
004: * Copyright (C) 2002, 2003, 2004, 2005, 2006 Takis Diakoumis
005: *
006: * This program is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU General Public License
008: * as published by the Free Software Foundation; either version 2
009: * of the License, or any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: * GNU General Public License for more details.
015: *
016: * You should have received a copy of the GNU General Public License
017: * along with this program; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
019: *
020: */
021:
022: package org.executequery.gui.table;
023:
024: import java.awt.event.ActionEvent;
025: import java.awt.event.ActionListener;
026:
027: import javax.swing.BoxLayout;
028: import javax.swing.JButton;
029: import javax.swing.JPanel;
030: import org.executequery.GUIUtilities;
031: import org.underworldlabs.swing.actions.ActionUtilities;
032:
033: /* ----------------------------------------------------------
034: * CVS NOTE: Changes to the CVS repository prior to the
035: * release of version 3.0.0beta1 has meant a
036: * resetting of CVS revision numbers.
037: * ----------------------------------------------------------
038: */
039:
040: /**
041: *
042: * @author Takis Diakoumis
043: * @version $Revision: 1.5 $
044: * @date $Date: 2006/09/06 09:30:58 $
045: */
046: public class CreateTableToolBar extends JPanel implements
047: ActionListener {
048:
049: /** The parent panel where this tool bar will be attached */
050: private TableFunction parent;
051:
052: /** The insert row (column) after button */
053: private JButton insertAfterButton;
054:
055: /** The insert row (column) before button */
056: private JButton insertBeforeButton;
057:
058: /** The delete row (column) button */
059: private JButton deleteRowButton;
060:
061: /** The move row (column) up button */
062: private JButton moveUpButton;
063:
064: /** The move row (column) down button */
065: private JButton moveDownButton;
066:
067: /** Whether the move buttons are available */
068: private boolean canMove;
069:
070: public CreateTableToolBar(TableFunction parent) {
071: this (parent, true);
072: }
073:
074: public CreateTableToolBar(TableFunction parent, boolean canMove) {
075: super ();
076: setLayout(new BoxLayout(this , BoxLayout.Y_AXIS));
077: this .parent = parent;
078: this .canMove = canMove;
079: initialiseButtons();
080: }
081:
082: /** <p>Creates the tool bar buttons and associates
083: * these with the relevant listener. */
084: private void initialiseButtons() {
085: insertAfterButton = ActionUtilities
086: .createButton(
087: this ,
088: GUIUtilities
089: .getAbsoluteIconPath("ColumnInsertAfter16.gif"),
090: "Insert a value after the current selection",
091: null);
092:
093: insertBeforeButton = ActionUtilities
094: .createButton(
095: this ,
096: GUIUtilities
097: .getAbsoluteIconPath("ColumnInsertBefore16.gif"),
098: "Insert a value before the current selection",
099: null);
100:
101: deleteRowButton = ActionUtilities.createButton(this ,
102: GUIUtilities.getAbsoluteIconPath("ColumnDelete16.gif"),
103: "Delete the selected value", null);
104:
105: add(insertAfterButton);
106: add(insertBeforeButton);
107: add(deleteRowButton);
108:
109: if (canMove) {
110: moveUpButton = ActionUtilities.createButton(this ,
111: "Up16.gif", "Move the selection up", null);
112:
113: moveDownButton = ActionUtilities.createButton(this ,
114: "Down16.gif", "Move the selection down", null);
115:
116: add(moveUpButton);
117: add(moveDownButton);
118: }
119:
120: }
121:
122: /** <p>Enables/disables as specified the buttons
123: * insert before, move up and move down.
124: *
125: * @param <code>true</code> to enable these buttons
126: * <code>false</code> to disable these buttons
127: */
128: public void enableButtons(boolean enable) {
129: insertBeforeButton.setEnabled(enable);
130:
131: if (canMove) {
132: moveUpButton.setEnabled(enable);
133: moveDownButton.setEnabled(enable);
134: }
135: }
136:
137: /** <p>Determines which button was selected and
138: * calls the relevant method to execute that action.
139: *
140: * @param the event initiating this action
141: */
142: public void actionPerformed(ActionEvent e) {
143: Object button = e.getSource();
144:
145: if (button == insertAfterButton)
146: parent.insertAfter();
147:
148: else if (button == insertBeforeButton)
149: parent.insertBefore();
150:
151: else if (button == deleteRowButton)
152: parent.deleteRow();
153:
154: else if (button == moveUpButton)
155: parent.moveColumnUp();
156:
157: else if (button == moveDownButton)
158: parent.moveColumnDown();
159:
160: }
161:
162: }
|