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