View Javadoc

1   package org.eparapher.rcp.preferences;
2   
3   import org.apache.log4j.Logger;
4   import org.eclipse.jface.preference.BooleanFieldEditor;
5   import org.eclipse.jface.preference.ComboFieldEditor;
6   import org.eclipse.jface.preference.FieldEditorPreferencePage;
7   import org.eclipse.jface.preference.RadioGroupFieldEditor;
8   import org.eclipse.jface.preference.StringFieldEditor;
9   import org.eclipse.jface.util.PropertyChangeEvent;
10  import org.eclipse.swt.SWT;
11  import org.eclipse.ui.IWorkbench;
12  import org.eclipse.ui.IWorkbenchPreferencePage;
13  import org.eparapher.core.signature.XMLSignatureParameters;
14  import org.eparapher.rcp.Activator;
15  
16  
17  public class XMLSignaturePreferencePage extends FieldEditorPreferencePage implements
18  		IWorkbenchPreferencePage {
19  
20  	private static Logger log = Logger.getLogger(XMLSignaturePreferencePage.class);
21  	
22  	public static final String ID = "org.eparapher.rcp.preferences.XMLSignaturePreferencePage";
23  
24  	BooleanFieldEditor replacewithsignedxml;
25  	BooleanFieldEditor dtdvalidation;
26  	
27  	RadioGroupFieldEditor xmlsignatureformat;
28  	
29  	ComboFieldEditor xmldigestformat;
30  	ComboFieldEditor xmlsignaturealg;
31  	ComboFieldEditor xmltransform;
32  	ComboFieldEditor xmlcanonical;
33  
34  	StringFieldEditor objectID;
35  
36  
37  	public XMLSignaturePreferencePage() {
38  		super(GRID);
39  		setPreferenceStore(Activator.getDefault().getPreferenceStore());
40  		setDescription("Set your default xml signature settings here");
41  	}
42  
43  	public void init(IWorkbench workbench) {
44  
45  	}
46  
47  	protected void createFieldEditors() {
48  
49  		
50  		xmlsignatureformat = new RadioGroupFieldEditor( PreferenceConstants.P_XML_SIGFORMAT,  "&XML Signature format : ", 3, XMLSignatureParameters.XMLSigFormatFamilies, getFieldEditorParent(), true);
51  		addField(xmlsignatureformat);
52  		
53  
54  		xmltransform       = new ComboFieldEditor( PreferenceConstants.P_XML_TRANSFORM,  "&XML Document transform : ", XMLSignatureParameters.XMLTransformFamilies, getFieldEditorParent());
55  		addField(xmltransform);
56  
57  		xmlcanonical       = new ComboFieldEditor( PreferenceConstants.P_XML_CANONICAL,  "&XML Document canonical : ", XMLSignatureParameters.XMLCanonicalFamilies, getFieldEditorParent());
58  		addField(xmlcanonical); 
59  
60  		objectID     = new StringFieldEditor( PreferenceConstants.P_XML_OBJECTIDs,"&Object ID :",  getFieldEditorParent());
61  		addField(objectID);
62  		
63  		
64  		xmldigestformat    = new ComboFieldEditor( PreferenceConstants.P_XML_DIGEST,     "&XML Signature digest : ", XMLSignatureParameters.XMLHashAlgFamilies, getFieldEditorParent());
65  		addField(xmldigestformat);
66  		
67  		xmlsignaturealg    = new ComboFieldEditor( PreferenceConstants.P_XML_SIGALG,     "&XML Signature Algorithm : ", XMLSignatureParameters.XMLSigAlgFamilies, getFieldEditorParent());
68  		addField(xmlsignaturealg);
69  		
70  		replacewithsignedxml = new BooleanFieldEditor(PreferenceConstants.P_XML_OVERWRITE,"&Overwrite the original XML file?", SWT.NONE, getFieldEditorParent());
71  		addField(replacewithsignedxml);
72  
73  		dtdvalidation = new BooleanFieldEditor(PreferenceConstants.P_XML_DTDVALIDATION,"&Enable XML DTD Validation", SWT.NONE, getFieldEditorParent());
74  		addField(dtdvalidation);
75  		
76  		//if (EPConfig.isXMLDetachedSignature())
77  		//	filenamepart.setEnabled(false, getFieldEditorParent());
78  
79  	}
80  	
81  	public void propertyChange(PropertyChangeEvent event) {
82  		super.propertyChange(event);
83  		String selectedvalue    = (String) event.getNewValue().toString();
84  		String oldselectedvalue = (String) event.getOldValue().toString();
85  		//eParapherTools.debugMessage("old : '" + oldselectedvalue  + "'    new : '" + selectedvalue +"'     source : "  + event.getSource().toString());
86  		if (!selectedvalue.equals(oldselectedvalue)) {
87  			if (event.getSource() instanceof RadioGroupFieldEditor) {
88  				String prefname = ((RadioGroupFieldEditor) event.getSource()).getPreferenceName();
89  				if (prefname.equals(PreferenceConstants.P_XML_SIGFORMAT))
90  					if (selectedvalue.equals(XMLSignatureParameters.XMLSigFormatFamilies[2][1])) {
91  						objectID.setEnabled(true, getFieldEditorParent());
92  					} else {
93  						objectID.setEnabled(false, getFieldEditorParent());
94  					}
95  					if (selectedvalue.equals(XMLSignatureParameters.XMLSigFormatFamilies[1][1])) {
96  						xmltransform.setEnabled(true, getFieldEditorParent());
97  					} else {
98  						xmltransform.setEnabled(false, getFieldEditorParent());
99  					}
100 					if (selectedvalue.equals(XMLSignatureParameters.XMLSigFormatFamilies[0][1])) {
101 						replacewithsignedxml.setEnabled(false, getFieldEditorParent());
102 					} else {
103 						replacewithsignedxml.setEnabled(true, getFieldEditorParent());
104 					}
105 			}
106 		}
107 	}
108 }