001 package org.springframework.richclient.samples.showcase.command;
002
003 import java.util.ArrayList;
004 import java.util.List;
005
006 import javax.swing.JComponent;
007 import javax.swing.JLabel;
008 import javax.swing.JPanel;
009 import javax.swing.JTextField;
010
011 import org.springframework.richclient.application.Application;
012 import org.springframework.richclient.command.CommandGroupFactoryBean;
013 import org.springframework.richclient.command.CommandManager;
014 import org.springframework.richclient.dialog.ApplicationDialog;
015
016 import com.jgoodies.forms.factories.FormFactory;
017 import com.jgoodies.forms.layout.CellConstraints;
018 import com.jgoodies.forms.layout.ColumnSpec;
019 import com.jgoodies.forms.layout.FormLayout;
020 import com.jgoodies.forms.layout.RowSpec;
021 import com.jgoodies.forms.layout.Sizes;
022
023 public class ButtonStackBarSample extends ApplicationDialog {
024
025 private String[] commandIds = new String[] { "basicApplicationDialogCommand", "basicConfirmationDialogCommand",
026 "basicInputApplicationDialogCommand" };
027
028 @Override
029 protected JComponent createDialogContentPane() {
030 JPanel panel = new JPanel(new FormLayout(new ColumnSpec[] {FormFactory.DEFAULT_COLSPEC , FormFactory.RELATED_GAP_COLSPEC, new ColumnSpec(ColumnSpec.LEFT, Sizes.DEFAULT,
031 ColumnSpec.DEFAULT_GROW)}, new RowSpec[] { FormFactory.DEFAULT_ROWSPEC, FormFactory.LINE_GAP_ROWSPEC,
032 FormFactory.DEFAULT_ROWSPEC, FormFactory.LINE_GAP_ROWSPEC,
033 FormFactory.DEFAULT_ROWSPEC }));
034 CommandManager commandManager = Application.instance().getActiveWindow().getCommandManager();
035 List<Object> members = new ArrayList<Object>();
036 for (int i = 0; i < commandIds.length; i++) {
037 members.add(commandManager.getCommand(commandIds[i]));
038 }
039
040 CellConstraints cc = new CellConstraints();
041
042 CommandGroupFactoryBean commandGroupFactory = new CommandGroupFactoryBean("buttonBar", members.toArray());
043 panel.add(new JLabel(getMessage("buttonBar.label")), cc.xy(1, 1));
044 panel.add(commandGroupFactory.getCommandGroup().createButtonBar(), cc.xyw(1, 3, 3));
045
046 JTextField toolbarTextField = new JTextField(20);
047 toolbarTextField.setText("input");
048 members.add(toolbarTextField);
049 commandGroupFactory = new CommandGroupFactoryBean("buttonStack", members.toArray());
050 panel.add(new JLabel(getMessage("buttonStack.label")), cc.xy(1, 5));
051 panel.add(commandGroupFactory.getCommandGroup().createButtonStack(), cc.xy(3, 5));
052
053 return panel;
054 }
055
056 @Override
057 protected boolean onFinish() {
058 return true;
059 }
060 }