1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.support;
14
15 import java.beans.PropertyChangeEvent;
16
17 import com.eviware.soapui.SoapUI;
18 import com.eviware.soapui.impl.support.components.RequestMessageXmlEditor;
19 import com.eviware.soapui.model.iface.MessageExchange;
20 import com.eviware.soapui.support.editor.xml.support.DefaultXmlDocument;
21
22 public class MessageExchangeRequestMessageEditor extends
23 RequestMessageXmlEditor<MessageExchangeModelItem, DefaultXmlDocument>
24 {
25 private final MessageExchangeModelItem messageExchangeModelItem;
26
27 public MessageExchangeRequestMessageEditor( MessageExchange messageExchange )
28 {
29 this( new MessageExchangeModelItem( "message exchange request", messageExchange ) );
30 }
31
32 public MessageExchangeRequestMessageEditor( MessageExchangeModelItem messageExchangeModelItem )
33 {
34 super( new DefaultXmlDocument(), messageExchangeModelItem );
35 this.messageExchangeModelItem = messageExchangeModelItem;
36
37 if( messageExchangeModelItem.getMessageExchange() != null )
38 updateXml();
39
40 messageExchangeModelItem.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
41
42 setEditable( false );
43 }
44
45 public void updateXml()
46 {
47 try
48 {
49 MessageExchange messageExchange = messageExchangeModelItem.getMessageExchange();
50 DefaultXmlDocument defaultXmlDocument = getDocument();
51
52 if( messageExchange != null && messageExchange.getOperation() != null )
53 defaultXmlDocument.setTypeSystem( messageExchange.getOperation().getInterface().getDefinitionContext()
54 .getInterfaceDefinition().getSchemaTypeSystem() );
55
56 defaultXmlDocument.setXml( messageExchange == null ? null : messageExchange.getRequestContentAsXml() );
57 }
58 catch( Throwable e )
59 {
60 SoapUI.logError( e );
61 }
62 }
63
64 @Override
65 public void propertyChange( PropertyChangeEvent evt )
66 {
67 if( evt.getSource() == messageExchangeModelItem
68 && evt.getPropertyName().equals( MessageExchangeModelItem.MESSAGE_EXCHANGE ) )
69 {
70 updateXml();
71 }
72 else
73 {
74 super.propertyChange( evt );
75 }
76 }
77
78 @Override
79 public void release()
80 {
81 super.release();
82
83 messageExchangeModelItem.removePropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
84 }
85 }