1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.support.wss.crypto;
14
15 import java.beans.PropertyChangeListener;
16
17 import javax.swing.JComponent;
18
19 import com.eviware.soapui.config.WSSCryptoConfig;
20 import com.eviware.soapui.impl.wsdl.support.wss.WssContainer;
21 import com.eviware.soapui.impl.wsdl.support.wss.WssCrypto;
22 import com.eviware.soapui.model.propertyexpansion.PropertyExpansion;
23 import com.eviware.soapui.model.propertyexpansion.PropertyExpansionContainer;
24 import com.eviware.soapui.model.propertyexpansion.PropertyExpansionsResult;
25 import com.eviware.soapui.support.xml.XmlObjectConfigurationBuilder;
26 import com.eviware.soapui.support.xml.XmlObjectConfigurationReader;
27
28 public abstract class WssCryptoBase implements WssCrypto, PropertyExpansionContainer
29 {
30 private WSSCryptoConfig config;
31 private WssContainer container;
32 private JComponent configComponent;
33 private String label;
34
35 public void init( WSSCryptoConfig config, WssContainer container, String label )
36 {
37 this.config = config;
38 this.container = container;
39 this.label = label;
40
41 if( config.getConfiguration() == null )
42 config.addNewConfiguration();
43
44 load( new XmlObjectConfigurationReader( config.getConfiguration() ));
45 }
46
47 public JComponent getConfigurationPanel()
48 {
49 if( configComponent == null )
50 configComponent = buildUI();
51
52 return configComponent;
53 }
54
55 public String getLabel()
56 {
57 return label;
58 }
59
60 protected abstract JComponent buildUI();
61
62 protected abstract void load( XmlObjectConfigurationReader reader );
63
64 public void setConfig( WSSCryptoConfig config )
65 {
66 this.config = config;
67 }
68
69 public void saveConfig()
70 {
71 XmlObjectConfigurationBuilder builder = new XmlObjectConfigurationBuilder();
72 save( builder );
73 config.getConfiguration().set( builder.finish() );
74 }
75
76 protected abstract void save( XmlObjectConfigurationBuilder builder );
77
78 public WssContainer getContainer()
79 {
80 return container;
81 }
82
83 public void addPropertyChangeListener( PropertyChangeListener listener )
84 {}
85
86 public void removePropertyChangeListener( PropertyChangeListener listener )
87 {}
88
89 public PropertyExpansion[] getPropertyExpansions()
90 {
91 PropertyExpansionsResult result = new PropertyExpansionsResult( getContainer().getModelItem(), this );
92
93 addPropertyExpansions( result );
94
95 return result.toArray();
96 }
97
98 protected void addPropertyExpansions( PropertyExpansionsResult result )
99 {
100 result.extractAndAddAll( "username" );
101 result.extractAndAddAll( "password" );
102 }
103
104 @Override
105 public String toString()
106 {
107 return getLabel();
108 }
109
110 public void udpateConfig( WSSCryptoConfig config )
111 {
112 this.config = config;
113 }
114 }
115