package org.eparapher.rcp.preferences; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.FileFieldEditor; import org.eclipse.jface.preference.IntegerFieldEditor; 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.core.signature.PDFSignatureParameters; import org.eparapher.rcp.Activator; import org.eparapher.rcp.tools.RCPSettings; public class PDFSignaturePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String ID = "org.eparapher.rcp.preferences.PDFSignaturePreferencePage"; BooleanFieldEditor multiplesignature; BooleanFieldEditor replaceunsignedpdf; BooleanFieldEditor visiblesignature; FileFieldEditor visibleSignatureImage; IntegerFieldEditor visibleSignaturePage; IntegerFieldEditor visibleSignatureSize; IntegerFieldEditor visibleSignatureLowerLeftX; IntegerFieldEditor visibleSignatureLowerLeftY; IntegerFieldEditor visibleSignatureUpperRightX; IntegerFieldEditor visibleSignatureUpperRightY; ComboFieldEditor pdfsignatureformat; ComboFieldEditor pdfsignaturecertification; StringFieldEditor filenamepart; StringFieldEditor location; StringFieldEditor reason; public PDFSignaturePreferencePage() { super(GRID); setPreferenceStore(Activator.getDefault().getPreferenceStore()); setDescription("Set your default pdf signature settings here"); } public void init(IWorkbench workbench) { } protected void createFieldEditors() { replaceunsignedpdf = new BooleanFieldEditor(PreferenceConstants.P_PDFSIGNATUREREPLACEFILE,"&Overwrite the original PDF file?", SWT.NONE, getFieldEditorParent()); addField(replaceunsignedpdf); filenamepart = new StringFieldEditor( PreferenceConstants.P_PDFSIGNATUREFILENAMEAPP,"&Append new filename :", getFieldEditorParent()); addField(filenamepart); if (EParapherManager.getInstance().getSettings().isPDFSignatureReplaceFile()) filenamepart.setEnabled(false, getFieldEditorParent()); multiplesignature = new BooleanFieldEditor(PreferenceConstants.P_PDFSIGNATUREMULTIPLE,"&Allow multiple signatures in the document.", SWT.NONE, getFieldEditorParent()); addField(multiplesignature); reason = new StringFieldEditor( PreferenceConstants.P_PDFSIGNATUREREASON,"&Signature reason : ", getFieldEditorParent()); addField(reason); location = new StringFieldEditor( PreferenceConstants.P_PDFSIGNATURELOCATION,"&Your Location : ", getFieldEditorParent()); addField(location); pdfsignatureformat = new ComboFieldEditor( PreferenceConstants.P_PDFSIGNATUREFORMAT,"&PDF Signature Format : ", PDFSignatureParameters.PDFSignatureFamilies, getFieldEditorParent()); addField(pdfsignatureformat); pdfsignaturecertification = new ComboFieldEditor( PreferenceConstants.P_PDFSIGNATURECERTIF,"&PDF Signature Certification : ", PDFSignatureParameters.PDFSignatureCertifications, getFieldEditorParent()); addField(pdfsignaturecertification); visiblesignature = new BooleanFieldEditor(PreferenceConstants.P_PDFSIGNATUREVISIBLE,"&Visible signature in the document.", SWT.NONE, getFieldEditorParent()); addField(visiblesignature); visibleSignatureImage = new FileFieldEditor(PreferenceConstants.P_PDFSIGNATUREIMAGE,"Signature image : ",true,getFieldEditorParent()); addField(visibleSignatureImage); visibleSignatureSize = new IntegerFieldEditor(PreferenceConstants.P_PDFSIGNATUREIMAGESIZE,"Image size (percent) : ",getFieldEditorParent(),4); visibleSignatureSize.setValidRange(1, 9999); visibleSignatureSize.setEnabled(false, getFieldEditorParent()); addField(visibleSignatureSize); visibleSignaturePage = new IntegerFieldEditor(PreferenceConstants.P_PDFSIGNATUREVISIBLEPAGE,"Signature page : ",getFieldEditorParent(),4); addField(visibleSignaturePage); visibleSignatureLowerLeftX = new IntegerFieldEditor(PreferenceConstants.P_PDFSIGIMGLOWERLEFTX," lower left X position : ",getFieldEditorParent(),5); visibleSignatureLowerLeftX.setValidRange(-1, 999); addField(visibleSignatureLowerLeftX); visibleSignatureLowerLeftY = new IntegerFieldEditor(PreferenceConstants.P_PDFSIGIMGLOWERLEFTY," lower left Y position : ",getFieldEditorParent(),5); visibleSignatureLowerLeftY.setValidRange(-1, 999); addField(visibleSignatureLowerLeftY); visibleSignatureUpperRightX = new IntegerFieldEditor(PreferenceConstants.P_PDFSIGIMGUPPERRIGHTX," upper right X position : ",getFieldEditorParent(),5); visibleSignatureUpperRightX.setValidRange(0, 999); addField(visibleSignatureUpperRightX); visibleSignatureUpperRightY = new IntegerFieldEditor(PreferenceConstants.P_PDFSIGIMGUPPERRIGHTY," upper right Y position : ",getFieldEditorParent(),5); visibleSignatureUpperRightY.setValidRange(0, 999); addField(visibleSignatureUpperRightY); if (!EParapherManager.getInstance().getSettings().isPDFVisibleSignature()) { visibleSignatureImage.setEnabled(false, getFieldEditorParent()); visibleSignaturePage.setEnabled(false, getFieldEditorParent()); visibleSignatureSize.setEnabled(false, getFieldEditorParent()); visibleSignatureLowerLeftX.setEnabled(false, getFieldEditorParent()); visibleSignatureLowerLeftY.setEnabled(false, getFieldEditorParent()); visibleSignatureUpperRightX.setEnabled(false, getFieldEditorParent()); visibleSignatureUpperRightY.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 BooleanFieldEditor) { BooleanFieldEditor changedbfe = (BooleanFieldEditor) event.getSource(); String prefname = changedbfe.getPreferenceName(); //If not overwriting file, can access extention if (prefname.equals(PreferenceConstants.P_PDFSIGNATUREREPLACEFILE)) if (selectedvalue.equals("true")) { filenamepart.setEnabled(false, getFieldEditorParent()); } else { filenamepart.setEnabled(true, getFieldEditorParent()); } if (prefname.equals(PreferenceConstants.P_PDFSIGNATUREVISIBLE)) if (selectedvalue.equals("true")) { visibleSignatureImage.setEnabled(true, getFieldEditorParent()); visibleSignaturePage.setEnabled(true, getFieldEditorParent()); visibleSignatureSize.setEnabled(true, getFieldEditorParent()); visibleSignatureLowerLeftX.setEnabled(true, getFieldEditorParent()); visibleSignatureLowerLeftY.setEnabled(true, getFieldEditorParent()); visibleSignatureUpperRightX.setEnabled(true, getFieldEditorParent()); visibleSignatureUpperRightY.setEnabled(true, getFieldEditorParent()); } else { visibleSignatureImage.setEnabled(false, getFieldEditorParent()); visibleSignaturePage.setEnabled(false, getFieldEditorParent()); visibleSignatureSize.setEnabled(false, getFieldEditorParent()); visibleSignatureLowerLeftX.setEnabled(false, getFieldEditorParent()); visibleSignatureLowerLeftY.setEnabled(false, getFieldEditorParent()); visibleSignatureUpperRightX.setEnabled(false, getFieldEditorParent()); visibleSignatureUpperRightY.setEnabled(false, getFieldEditorParent()); } } } } }