package org.eparapher.rcp.preferences; import org.apache.log4j.Logger; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.RadioGroupFieldEditor; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.swt.SWT; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eparapher.core.signature.XMLSignatureParameters; import org.eparapher.rcp.Activator; public class XMLSignaturePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { private static Logger log = Logger.getLogger(XMLSignaturePreferencePage.class); public static final String ID = "org.eparapher.rcp.preferences.XMLSignaturePreferencePage"; BooleanFieldEditor replacewithsignedxml; BooleanFieldEditor dtdvalidation; RadioGroupFieldEditor xmlsignatureformat; ComboFieldEditor xmldigestformat; ComboFieldEditor xmlsignaturealg; ComboFieldEditor xmltransform; ComboFieldEditor xmlcanonical; StringFieldEditor objectID; public XMLSignaturePreferencePage() { super(GRID); setPreferenceStore(Activator.getDefault().getPreferenceStore()); setDescription("Set your default xml signature settings here"); } public void init(IWorkbench workbench) { } protected void createFieldEditors() { xmlsignatureformat = new RadioGroupFieldEditor( PreferenceConstants.P_XML_SIGFORMAT, "&XML Signature format : ", 3, XMLSignatureParameters.XMLSigFormatFamilies, getFieldEditorParent(), true); addField(xmlsignatureformat); xmltransform = new ComboFieldEditor( PreferenceConstants.P_XML_TRANSFORM, "&XML Document transform : ", XMLSignatureParameters.XMLTransformFamilies, getFieldEditorParent()); addField(xmltransform); xmlcanonical = new ComboFieldEditor( PreferenceConstants.P_XML_CANONICAL, "&XML Document canonical : ", XMLSignatureParameters.XMLCanonicalFamilies, getFieldEditorParent()); addField(xmlcanonical); objectID = new StringFieldEditor( PreferenceConstants.P_XML_OBJECTIDs,"&Object ID :", getFieldEditorParent()); addField(objectID); xmldigestformat = new ComboFieldEditor( PreferenceConstants.P_XML_DIGEST, "&XML Signature digest : ", XMLSignatureParameters.XMLHashAlgFamilies, getFieldEditorParent()); addField(xmldigestformat); xmlsignaturealg = new ComboFieldEditor( PreferenceConstants.P_XML_SIGALG, "&XML Signature Algorithm : ", XMLSignatureParameters.XMLSigAlgFamilies, getFieldEditorParent()); addField(xmlsignaturealg); replacewithsignedxml = new BooleanFieldEditor(PreferenceConstants.P_XML_OVERWRITE,"&Overwrite the original XML file?", SWT.NONE, getFieldEditorParent()); addField(replacewithsignedxml); dtdvalidation = new BooleanFieldEditor(PreferenceConstants.P_XML_DTDVALIDATION,"&Enable XML DTD Validation", SWT.NONE, getFieldEditorParent()); addField(dtdvalidation); //if (EPConfig.isXMLDetachedSignature()) // filenamepart.setEnabled(false, getFieldEditorParent()); } public void propertyChange(PropertyChangeEvent event) { super.propertyChange(event); String selectedvalue = (String) event.getNewValue().toString(); String oldselectedvalue = (String) event.getOldValue().toString(); //eParapherTools.debugMessage("old : '" + oldselectedvalue + "' new : '" + selectedvalue +"' source : " + event.getSource().toString()); if (!selectedvalue.equals(oldselectedvalue)) { if (event.getSource() instanceof RadioGroupFieldEditor) { String prefname = ((RadioGroupFieldEditor) event.getSource()).getPreferenceName(); if (prefname.equals(PreferenceConstants.P_XML_SIGFORMAT)) if (selectedvalue.equals(XMLSignatureParameters.XMLSigFormatFamilies[2][1])) { objectID.setEnabled(true, getFieldEditorParent()); } else { objectID.setEnabled(false, getFieldEditorParent()); } if (selectedvalue.equals(XMLSignatureParameters.XMLSigFormatFamilies[1][1])) { xmltransform.setEnabled(true, getFieldEditorParent()); } else { xmltransform.setEnabled(false, getFieldEditorParent()); } if (selectedvalue.equals(XMLSignatureParameters.XMLSigFormatFamilies[0][1])) { replacewithsignedxml.setEnabled(false, getFieldEditorParent()); } else { replacewithsignedxml.setEnabled(true, getFieldEditorParent()); } } } } }