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 }