Package com.eviware.soapui.impl.wsdl.support

Source Code of com.eviware.soapui.impl.wsdl.support.MessageExchangeRequestMessageEditor

/*
*  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.support;

import java.beans.PropertyChangeEvent;

import com.eviware.soapui.SoapUI;
import com.eviware.soapui.impl.support.components.RequestMessageXmlEditor;
import com.eviware.soapui.model.iface.MessageExchange;
import com.eviware.soapui.support.editor.xml.support.DefaultXmlDocument;

public class MessageExchangeRequestMessageEditor extends
    RequestMessageXmlEditor<MessageExchangeModelItem, DefaultXmlDocument>
{
  private final MessageExchangeModelItem messageExchangeModelItem;

  public MessageExchangeRequestMessageEditor( MessageExchange messageExchange )
  {
    this( new MessageExchangeModelItem( "message exchange request", messageExchange ) );
  }

  public MessageExchangeRequestMessageEditor( MessageExchangeModelItem messageExchangeModelItem )
  {
    super( new DefaultXmlDocument(), messageExchangeModelItem );
    this.messageExchangeModelItem = messageExchangeModelItem;

    if( messageExchangeModelItem.getMessageExchange() != null )
      updateXml();

    messageExchangeModelItem.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );

    setEditable( false );
  }

  public void updateXml()
  {
    try
    {
      MessageExchange messageExchange = messageExchangeModelItem.getMessageExchange();
      DefaultXmlDocument defaultXmlDocument = getDocument();

      if( messageExchange != null && messageExchange.getOperation() != null )
        defaultXmlDocument.setTypeSystem( messageExchange.getOperation().getInterface().getDefinitionContext()
            .getInterfaceDefinition().getSchemaTypeSystem() );

      defaultXmlDocument.setXml( messageExchange == null ? null : messageExchange.getRequestContentAsXml() );
    }
    catch( Throwable e )
    {
      SoapUI.logError( e );
    }
  }

  @Override
  public void propertyChange( PropertyChangeEvent evt )
  {
    if( evt.getSource() == messageExchangeModelItem
        && evt.getPropertyName().equals( MessageExchangeModelItem.MESSAGE_EXCHANGE ) )
    {
      updateXml();
    }
    else
    {
      super.propertyChange( evt );
    }
  }

  @Override
  public void release()
  {
    super.release();

    messageExchangeModelItem.removePropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
  }
}
TOP

Related Classes of com.eviware.soapui.impl.wsdl.support.MessageExchangeRequestMessageEditor

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.