package org.eparapher.rcp.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; 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.EParapherManager; import org.eparapher.rcp.Activator; import org.eparapher.rcp.tools.RCPSettings; public class SignaturePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String ID = "org.eparapher.rcp.preferences.SignaturePreferencePage"; BooleanFieldEditor addCRLs; DirectoryFieldEditor crlCacheDirectory; BooleanFieldEditor addTimestamp; StringFieldEditor timestampServers; public SignaturePreferencePage() { super(GRID); setPreferenceStore(Activator.getDefault().getPreferenceStore()); setDescription("Set your default signature settings"); } @Override protected void createFieldEditors() { addCRLs = new BooleanFieldEditor(PreferenceConstants.P_SIG_ADD_CRL,"&Add Certificates CRLs to the signed document.", SWT.NONE, getFieldEditorParent()); addCRLs.setEnabled(false, getFieldEditorParent()); addField(addCRLs); //crlCacheDirectory = new DirectoryFieldEditor(PreferenceConstants.P_SIG_TS_SERVERS,"CRLs Cache directory: ", getFieldEditorParent()); //addField(crlCacheDirectory); addTimestamp = new BooleanFieldEditor(PreferenceConstants.P_SIG_ADD_TIMESTAMP,"&Add Timestamp to the signed document.", SWT.NONE, getFieldEditorParent()); addTimestamp.setEnabled(false, getFieldEditorParent()); addField(addTimestamp); timestampServers = new StringFieldEditor(PreferenceConstants.P_SIG_TS_SERVERS,"Timestamp servers URL : ", getFieldEditorParent()); timestampServers.setEnabled(false, getFieldEditorParent()); addField(timestampServers); switchTSServers(EParapherManager.getInstance().getSettings().isTimestampedSignature()); } private void switchTSServers(Boolean newval) { if (newval.equals("true")) { timestampServers.setEnabled(true, getFieldEditorParent()); } else { timestampServers.setEnabled(false, getFieldEditorParent()); } } public void init(IWorkbench workbench) { } 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 BooleanFieldEditor) { BooleanFieldEditor changedbfe = (BooleanFieldEditor) event.getSource(); String prefname = changedbfe.getPreferenceName(); //If not overwriting file, can access extention if (prefname.equals(PreferenceConstants.P_SIG_ADD_TIMESTAMP)) switchTSServers(selectedvalue.equals("true")); } } } }