Logo Search packages:      
Sourcecode: libjgoodies-forms-java version File versions  Download package

ButtonBarFactory.java

/*
 * Copyright (c) 2002-2004 JGoodies Karsten Lentzsch. All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met:
 * 
 *  o Redistributions of source code must retain the above copyright notice, 
 *    this list of conditions and the following disclaimer. 
 *     
 *  o Redistributions in binary form must reproduce the above copyright notice, 
 *    this list of conditions and the following disclaimer in the documentation 
 *    and/or other materials provided with the distribution. 
 *     
 *  o Neither the name of JGoodies Karsten Lentzsch nor the names of 
 *    its contributors may be used to endorse or promote products derived 
 *    from this software without specific prior written permission. 
 *     
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 */

package com.jgoodies.forms.factories;

import javax.swing.JButton;
import javax.swing.JPanel;

import com.jgoodies.forms.builder.ButtonBarBuilder;

/**
 * A factory class that consists only of static methods to build frequently used 
 * button bars. Utilizes the {@link com.jgoodies.forms.builder.ButtonBarBuilder} 
 * that in turn uses the {@link com.jgoodies.forms.layout.FormLayout} 
 * to lay out the bars.<p>
 * 
 * The button bars returned by this builder comply with popular UI style guides.
 *
 * @author Karsten Lentzsch
 * @version $Revision: 1.8 $
 * 
 * @see com.jgoodies.forms.builder.ButtonBarBuilder
 * @see com.jgoodies.forms.util.LayoutStyle
 */

00053 public final class ButtonBarFactory {
    
    
    private ButtonBarFactory() {
        // Suppresses default constructor, ensuring non-instantiability.
    }

      
    // General Purpose Factory Methods: Left Aligned ************************

    /**
     * Builds and returns a left aligned bar with one button.
     * 
     * @param button1  the first button to add
     * @return a button bar with the given button
     */
00069     public static JPanel buildLeftAlignedBar(JButton button1) {
        return buildLeftAlignedBar(new JButton[]{
                button1
            });
    }
    
    
    /**
     * Builds and returns a left aligned bar with two buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @return a button bar with the given buttons
     */
00083     public static JPanel buildLeftAlignedBar(
            JButton button1, JButton button2) {
        return buildLeftAlignedBar(new JButton[]{
                button1, button2
            },
            true);
    }
    
    
    /**
     * Builds and returns a left aligned bar with three buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @return a button bar with the given buttons
     */
00100     public static JPanel buildLeftAlignedBar(
            JButton button1, JButton button2, JButton button3) {
        return buildLeftAlignedBar(new JButton[]{
                button1, button2, button3
            },
            true);
    }
    
    
    /**
     * Builds and returns a left aligned bar with four buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @return a button bar with the given buttons
     */
00118     public static JPanel buildLeftAlignedBar(
            JButton button1, JButton button2, JButton button3, JButton button4) {
        return buildLeftAlignedBar(new JButton[]{
                button1, button2, button3, button4
            },
            true);
    }
    
    
    /**
     * Builds and returns a left aligned bar with five buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @param button5  the fifth button to add
     * @return a button bar with the given buttons
     */
00137     public static JPanel buildLeftAlignedBar(
            JButton button1, JButton button2, JButton button3, 
            JButton button4, JButton button5) {
        return buildLeftAlignedBar(new JButton[]{
                button1, button2, button3, button4, button5
            },
            true);
    } 
    
    
    /**
     * Builds and returns a left aligned button bar with the given buttons.
     * 
     * @param buttons  an array of buttons to add
     * @return a left aligned button bar with the given buttons
     */
00153     public static JPanel buildLeftAlignedBar(JButton[] buttons) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.addGriddedButtons(buttons);
        builder.addGlue();
        return builder.getPanel();
    }
    

    /**
     * Builds and returns a left aligned button bar with the given buttons.
     * 
     * @param buttons                  an array of buttons to add
     * @param leftToRightButtonOrder   the order in which the buttons to add
     * @return a left aligned button bar with the given buttons
     */
