package org.atdl4j.ui.swt.app.impl; import org.atdl4j.config.Atdl4jOptions; import org.atdl4j.ui.app.impl.AbstractFixMsgLoadPanel; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; /** * Represents the SWT-specific tester's "Load Message" button and text field GUI component. * * @author Scott Atwell * @version 1.0, Mar 1, 2010 */ public class SWTFixMsgLoadPanel extends AbstractFixMsgLoadPanel { Composite parentComposite; Composite composite; Text fixMsgText; Button loadFixMsgButton; public Object buildFixMsgLoadPanel(Object parentOrShell, Atdl4jOptions atdl4jOptions) { return buildFixMsgLoadPanel( (Composite) parentOrShell, atdl4jOptions ); } public Composite buildFixMsgLoadPanel(Composite aParentComposite, Atdl4jOptions atdl4jOptions) { setAtdl4jOptions( atdl4jOptions ); setParentComposite( aParentComposite ); composite = new Group(aParentComposite, SWT.NONE); ((Group) composite).setText("Pre-populate with FIX Message Fragment (tag=value syntax)"); loadFixMsgButton = new Button(composite, SWT.NONE); loadFixMsgButton.setText("Load Message"); loadFixMsgButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { loadFixMessage(); } }); GridLayout tempLayout = new GridLayout(3, false); composite.setLayout(tempLayout); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); fixMsgText = new Text(composite, SWT.BORDER); GridData fixMsgTextData = new GridData(SWT.FILL, SWT.CENTER, true, true); fixMsgTextData.horizontalSpan = 2; fixMsgText.setLayoutData(fixMsgTextData); // -- Handle Enter key within Text field -- fixMsgText.addListener( SWT.DefaultSelection, new Listener() { public void handleEvent(Event e) { loadFixMessage(); } }); return composite; } private void loadFixMessage() { fireFixMsgLoadSelectedEvent( fixMsgText.getText() ); } /* (non-Javadoc) * @see org.atdl4j.ui.app.FixMsgLoadPanel#selectFilename(java.lang.String) */ @Override public void setFixMsg(String aFixMsg) { if ( fixMsgText != null ) { fixMsgText.setText( aFixMsg ); fireFixMsgLoadSelectedEvent( aFixMsg ); } } /** * Returns getParentComposite().getShell(). * @return the shell */ private Shell getShell() { if ( getParentComposite() != null ) { return getParentComposite().getShell(); } else { return null; } } /** * @return the parentComposite */ private Composite getParentComposite() { return this.parentComposite; } /** * @param aParentComposite the parentComposite to set */ private void setParentComposite(Composite aParentComposite) { this.parentComposite = aParentComposite; } }