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
77
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
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 }