1 package org.eparapher.rcp.preferences;
2
3 import org.eclipse.jface.preference.BooleanFieldEditor;
4 import org.eclipse.jface.preference.DirectoryFieldEditor;
5 import org.eclipse.jface.preference.FieldEditorPreferencePage;
6 import org.eclipse.jface.preference.StringFieldEditor;
7 import org.eclipse.jface.util.PropertyChangeEvent;
8 import org.eclipse.swt.SWT;
9 import org.eclipse.ui.IWorkbench;
10 import org.eclipse.ui.IWorkbenchPreferencePage;
11 import org.eparapher.core.EParapherManager;
12 import org.eparapher.rcp.Activator;
13 import org.eparapher.rcp.tools.RCPSettings;
14
15 public class SignaturePreferencePage extends FieldEditorPreferencePage implements
16 IWorkbenchPreferencePage {
17
18 public static final String ID = "org.eparapher.rcp.preferences.SignaturePreferencePage";
19
20 BooleanFieldEditor addCRLs;
21 DirectoryFieldEditor crlCacheDirectory;
22
23 BooleanFieldEditor addTimestamp;
24 StringFieldEditor timestampServers;
25
26 public SignaturePreferencePage() {
27 super(GRID);
28 setPreferenceStore(Activator.getDefault().getPreferenceStore());
29 setDescription("Set your default signature settings");
30 }
31
32 @Override
33 protected void createFieldEditors() {
34
35 addCRLs = new BooleanFieldEditor(PreferenceConstants.P_SIG_ADD_CRL,"&Add Certificates CRLs to the signed document.", SWT.NONE, getFieldEditorParent());
36 addCRLs.setEnabled(false, getFieldEditorParent());
37 addField(addCRLs);
38
39
40
41
42 addTimestamp = new BooleanFieldEditor(PreferenceConstants.P_SIG_ADD_TIMESTAMP,"&Add Timestamp to the signed document.", SWT.NONE, getFieldEditorParent());
43 addTimestamp.setEnabled(false, getFieldEditorParent());
44 addField(addTimestamp);
45
46 timestampServers = new StringFieldEditor(PreferenceConstants.P_SIG_TS_SERVERS,"Timestamp servers URL : ", getFieldEditorParent());
47 timestampServers.setEnabled(false, getFieldEditorParent());
48 addField(timestampServers);
49
50 switchTSServers(EParapherManager.getInstance().getSettings().isTimestampedSignature());
51 }
52
53 private void switchTSServers(Boolean newval) {
54 if (newval.equals("true")) {
55 timestampServers.setEnabled(true, getFieldEditorParent());
56 } else {
57 timestampServers.setEnabled(false, getFieldEditorParent());
58 }
59 }
60
61 public void init(IWorkbench workbench) {
62
63 }
64
65 public void propertyChange(PropertyChangeEvent event) {
66 super.propertyChange(event);
67 String selectedvalue = (String) event.getNewValue().toString();
68 String oldselectedvalue = (String) event.getOldValue().toString();
69
70 if (!selectedvalue.equals(oldselectedvalue)) {
71 if (event.getSource() instanceof BooleanFieldEditor) {
72 BooleanFieldEditor changedbfe = (BooleanFieldEditor) event.getSource();
73 String prefname = changedbfe.getPreferenceName();
74
75 if (prefname.equals(PreferenceConstants.P_SIG_ADD_TIMESTAMP))
76 switchTSServers(selectedvalue.equals("true"));
77 }
78 }
79 }
80
81 }