00168     public static JPanel buildLeftAlignedBar(
            JButton[] buttons,
            boolean  leftToRightButtonOrder) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.setLeftToRightButtonOrder(leftToRightButtonOrder);
        builder.addGriddedButtons(buttons);
        builder.addGlue();
        return builder.getPanel();
    }
    

    // General Purpose Factory Methods: Centered ****************************

    /**
     * Builds and returns a centered bar with one button.
     * 
     * @param button1  the first button to add
     * @return a button bar with the given button
     */
00187     public static JPanel buildCenteredBar(JButton button1) {
        return buildCenteredBar(new JButton[]{
            button1
        });
    }
    
    
    /**
     * Builds and returns a centered bar with two buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @return a button bar with the given buttons
     */
00201     public static JPanel buildCenteredBar(
            JButton button1, JButton button2) {
        return buildCenteredBar(new JButton[]{
            button1, button2
        });
    }
    
    
    /**
     * Builds and returns a centered bar with three buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @return a button bar with the given buttons
     */
00217     public static JPanel buildCenteredBar(
            JButton button1, JButton button2, JButton button3) {
        return buildCenteredBar(new JButton[]{
            button1, button2, button3
        });
    }
    
    
    /**
     * Builds and returns a centered bar with four buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @return a button bar with the given buttons
     */
00234     public static JPanel buildCenteredBar(
            JButton button1, JButton button2, JButton button3, JButton button4) {
        return buildCenteredBar(new JButton[]{
            button1, button2, button3, button4
        });
    }
    
    
    /**
     * Builds and returns a centered bar with five buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @param button5  the fifth button to add
     * @return a button bar with the given buttons
     */
00252     public static JPanel buildCenteredBar(
            JButton button1, JButton button2, JButton button3, 
            JButton button4, JButton button5) {
        return buildCenteredBar(new JButton[]{
            button1, button2, button3, button4, button5
        });
    }
    
    
    /**
     * Builds and returns a centered button bar with the given buttons.
     * 
     * @param buttons  an array of buttons to add
     * @return a centered button bar with the given buttons
     */
00267     public static JPanel buildCenteredBar(JButton[] buttons) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.addGlue();
        builder.addGriddedButtons(buttons);
        builder.addGlue();
        return builder.getPanel();
    }
    

    /**
     * Builds and returns a filled bar with one button.
     * 
     * @param button1  the first button to add
     * @return a button bar with the given button
     */
00282     public static JPanel buildGrowingBar(JButton button1) {
        return buildGrowingBar(new JButton[]{
            button1
        });
    }
    
    
    /**
     * Builds and returns a filled button bar with two buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @return a button bar with the given buttons
     */
00296     public static JPanel buildGrowingBar(
            JButton button1, JButton button2) {
        return buildGrowingBar(new JButton[]{
            button1, button2
        });
    }
    
    
    /**
     * Builds and returns a filled bar with three buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @return a button bar with the given buttons
     */
00312     public static JPanel buildGrowingBar(
            JButton button1, JButton button2, JButton button3) {
        return buildGrowingBar(new JButton[]{
            button1, button2, button3
        });
    }
    
    
    /**
     * Builds and returns a filled bar with four buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @return a button bar with the given buttons
     */
00329     public static JPanel buildGrowingBar(
            JButton button1, JButton button2, JButton button3, JButton button4) {
        return buildGrowingBar(new JButton[]{
            button1, button2, button3, button4
        });
    }
    
    
    /**
     * Builds and returns a filled bar with five buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @param button5  the fifth button to add
     * @return a button bar with the given buttons
     */
00347     public static JPanel buildGrowingBar(
            JButton button1, JButton button2, JButton button3, 
            JButton button4, JButton button5) {
        return buildGrowingBar(new JButton[]{
            button1, button2, button3, button4, button5
        });
    }
    
    
    /**
     * Builds and returns a button bar with the given buttons. All button
     * columns will grow with the bar.
     * 
     * @param buttons  an array of buttons to add
     * @return a filled button bar with the given buttons
     */
