/****************************************************************************** * Product: Adempiere ERP & CRM Smart Business Solution * * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * * by the Free Software Foundation. This program is distributed in the hope * * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * For the text or an alternative of this public license, you may reach us * * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ package org.compiere.install.util; import java.awt.BorderLayout; import java.awt.Component; import java.awt.FlowLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JRootPane; import javax.swing.KeyStroke; import org.compiere.util.Env; import org.compiere.util.Msg; /** * Application Confirm Panel. * * if (e.getActionCommand().equals(ConfirmPanel.A_OK)) * * @author Jorg Janke * @version $Id: ConfirmPanel.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $ */ public final class ConfirmPanel extends JPanel { /** * */ private static final long serialVersionUID = 6041019802043360966L; /** * Create OK Button with label text and F4 Shortcut * @param text text * @return OK Button */ public static final JButton createOKButton (String text) { AppsAction aa = new AppsAction (A_OK, KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); button.setDefaultCapable(true); return button; } // createOKButton /** * Create OK Button with Standard text * @param withText with text * @return OK Button */ public static final JButton createOKButton (boolean withText) { if (withText) return createOKButton(Msg.getMsg(Env.getCtx(), A_OK)); return createOKButton(""); } // createOKButton /** * Create Cancel Button wlth label text and register ESC as KeyStroke * @param text text * @return Cancel Button */ public static final JButton createCancelButton (String text) { AppsAction aa = new AppsAction (A_CANCEL, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createCancelButton /** * Create Cancel Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createCancelButton(boolean withText) { if (withText) return createCancelButton(Msg.getMsg(Env.getCtx(), A_CANCEL)); return createCancelButton(""); } // createCancelButton /************************ * Create Refresh Button wlth label text and F5 * @param text text * @return button */ public static final JButton createRefreshButton (String text) { AppsAction aa = new AppsAction (A_REFRESH, KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createRefreshButton /** * Create Refresh Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createRefreshButton (boolean withText) { if (withText) return createRefreshButton(Msg.getMsg(Env.getCtx(), A_REFRESH)); return createRefreshButton(""); } // createRefreshButton /************************ * Create Reset Button wlth label text * @param text text * @return button */ public static final JButton createResetButton (String text) { AppsAction aa = new AppsAction (A_RESET, null, text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createResetButton /** * Create Reset Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createResetButton (boolean withText) { if (withText) return createResetButton(Msg.getMsg(Env.getCtx(), A_RESET)); return createResetButton(null); } // createRefreshButton /************************ * Create Customize Button wlth label text * @param text text * @return button */ public static final JButton createCustomizeButton (String text) { AppsAction aa = new AppsAction (A_CUSTOMIZE, null, text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; // Env.getImageIcon("Preference24.gif")); } // createCustomizeButton /** * Create Customize Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createCustomizeButton (boolean withText) { if (withText) return createCustomizeButton(Msg.getMsg(Env.getCtx(), A_CUSTOMIZE)); return createCustomizeButton(null); } // createCustomizeButton /************************ * Create History Button wlth label text * @param text text * @return button */ public static final JButton createHistoryButton (String text) { AppsAction aa = new AppsAction (A_HISTORY, KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; // Env.getImageIcon("HistoryX24.gif")); } // createHistoryButton /** * Create History Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createHistoryButton (boolean withText) { if (withText) return createHistoryButton(Msg.getMsg(Env.getCtx(), A_HISTORY)); return createHistoryButton(null); } // createHistoryButton /************************ * Create Zoom Button wlth label text * @param text text * @return button */ public static final JButton createZoomButton (String text) { AppsAction aa = new AppsAction (A_ZOOM, null, text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createZoomButton /** * Create Zoom Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createZoomButton (boolean withText) { if (withText) return createZoomButton(Msg.getMsg(Env.getCtx(), A_ZOOM)); return createZoomButton(null); } // createZoomButton /************************ * Create Process Button wlth label text Shift-F4 * @param text text * @return button */ public static final JButton createProcessButton (String text) { AppsAction aa = new AppsAction (A_PROCESS, KeyStroke.getKeyStroke(KeyEvent.VK_F4, ActionEvent.SHIFT_MASK), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createProcessButton /** * Create Process Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createProcessButton (boolean withText) { if (withText) return createProcessButton(Msg.getMsg(Env.getCtx(), A_PROCESS)); return createProcessButton(null); } // createProcessButton /************************ * Create Print Button wlth label text * @param text text * @return button */ public static final JButton createPrintButton (String text) { AppsAction aa = new AppsAction (A_PRINT, KeyStroke.getKeyStroke(KeyEvent.VK_F12, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createPrintButton /** * Create Print Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createPrintButton (boolean withText) { if (withText) return createPrintButton(Msg.getMsg(Env.getCtx(), A_PRINT)); return createPrintButton(null); } // createPrintButton /************************ * Create Help Button wlth label text * @param text text * @return Button */ public static final JButton createHelpButton (String text) { AppsAction aa = new AppsAction (A_HELP, KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createHelpButton /** * Create Help Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createHelpButton (boolean withText) { if (withText) return createHelpButton(Msg.getMsg(Env.getCtx(), A_HELP)); return createHelpButton(null); } // createHelpButton /************************ * Create Export Button wlth label text * @param text text * @return Button */ public static final JButton createExportButton (String text) { AppsAction aa = new AppsAction (A_EXPORT, null, text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createExportButton /** * Create Export Button wlth Standard text * @param withText with text * @return Button */ public static final JButton createExportButton (boolean withText) { if (withText) return createExportButton(Msg.getMsg(Env.getCtx(), A_EXPORT)); return createExportButton(null); } // createExportButton /************************ * Create Delete Button with label text - F3 * @param text text * @return Delete Button */ public static final JButton createDeleteButton (String text) { AppsAction aa = new AppsAction (A_DELETE, KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createDeleteButton /** * Create Delete Button with Standard text * @param withText with text * @return Delete Button */ public static final JButton createDeleteButton (boolean withText) { if (withText) return createDeleteButton(Msg.getMsg(Env.getCtx(), A_DELETE)); return createDeleteButton(null); } // createDeleteButton /************************ * Create Product Attribute Button with Standard text * @param withText with text * @return Product Attribute Button */ public static final JButton createPAttributeButton (boolean withText) { if (withText) return createPAttributeButton(Msg.getMsg(Env.getCtx(), A_PATTRIBUTE)); return createPAttributeButton(null); } // createPAttributeButton /** * Create Product Attribute Button with label text * @param text text * @return Product Attribute Button */ public static final JButton createPAttributeButton (String text) { AppsAction aa = new AppsAction (A_PATTRIBUTE, null, text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createPAttributeButton /************************ * Create New Button with Standard text * @param withText with text * @return New Button */ public static final JButton createNewButton (boolean withText) { if (withText) return createNewButton(Msg.getMsg(Env.getCtx(), A_NEW)); return createNewButton(null); } // createNewButton /** * Create New Button with label text - F2 * @param text text * @return Product Attribute Button */ public static final JButton createNewButton (String text) { AppsAction aa = new AppsAction (A_NEW, KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0), text); JButton button = (JButton)aa.getButton(); button.setMargin(s_insets); return button; } // createNewButton /*************************************************************************/ /** Action String OK */ public static final String A_OK = "Ok"; /** Action String Cancel */ public static final String A_CANCEL = "Cancel"; /** Action String Refresh */ public static final String A_REFRESH = "Refresh"; /** Action String Reset */ public static final String A_RESET = "Reset"; /** Action String Customize */ public static final String A_CUSTOMIZE = "Customize"; /** Action String History */ public static final String A_HISTORY = "History"; /** Action String Zoom */ public static final String A_ZOOM = "Zoom"; /** Action String Process */ public static final String A_PROCESS = "Process"; /** Action String Print */ public static final String A_PRINT = "Print"; /** Action String Export */ public static final String A_EXPORT = "Export"; /** Action String Help */ public static final String A_HELP = "Help"; /** Action String Delete */ public static final String A_DELETE = "Delete"; /** Action String PAttribute */ public static final String A_PATTRIBUTE = "PAttribute"; /** Action String New */ public static final String A_NEW = "New"; /** Standard Insets used */ public static Insets s_insets = new Insets (0, 10, 0, 10); /************************************************************************** * Create Confirmation Panel with OK Button */ public ConfirmPanel() { this (false, false, false, false, false, false, true); } // ConfirmPanel /** * Create Confirmation Panel with OK and Cancel Button * @param withCancelButton with cancel */ public ConfirmPanel(boolean withCancelButton) { this (withCancelButton, false, false, false, false, false, true); } // ConfirmPanel /** * Create Confirmation Panel with different buttons * @param withCancelButton with cancel * @param withRefreshButton with refresh * @param withResetButton with reset * @param withCustomizeButton with customize * @param withHistoryButton with history * @param withZoomButton with zoom * @param withText with text */ public ConfirmPanel(boolean withCancelButton, boolean withRefreshButton, boolean withResetButton, boolean withCustomizeButton, boolean withHistoryButton, boolean withZoomButton, boolean withText) { super(); BorderLayout mainLayout = new BorderLayout(); this.setLayout(mainLayout); this.setName("confirmPanel"); // JPanel okCancel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); okCancel.setOpaque(false); bOK = createOKButton(withText); okCancel.add(bOK); bCancel = createCancelButton(withText); okCancel.add(bCancel); setCancelVisible(withCancelButton); this.add(okCancel, BorderLayout.EAST); // if (withRefreshButton) { bRefresh = createRefreshButton(withText); addComponent(bRefresh); } if (withResetButton) { bReset = createResetButton(withText); addComponent(bReset); } if (withCustomizeButton) { bCustomize = createCustomizeButton(withText); addComponent(bCustomize); } if (withHistoryButton) { bHistory = createHistoryButton(withText); addComponent(bHistory); } if (withZoomButton) { bZoom = createZoomButton(withText); addComponent(bZoom); } } // ConfirmPanel /** Additional Buttons Panel */ private JPanel m_addlButtons = null; private JButton bOK; private JButton bCancel; // private JButton bRefresh; private JButton bReset; private JButton bCustomize; private JButton bHistory; private JButton bZoom; /** * Add Button to left side of confirmPanel * @param button button */ public void addComponent (Component button) { if (m_addlButtons == null) { m_addlButtons = new JPanel(new FlowLayout(FlowLayout.LEFT)); this.add(m_addlButtons, BorderLayout.WEST); } m_addlButtons.add(button); } // addButton /** * Add Button to left side of confirmPanel * @param action action command * @param toolTipText tool tip text * @param icon icon * @return JButton */ public JButton addButton (String action, String toolTipText, Icon icon) { AppsAction aa = new AppsAction(action, null, toolTipText); JButton b = (JButton)aa.getButton(); // new DialogButton (action, toolTipText, icon); addComponent (b); return b; } // addButton /** * Add Button to left side of confirmPanel * @param button button * @return JButton */ public JButton addButton (JButton button) { addComponent (button); return button; } // addButton /** * Get OK Button * @return OK Button */ public JButton getOKButton() { return bOK; } // getOKButton /** * Get Cancel Button * @return Cancel Button */ public JButton getCancelButton() { return bCancel; } // getCancelButton /** * Show OK button * @param value true for visible */ public void setOKVisible (boolean value) { bOK.setVisible(value); bOK.setEnabled(value); } // setOKVisible /** * Is OK Visible * @return true of OK visible */ public boolean isOKVisible() { return bOK.isVisible(); } // isOKVisible /** * Show Cancel button * @param value trie for visible */ public void setCancelVisible (boolean value) { bCancel.setVisible(value); bCancel.setEnabled(value); } // setCancelVisible /** * Is Cancel Visible * @return true if Canvel is visible */ public boolean isCancelVisible() { return bCancel.isVisible(); } // isCancelVisible /** * Get Reset Button * @return Button */ public JButton getResetButton() { return bReset; } // getResetButton /** * Get Customize Button * @return Button */ public JButton getCustomizeButton() { return bCustomize; } // getCustomizeButton /** * Get History Button * @return Button */ public JButton getHistoryButton() { return bHistory; } // getHistoryButton /** * Get Zoom Button * @return Button */ public JButton getZoomButton() { return bZoom; } // getZoomyButton /** * Get Refresh Button * @return Button */ public JButton getRefreshButton() { return bRefresh; } // getRefreshButton /************************************************************************** * Add Action Listener * * if (e.getActionCommand().equals(ConfirmPanel.A_OK)) * * @param al listener */ public void addActionListener(ActionListener al) { ((AppsAction)bOK.getAction()).setDelegate(al); ((AppsAction)bCancel.getAction()).setDelegate(al); // if (bRefresh != null) ((AppsAction)bRefresh.getAction()).setDelegate(al); if (bReset != null) ((AppsAction)bReset.getAction()).setDelegate(al); if (bCustomize != null) ((AppsAction)bCustomize.getAction()).setDelegate(al); if (bHistory != null) ((AppsAction)bHistory.getAction()).setDelegate(al); if (bZoom != null) ((AppsAction)bZoom.getAction()).setDelegate(al); // Set OK as default Button JRootPane rootpane = null; if (al instanceof JDialog) rootpane = ((JDialog)al).getRootPane(); else if (al instanceof JFrame) rootpane = ((JFrame)al).getRootPane(); if (rootpane != null) rootpane.setDefaultButton(bOK); } // addActionListener /** * Enable all components * @param enabled trie if enabled */ public void setEnabled (boolean enabled) { super.setEnabled(enabled); bOK.setEnabled(enabled); bCancel.setEnabled(enabled); // if (bRefresh != null) bRefresh.setEnabled(enabled); if (bCustomize != null) bCustomize.setEnabled(enabled); if (bHistory != null) bHistory.setEnabled(enabled); if (bZoom != null) bZoom.setEnabled(enabled); } // setEnabled } // ConfirmPanel