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