00363     public static JPanel buildGrowingBar(JButton[] buttons) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.addGriddedGrowingButtons(buttons);
        return builder.getPanel();
    }


    // General Purpose Factory Methods: Right Aligned ***********************

    /**
     * Builds and returns a right aligned bar with one button.
     * 
     * @param button1  the first button to add
     * @return a button bar with the given button
     */
00378     public static JPanel buildRightAlignedBar(JButton button1) {
        return buildRightAlignedBar(new JButton[]{
                button1
            });
    }
    
    
    /**
     * Builds and returns a right aligned bar with two buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @return a button bar with the given buttons
     */
00392     public static JPanel buildRightAlignedBar(
            JButton button1, JButton button2) {
        return buildRightAlignedBar(new JButton[]{
                button1, button2
            }, 
            true);
    }
    
    
    /**
     * Builds and returns a right aligned bar with three buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @return a button bar with the given buttons
     */
00409     public static JPanel buildRightAlignedBar(
            JButton button1, JButton button2, JButton button3) {
        return buildRightAlignedBar(new JButton[]{
                button1, button2, button3
            }, 
            true);
    }
    
    
    /**
     * Builds and returns a right aligned bar with four buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @return a button bar with the given buttons
     */
00427     public static JPanel buildRightAlignedBar(
            JButton button1, JButton button2, JButton button3, JButton button4) {
        return buildRightAlignedBar(new JButton[]{
                button1, button2, button3, button4
            }, 
            true);
    }
    
    
    /**
     * Builds and returns a right aligned bar with five buttons.
     * 
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @param button5  the fifth button to add
     * @return a button bar with the given buttons
     */
00446     public static JPanel buildRightAlignedBar(
            JButton button1, JButton button2, JButton button3, 
            JButton button4, JButton button5) {
        return buildRightAlignedBar(new JButton[]{
                button1, button2, button3, button4, button5
            }, 
            true);
    }
    
    
    /**
     * Builds and returns a right aligned button bar with the given buttons.
     * 
     * @param buttons  an array of buttons to add
     * @return a right aligned button bar with the given buttons
     */
00462     public static JPanel buildRightAlignedBar(JButton[] buttons) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.addGlue();
        builder.addGriddedButtons(buttons);
        return builder.getPanel();
    }
    

    /**
     * Builds and returns a right aligned button bar with the given buttons.
     * 
     * @param buttons  an array of buttons to add
     * @param leftToRightButtonOrder   the order in which the buttons to add
     * @return a right aligned button bar with the given buttons
     */
00477     public static JPanel buildRightAlignedBar(
             JButton[] buttons,
             boolean leftToRightButtonOrder) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.setLeftToRightButtonOrder(leftToRightButtonOrder);
        builder.addGlue();
        builder.addGriddedButtons(buttons);
        return builder.getPanel();
    }
    

    // Right Aligned Button Bars with Help in the Left **********************    
    
    /**
     * Builds and returns a right aligned bar with help and one button.
     * 
     * @param help     the help button to add on the left side
     * @param button1  the first button to add
     * @return a button bar with the given buttons
     */
00497     public static JPanel buildHelpBar(JButton help, 
            JButton button1) {
        return buildHelpBar(help, new JButton[]{
            button1
        });
    }
    
    
    /**
     * Builds and returns a right aligned bar with help and two buttons.
     * 
     * @param help     the help button to add on the left side
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @return a button bar with the given buttons
     */
00513     public static JPanel buildHelpBar(JButton help,
            JButton button1, JButton button2) {
        return buildHelpBar(help, new JButton[]{
            button1, button2
        });
    }
    
    
    /**
     * Builds and returns a right aligned bar with help and three buttons.
     * 
     * @param help     the help button to add on the left side
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @return a button bar with the given buttons
     */
00530     public static JPanel buildHelpBar(JButton help,
            JButton button1, JButton button2, JButton button3) {
        return buildHelpBar(help, new JButton[]{
            button1, button2, button3
        });
    }
    
    
    /**
     * Builds and returns a right aligned bar with help and four buttons.
     * 
     * @param help     the help button to add on the left side
     * @param button1  the first button to add
     * @param button2  the second button to add
     * @param button3  the third button to add
     * @param button4  the fourth button to add
     * @return a button bar with the given buttons
     */
