001 package org.springframework.richclient.widget;
002
003 import org.springframework.richclient.command.AbstractCommand;
004
005 import javax.swing.*;
006 import java.awt.*;
007
008
009 /* ButtonSwitcher is a simple widget that puts 2 buttons from the same command (but with
010 * different face id's) on a cardlayout.
011 *
012 * This makes it easy to switch between 2 faces.
013 */
014 public class ButtonSwitcherWidget extends AbstractWidget
015 {
016
017 private final CardLayout switcher;
018 private final JPanel panel;
019
020 public static final String DEFAULT = "default";
021 public static final String ALTERNATIVE = "alternative";
022
023 public ButtonSwitcherWidget(AbstractCommand command, String alternativeFaceId)
024 {
025 AbstractButton defaultButton = command.createButton();
026 AbstractButton alternButton = command.createButton(alternativeFaceId);
027 this.switcher = new CardLayout();
028 this.panel = new JPanel(this.switcher);
029 this.panel.add(defaultButton, DEFAULT);
030 this.panel.add(alternButton, ALTERNATIVE);
031 }
032
033 public JComponent getComponent()
034 {
035 return this.panel;
036 }
037
038 public void showDefault()
039 {
040 this.switcher.first(this.panel);
041 }
042
043 public void showAlternative()
044 {
045 this.switcher.last(this.panel);
046 }
047
048 public void show(String mode)
049 {
050 this.switcher.show(this.panel, mode);
051
052 }
053 }