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.impl.support.components.ResponseMessageXmlEditor;
18 import com.eviware.soapui.model.iface.MessageExchange;
19 import com.eviware.soapui.support.editor.xml.support.DefaultXmlDocument;
20
21 public class MessageExchangeResponseMessageEditor extends
22 ResponseMessageXmlEditor<MessageExchangeModelItem, DefaultXmlDocument>
23 {
24 private final MessageExchangeModelItem messageExchangeModelItem;
25
26 public MessageExchangeResponseMessageEditor( MessageExchange messageExchange )
27 {
28 this( new MessageExchangeModelItem( "message exchange response", messageExchange ) );
29 }
30
31 public MessageExchangeResponseMessageEditor( MessageExchangeModelItem messageExchangeModelItem )
32 {
33 super( new DefaultXmlDocument(), messageExchangeModelItem );
34 this.messageExchangeModelItem = messageExchangeModelItem;
35
36 if( messageExchangeModelItem.getMessageExchange() != null )
37 updateXml();
38
39 messageExchangeModelItem.addPropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
40
41 setEditable( false );
42 }
43
44 @Override
45 public void propertyChange( PropertyChangeEvent evt )
46 {
47 if( evt.getSource() == messageExchangeModelItem
48 && evt.getPropertyName().equals( MessageExchangeModelItem.MESSAGE_EXCHANGE ) )
49 {
50 updateXml();
51 }
52 else
53 {
54 super.propertyChange( evt );
55 }
56 }
57
58 public void updateXml()
59 {
60 try
61 {
62 MessageExchange messageExchange = messageExchangeModelItem.getMessageExchange();
63 DefaultXmlDocument defaultXmlDocument = getDocument();
64
65 if( messageExchange != null && messageExchange.getOperation() != null )
66 defaultXmlDocument.setTypeSystem( messageExchange.getOperation().getInterface().getDefinitionContext()
67 .getInterfaceDefinition().getSchemaTypeSystem() );
68
69 defaultXmlDocument.setXml( messageExchange == null ? null : messageExchange.getResponseContentAsXml() );
70 }
71 catch( Exception e )
72 {
73 e.printStackTrace();
74 }
75 }
76
77 @Override
78 public void release()
79 {
80 super.release();
81
82 messageExchangeModelItem.removePropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
83 }
84 }