00548     public static JPanel buildHelpBar(JButton help,
            JButton button1, JButton button2, JButton button3, JButton button4) {
        return buildHelpBar(help, new JButton[]{
            button1, button2, button3, button4
        });
    }
    
    
    /**
     * Builds and returns a right aligned bar with help and other buttons.
     * 
     * @param help     the help button to add on the left side
     * @param buttons  an array of buttons to add
     * @return a right aligned button bar with the given buttons
     */
00563     public static JPanel buildHelpBar(JButton help, JButton[] buttons) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.addGridded(help);
        builder.addRelatedGap();
        builder.addGlue();
        builder.addGriddedButtons(buttons);
        return builder.getPanel();
    }


    // Popular Dialog Button Bars: No Help **********************************    
      
    /**
     * Builds and returns a button bar with Close.
     * 
     * @param close     the Close button
     * @return a panel that contains the button(s)
     */
00581     public static JPanel buildCloseBar(JButton close) {
        return buildRightAlignedBar(close);
    }
    
    
      /**
       * Builds and returns a button bar with OK.
     * 
     * @param ok        the OK button
     * @return a panel that contains the button(s)
       */
00592       public static JPanel buildOKBar(JButton ok) {
        return buildRightAlignedBar(ok);
    }
      
      
    /**
     * Builds and returns a button bar with OK and Cancel.
     * 
     * @param ok        the OK button
     * @param cancel    the Cancel button
     * @return a panel that contains the button(s)
     */
00604     public static JPanel buildOKCancelBar(
            JButton ok, JButton cancel) {
        return buildRightAlignedBar(new JButton[] {ok, cancel});
    }
    
    
    /**
     * Builds and returns a button bar with OK, Cancel and Apply.
     * 
     * @param ok        the OK button
     * @param cancel    the Cancel button
     * @param apply     the Apply button
     * @return a panel that contains the button(s)
     */
00618     public static JPanel buildOKCancelApplyBar(
            JButton ok, JButton cancel, JButton apply) {
        return buildRightAlignedBar(new JButton[] {ok, cancel, apply});
    }
    
    
    // Popular Dialog Button Bars: Help in the Left *************************    
    
    /**
     * Builds and returns a button bar with 
     * Help and Close.
     * 
     * @param help     the Help button
     * @param close    the Close button
     * @return a panel that contains the button(s)
     */
00634     public static JPanel buildHelpCloseBar(
            JButton help, JButton close) {
        return buildHelpBar(help, close);
    }
    
    
    /**
     * Builds and returns a button bar with 
     * Help and OK.
     * 
     * @param help     the Help button
     * @param ok      the OK button
     * @return a panel that contains the button(s)
     */
00648     public static JPanel buildHelpOKBar(
            JButton help, JButton ok) {
        return buildHelpBar(help, ok);
    }
    
    
    /**
     * Builds and returns a button bar with 
     * Help, OK and Cancel.
     * 
     * @param help     the Help button
     * @param ok       the OK button
     * @param cancel    the Cancel button
     * @return a panel that contains the button(s)
     */
00663     public static JPanel buildHelpOKCancelBar(
            JButton help, JButton ok, JButton cancel) {
        return buildHelpBar(help, ok, cancel);
    }
    
    
    /**
     * Builds and returns a button bar with 
     * Help, OK, Cancel and Apply.
     * 
     * @param help     the Help button
     * @param ok       the OK button
     * @param cancel   the Cancel button
     * @param apply     the Apply button
     * @return a panel that contains the button(s)
     */
00679     public static JPanel buildHelpOKCancelApplyBar(
            JButton help, JButton ok, JButton cancel, JButton apply) {
        return buildHelpBar(help, ok, cancel, apply);
    }
    
    
    // Popular Dialog Button Bars: Help in the Right Hand Side **************    
    
    /**
     * Builds and returns a button bar with 
     * Close and Help.
     * 
     * @param close     the Close button
     * @param help     the Help button
     * @return a panel that contains the button(s)
     */
