private JComponent buildDispatchEditor()
{
dispatchPanel = new JPanel( new BorderLayout() );
dispatchPanel.setOpaque( true );
ButtonBarBuilder builder = new ButtonBarBuilder();
builder.addFixed( new JLabel( "Dispatch: " ) );
builder.addRelatedGap();
dispatchCombo = new JComboBox( MockOperationDispatchRegistry.getDispatchTypes() );
dispatchCombo.setSelectedItem( null );
dispatchCombo.addItemListener( new ItemListener()
{
public void itemStateChanged( ItemEvent e )
{
if( dispatchPanel.getComponentCount() > 1 )
dispatchPanel.remove( 1 );
String item = ( String )dispatchCombo.getSelectedItem();
dispatcher = getModelItem().setDispatchStyle( item );
dispatchPanel.add( dispatcher.getEditorComponent(), BorderLayout.CENTER );
dispatchPanel.revalidate();
dispatchPanel.repaint();
if( dispatchInspector != null && item != null )
{
dispatchInspector.setTitle( "Dispatch (" + item + ")" );
}
}
} );
builder.addFixed( dispatchCombo );
builder.addUnrelatedGap();
builder.addFixed( new JLabel( "Default Response: " ) );
builder.addRelatedGap();
ModelItemNames<MockResponse> names = new ModelItemNames<MockResponse>( getModelItem().getMockResponses() );
defaultResponseCombo = new JComboBox( new ExtendedComboBoxModel( names.getNames() ) );
defaultResponseCombo.setPreferredSize( new Dimension( 150, 20 ) );
defaultResponseCombo.addItemListener( new ItemListener()
{
public void itemStateChanged( ItemEvent e )
{
Object selectedItem = defaultResponseCombo.getSelectedItem();
getModelItem().setDefaultResponse( ( String )selectedItem );
}
} );
builder.addFixed( defaultResponseCombo );
builder.setBorder( BorderFactory.createEmptyBorder( 2, 3, 3, 3 ) );
dispatchPanel.add( builder.getPanel(), BorderLayout.NORTH );
// init data
defaultResponseCombo.setSelectedItem( getModelItem().getDefaultResponse() );
dispatchCombo.setSelectedItem( getModelItem().getDispatchStyle() );