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.wsdl.panels.request.components.RequestMessageXmlEditor;
19 import com.eviware.soapui.impl.wsdl.panels.request.components.editor.support.DefaultXmlDocument;
20 import com.eviware.soapui.model.iface.MessageExchange;
21
22 public class MessageExchangeRequestMessageEditor extends RequestMessageXmlEditor<MessageExchangeModelItem>
23 {
24 private final MessageExchangeModelItem messageExchangeModelItem;
25
26 public MessageExchangeRequestMessageEditor( MessageExchange messageExchange )
27 {
28 this( new MessageExchangeModelItem( "message exchange request", messageExchange ));
29 }
30
31 public MessageExchangeRequestMessageEditor( 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 public void updateXml()
45 {
46 try
47 {
48 MessageExchange messageExchange = messageExchangeModelItem.getMessageExchange();
49 DefaultXmlDocument defaultXmlDocument = ((DefaultXmlDocument)getXmlDocument());
50
51 if( messageExchange != null )
52 defaultXmlDocument.setTypeSystem( messageExchange.getOperation().getInterface().getWsdlContext().getSchemaTypeSystem() );
53
54 defaultXmlDocument.setXml( messageExchange == null ? null : messageExchange.getRequestContent() );
55 }
56 catch( Throwable e )
57 {
58 SoapUI.logError( e );
59 }
60 }
61
62 @Override
63 public void propertyChange( PropertyChangeEvent evt )
64 {
65 if( evt.getSource() == messageExchangeModelItem &&
66 evt.getPropertyName().equals( MessageExchangeModelItem.MESSAGE_EXCHANGE ))
67 {
68 updateXml();
69 }
70 else
71 {
72 super.propertyChange( evt );
73 }
74 }
75
76 @Override
77 public void release()
78 {
79 super.release();
80
81 messageExchangeModelItem.removePropertyChangeListener( MessageExchangeModelItem.MESSAGE_EXCHANGE, this );
82 }
83 }