00695     public static JPanel buildCloseHelpBar(
            JButton close, JButton help) {
        return buildRightAlignedBar(new JButton[] {close, help});
    }
    
    
    /**
     * Builds and returns a button bar with 
     * OK and Help.
     * 
     * @param ok        the OK button
     * @param help     the Help button
     * @return a panel that contains the button(s)
     */
00709     public static JPanel buildOKHelpBar(
            JButton ok, JButton help) {
        return buildRightAlignedBar(new JButton[] {ok, help});
    }
    
    
    /**
     * Builds and returns a button bar with 
     * OK, Cancel, and Help.
     * 
     * @param ok       the OK button
     * @param cancel    the Cancel button
     * @param help     the Help button
     * @return a panel that contains the button(s)
     */
00724     public static JPanel buildOKCancelHelpBar(
            JButton ok, JButton cancel, JButton help) {
        return buildRightAlignedBar(new JButton[] {ok, cancel, help});
    }
    
    
    /**
     * Builds and returns a button bar with 
     * OK, Cancel, Apply and Help.
     * 
     * @param ok       the OK button
     * @param cancel    the Cancel button
     * @param apply     the Apply button
     * @param help     the Help button
     * @return a panel that contains the button(s)
     */
00740     public static JPanel buildOKCancelApplyHelpBar(
            JButton ok, JButton cancel, JButton apply, JButton help) {
        return buildRightAlignedBar(new JButton[] {ok, cancel, apply, help});
    }
    
    
    // Add..., Remove *******************************************************
        
    /**
     * Builds and returns a left aligned button bar with 
     * Add and Remove.
     * 
     * @param add       the Add button
     * @param remove    the Remove button
     * @return a panel that contains the button(s)
     */
00756     public static JPanel buildAddRemoveLeftBar(
            JButton add, JButton remove) {
        return buildLeftAlignedBar(add, remove);
    }
    
    
    /**
     * Builds and returns a filled button bar with Add and Remove.
     * 
     * @param add       the Add button
     * @param remove    the Remove button
     * @return a panel that contains the button(s)
     */
00769     public static JPanel buildAddRemoveBar(
            JButton add, JButton remove) {
        return buildGrowingBar(add, remove);
    }
    
    
    /**
     * Builds and returns a right aligned button bar with 
     * Add and Remove.
     * 
     * @param add       the Add button
     * @param remove    the Remove button
     * @return a panel that contains the button(s)
     */
00783     public static JPanel buildAddRemoveRightBar(
            JButton add, JButton remove) {
        return buildRightAlignedBar(add, remove);
    }
    

    // Add..., Remove, Properties... ****************************************
        
    /**
     * Builds and returns a left aligned button bar with 
     * Add, Remove, and Properties.
     * 
     * @param add             the Add button
     * @param remove          the Remove button
     * @param properties      the Properties button
     * @return a panel that contains the button(s)
     */
00800     public static JPanel buildAddRemovePropertiesLeftBar(
            JButton add, JButton remove, JButton properties) {
        return buildLeftAlignedBar(add, remove, properties);
    }
    
    
    /**
     * Builds and returns a filled button bar with Add, Remove, and
     * Properties.
     * 
     * @param add           the Add button
     * @param remove        the Remove button
     * @param properties    the Properties button
     * @return a panel that contains the button(s)
     */
00815     public static JPanel buildAddRemovePropertiesBar(
            JButton add, JButton remove, JButton properties) {
        ButtonBarBuilder builder = new ButtonBarBuilder();
        builder.addGriddedGrowing(add);
        builder.addRelatedGap();
        builder.addGriddedGrowing(remove);
        builder.addRelatedGap();
        builder.addGriddedGrowing(properties);
        return builder.getPanel();
    }
    
    
    /**
     * Builds and returns a right aligned button bar with 
     * Add, Remove, and Properties.
     * 
     * @param add           the Add button
     * @param remove        the Remove button
     * @param properties    the Properties button
     * @return a panel that contains the button(s)
     */
