Package com.eviware.soapui.impl.wsdl.panels.teststeps

Source Code of com.eviware.soapui.impl.wsdl.panels.teststeps.ManualTestStepDesktopPanel

/*
*  soapUI, copyright (C) 2004-2011 eviware.com
*
*  soapUI is free software; you can redistribute it and/or modify it under the
*  terms of version 2.1 of the GNU Lesser General Public License as published by
*  the Free Software Foundation.
*
*  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
*  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*  See the GNU Lesser General Public License for more details at gnu.org.
*/

package com.eviware.soapui.impl.wsdl.panels.teststeps;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.beans.PropertyChangeEvent;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.SwingUtilities;
import javax.swing.text.Document;

import com.eviware.soapui.impl.wsdl.teststeps.ManualTestStep;
import com.eviware.soapui.support.DocumentListenerAdapter;
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.support.components.JUndoableTextArea;
import com.eviware.soapui.support.components.JUndoableTextField;
import com.eviware.soapui.ui.support.ModelItemDesktopPanel;
import com.jgoodies.forms.builder.ButtonBarBuilder;

public class ManualTestStepDesktopPanel extends ModelItemDesktopPanel<ManualTestStep>
{
  private JSplitPane split;
  private JUndoableTextField nameField;
  private JUndoableTextArea descriptionField;
  private JUndoableTextArea expectedResultField;

  public ManualTestStepDesktopPanel( ManualTestStep modelItem )
  {
    super( modelItem );

    buildUI();
  }

  private void buildUI()
  {
    ButtonBarBuilder builder = new ButtonBarBuilder();
    builder.addFixed( new JLabel( "TestStep Name" ) );
    builder.addRelatedGap();
    nameField = new JUndoableTextField( getModelItem().getName() );
    nameField.getDocument().addDocumentListener( new DocumentListenerAdapter()
    {
      @Override
      public void update( Document document )
      {
        getModelItem().setName( nameField.getText() );
      }
    } );

    nameField.setPreferredSize( new Dimension( 200, 20 ) );
    builder.addFixed( nameField );

    builder.getPanel().setBorder( BorderFactory.createEmptyBorder( 3, 3, 3, 3 ) );
    add( builder.getPanel(), BorderLayout.NORTH );

    split = UISupport.createVerticalSplit( createDescriptionField(), createExpectedResultField() );
    add( split, BorderLayout.CENTER );

    SwingUtilities.invokeLater( new Runnable()
    {
      @Override
      public void run()
      {
        split.setDividerLocation( 200 );
      }
    } );
  }

  protected JUndoableTextField getNameField()
  {
    return nameField;
  }

  protected JUndoableTextArea getDescriptionField()
  {
    return descriptionField;
  }

  protected JUndoableTextArea getExpectedResultField()
  {
    return expectedResultField;
  }

  private JPanel createDescriptionField()
  {
    JPanel panel = UISupport.createEmptyPanel( 3, 3, 3, 3 );

    ButtonBarBuilder builder = new ButtonBarBuilder();
    builder.addFixed( new JLabel( "<html><b>Description - Describe what actions to perform</b></html>" ) );
    panel.add( builder.getPanel(), BorderLayout.NORTH );

    descriptionField = new JUndoableTextArea( getModelItem().getDescription() );
    descriptionField.getDocument().addDocumentListener( new DocumentListenerAdapter()
    {
      @Override
      public void update( Document document )
      {
        getModelItem().setDescription( descriptionField.getText() );
      }
    } );

    panel.add( new JScrollPane( descriptionField ) );

    return panel;
  }

  private JPanel createExpectedResultField()
  {
    JPanel panel = UISupport.createEmptyPanel( 3, 3, 3, 3 );

    ButtonBarBuilder builder = new ButtonBarBuilder();
    builder.addFixed( new JLabel( "<html><b>Expected Result - Describe the expected outcome</b></html>" ) );
    panel.add( builder.getPanel(), BorderLayout.NORTH );

    expectedResultField = new JUndoableTextArea( getModelItem().getExpectedResult() );
    expectedResultField.getDocument().addDocumentListener( new DocumentListenerAdapter()
    {
      @Override
      public void update( Document document )
      {
        getModelItem().setExpectedResult( expectedResultField.getText() );
      }
    } );

    panel.add( new JScrollPane( expectedResultField ) );

    return panel;
  }

  @Override
  public void propertyChange( PropertyChangeEvent evt )
  {
    super.propertyChange( evt );

    String newValue = String.valueOf( evt.getNewValue() );
    if( evt.getPropertyName().equals( ManualTestStep.NAME_PROPERTY ) )
    {
      if( !newValue.equals( nameField.getText() ) )
        nameField.setText( newValue );
    }
    else if( evt.getPropertyName().equals( ManualTestStep.DESCRIPTION_PROPERTY ) )
    {
      if( !newValue.equals( descriptionField.getText() ) )
        descriptionField.setText( newValue );
    }
    else if( evt.getPropertyName().equals( "expectedResult" ) )
    {
      if( !newValue.equals( expectedResultField.getText() ) )
        expectedResultField.setText( newValue );
    }

  }

}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.panels.teststeps.ManualTestStepDesktopPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.