View Javadoc

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  		//crlCacheDirectory = new DirectoryFieldEditor(PreferenceConstants.P_SIG_TS_SERVERS,"CRLs Cache directory: ", getFieldEditorParent());
39  		//addField(crlCacheDirectory);
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  		//eParapherTools.debugMessage("old : '" + oldselectedvalue  + "'    new : '" + selectedvalue +"'     source : "  + event.getSource().toString());
70  		if (!selectedvalue.equals(oldselectedvalue)) {
71  			if (event.getSource() instanceof BooleanFieldEditor) {
72  				BooleanFieldEditor changedbfe = (BooleanFieldEditor) event.getSource();
73  				String prefname = changedbfe.getPreferenceName();
74  				//If not overwriting file, can access extention
75  				if (prefname.equals(PreferenceConstants.P_SIG_ADD_TIMESTAMP))
76  					switchTSServers(selectedvalue.equals("true"));
77  			}
78  		}
79  	}
80  
81  }