00836     public static JPanel buildAddRemovePropertiesRightBar(
            JButton add, JButton remove, JButton properties) {
        return buildRightAlignedBar(add, remove, properties);
    }
    
    
    // Wizard Bars **********************************************************
    
    /**
     * Builds and returns a wizard button bar with 
     * Back, Next, Finish, Cancel
     *
     * @param back            the Back button
     * @param next            the Next button
     * @param finish    the Finish button
     * @param cancel    the Cancel button
     * @return a wizard button bar for back, next, finish, cancel
     */
00854     public static JPanel buildWizardBar(
            JButton back, JButton next, JButton finish, JButton cancel) {
        return buildWizardBar(back, next, new JButton[]{finish, cancel});
    }
    
    
    /**
     * Builds and returns a wizard button bar with 
     * Help and Back, Next, Finish, Cancel
     * 
     * @param help            the Help button
     * @param back      the Back button
     * @param next      the Next button
     * @param finish    the Finish button
     * @param cancel    the Cancel button
     * @return a wizard button bar for help, back, next, finish, cancel
     */
00871     public static JPanel buildWizardBar(
            JButton help, JButton back, JButton next, JButton finish, JButton cancel) {
        return buildWizardBar(new JButton[]{help},
                               back, next, 
                               new JButton[]{finish, cancel});
    }
    
    
    /**
     * Builds and returns a wizard button bar that consists of the back and
     * next buttons, and some right aligned buttons.
     * 
     * @param back                the mandatory back button
     * @param next                the mandatory next button
     * @param rightAlignedButtons an optional array of buttons that will be
     *      located in the bar's right hand side
     * @return a wizard button bar with back, next and a bunch of buttons
     */
00889     public static JPanel buildWizardBar(JButton back, JButton next,
                                         JButton[] rightAlignedButtons) {
        return buildWizardBar(null, back, next, rightAlignedButtons);
    }
    
    
    /**
     * Builds and returns a wizard button bar. It consists of some left
     * aligned buttons, the back and next buttons, and some right aligned
     * buttons. 
     * 
     * @param leftAlignedButtons  an optional array of buttons that will be
     *     positioned in the bar's left hand side
     * @param back                the mandatory back button
     * @param next                the mandatory next button
     * @param rightAlignedButtons an optional array of buttons that will be
     *     located in the bar's right hand side
     * @return a wizard button bar with back, next and a bunch of buttons
     */
00908     public static JPanel buildWizardBar(JButton[] leftAlignedButtons,
                                         JButton back, JButton next,
                                         JButton[] rightAlignedButtons) {
        return buildWizardBar(leftAlignedButtons, 
                               back, next, null, 
                               rightAlignedButtons);
    }
    
    
    /**
     * Builds and returns a wizard button bar. It consists of some left
     * aligned buttons, the back, next group, and some right aligned buttons.
     * To allow the finish button to overlay the next button, you can
     * optionally provide the <code>overlayedFinish</code> parameter.
     * 
     * @param leftAlignedButtons  an optional array of buttons that will be
     *     positioned in the bar's left hand side
     * @param back                the mandatory back button
     * @param next                the mandatory next button
     * @param overlayedFinish     the optional overlayed finish button
     * @param rightAlignedButtons an optional array of buttons that will be
     *     located in the bar's right hand side
     * @return a wizard button bar with back, next and a bunch of buttons
     */
00932     public static JPanel buildWizardBar(JButton[] leftAlignedButtons,
                                         JButton back, 
                                         JButton next, 
                                         JButton overlayedFinish,
                                         JButton[] rightAlignedButtons) {
                                            
        ButtonBarBuilder builder = new ButtonBarBuilder();
        if (leftAlignedButtons != null) {
            builder.addGriddedButtons(leftAlignedButtons);
            builder.addRelatedGap();
        } 
        builder.addGlue();
        builder.addGridded(back);
        builder.addGridded(next);
        
        // Optionally overlay the finish and next button.
        if (overlayedFinish != null) {
            builder.nextColumn(-1);
            builder.add(overlayedFinish);
            builder.nextColumn();
        }
        
        if (rightAlignedButtons != null) {
            builder.addRelatedGap();
            builder.addGriddedButtons(rightAlignedButtons);
        } 
        return builder.getPanel();
    }
    
      
}

Generated by  Doxygen 1.6.0   Back to index