diff options
| author | tkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7> | 2013-04-10 19:33:00 +0000 | 
|---|---|---|
| committer | tkellner <tkellner@174cde9d-5d70-4d2a-aa98-46368bc2aaf7> | 2013-04-10 19:33:00 +0000 | 
| commit | d2c97b3b6bce8689694e809819df114e42ea2713 (patch) | |
| tree | 2754c5c06333a88f957b86aee11c755b553cc6b9 | |
| parent | 81129700eb9f14e829a44f7a6669991eab017634 (diff) | |
| download | pdf-over-d2c97b3b6bce8689694e809819df114e42ea2713.tar.gz pdf-over-d2c97b3b6bce8689694e809819df114e42ea2713.tar.bz2 pdf-over-d2c97b3b6bce8689694e809819df114e42ea2713.zip | |
Added show button to tan entry for mobile bku
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@378 174cde9d-5d70-4d2a-aa98-46368bc2aaf7
4 files changed, 150 insertions, 72 deletions
| diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUEnterTANComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUEnterTANComposite.java index df883496..bcf6108d 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUEnterTANComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/MobileBKUEnterTANComposite.java @@ -16,6 +16,9 @@  package at.asit.pdfover.gui.composites;  // Imports +import java.awt.Desktop; +import java.net.URI; +  import org.eclipse.swt.SWT;  import org.eclipse.swt.events.ModifyEvent;  import org.eclipse.swt.events.ModifyListener; @@ -46,7 +49,7 @@ import at.asit.pdfover.gui.workflow.states.State;   * Composite for entering the TAN for the mobile BKU   */  public class MobileBKUEnterTANComposite extends StateComposite { -	 +  	/**  	 *   	 */ @@ -60,19 +63,21 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		@Override  		public void widgetSelected(SelectionEvent e) {  			String tan = MobileBKUEnterTANComposite.this.txt_tan.getText(); -			 +  			tan = tan.trim(); -			 -			if(MobileBKUEnterTANComposite.this.refVal.startsWith(tan)) { -				MobileBKUEnterTANComposite.this.setMessage(Messages.getString("error.EnteredReferenceValue")); //$NON-NLS-1$ + +			if (MobileBKUEnterTANComposite.this.refVal.startsWith(tan)) { +				MobileBKUEnterTANComposite.this.setMessage(Messages +						.getString("error.EnteredReferenceValue")); //$NON-NLS-1$  				return;  			} -			 -			if(tan.length() > 6) { -				MobileBKUEnterTANComposite.this.setMessage(Messages.getString("error.TanTooLong")); //$NON-NLS-1$ + +			if (tan.length() > 6) { +				MobileBKUEnterTANComposite.this.setMessage(Messages +						.getString("error.TanTooLong")); //$NON-NLS-1$  				return;  			} -			 +  			MobileBKUEnterTANComposite.this.tan = tan;  			MobileBKUEnterTANComposite.this.setUserAck(true);  			MobileBKUEnterTANComposite.this.state.updateStateMachine(); @@ -84,16 +89,32 @@ public class MobileBKUEnterTANComposite extends StateComposite {  	 **/  	static final Logger log = LoggerFactory  			.getLogger(MobileBKUEnterTANComposite.class); -	 +  	Text txt_tan; -	 -	boolean userAck = false; +	boolean userAck = false;  	private Label lblRefVal;  	String refVal; -	 + +	String signatureData; + +	/** +	 * @return the signatureData +	 */ +	public String getSignatureData() { +		return this.signatureData; +	} + +	/** +	 * @param signatureData +	 *            the signatureData to set +	 */ +	public void setSignatureData(String signatureData) { +		this.signatureData = signatureData; +	} +  	String tan;  	private Label lblTries; @@ -111,16 +132,17 @@ public class MobileBKUEnterTANComposite extends StateComposite {  	/**  	 * Set how many tries are left +	 *   	 * @param tries  	 */  	public void setTries(int tries) { -		this.lblTries.setText( -				tries == 1 ? Messages.getString("tanEnter.try") : //$NON-NLS-1$ +		this.lblTries.setText(tries == 1 ? Messages.getString("tanEnter.try") : //$NON-NLS-1$  				String.format(Messages.getString("tanEnter.tries"), tries)); //$NON-NLS-1$  	} -	 +  	/**  	 * Sets the message +	 *   	 * @param msg  	 */  	public void setMessage(String msg) { @@ -128,9 +150,10 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		this.lblTries.redraw();  		this.lblTries.getParent().layout(true, true);  	} -	 +  	/** -	 * @param userAck the userAck to set +	 * @param userAck +	 *            the userAck to set  	 */  	public void setUserAck(boolean userAck) {  		this.userAck = userAck; @@ -144,19 +167,20 @@ public class MobileBKUEnterTANComposite extends StateComposite {  	}  	/** -	 * @param refVal the reference value to set +	 * @param refVal +	 *            the reference value to set  	 */  	public void setRefVal(String refVal) {  		this.refVal = refVal.trim(); -		 -		if(this.refVal != null) { + +		if (this.refVal != null) {  			this.lblRefVal.setText(this.refVal);  		} else {  			this.lblRefVal.setText(""); //$NON-NLS-1$  		} -		 +  	} -	 +  	/**  	 * @return the tan  	 */ @@ -165,12 +189,13 @@ public class MobileBKUEnterTANComposite extends StateComposite {  	}  	/** -	 * @param tan the tan to set +	 * @param tan +	 *            the tan to set  	 */  	public void setTan(String tan) {  		this.tan = tan; -		 -		if(this.tan == null) { + +		if (this.tan == null) {  			this.txt_tan.setText(""); //$NON-NLS-1$  		} else {  			this.txt_tan.setText(this.tan); @@ -178,29 +203,58 @@ public class MobileBKUEnterTANComposite extends StateComposite {  	}  	/** +	 * Selection Listener for open button +	 */ +	private final class ShowSignatureDataListener extends SelectionAdapter { +		/** +		 * Empty constructor +		 */ +		public ShowSignatureDataListener() { +		} + +		@Override +		public void widgetSelected(SelectionEvent e) { +			try { +				String signatureData = MobileBKUEnterTANComposite.this +						.getSignatureData(); +				if (signatureData != null && !signatureData.equals("")) { //$NON-NLS-1$ +					log.debug("Trying to open " + signatureData); //$NON-NLS-1$ +					if (Desktop.isDesktopSupported()) { +						Desktop.getDesktop().browse(new URI(signatureData)); +					} else { +						log.error("SWT Desktop is not supported on this platform!"); //$NON-NLS-1$ +					} +				} +			} catch (Exception ex) { +				log.error("OpenSelectionListener: ", ex); //$NON-NLS-1$ +			} +		} +	} + +	/**  	 * Create the composite. +	 *   	 * @param parent  	 * @param style -	 * @param state  +	 * @param state  	 */  	public MobileBKUEnterTANComposite(Composite parent, int style, State state) {  		super(parent, style, state);  		setLayout(new FormLayout()); -		 +  		final Composite containerComposite = new Composite(this, SWT.NATIVE);  		containerComposite.addPaintListener(new PaintListener() { -			 +  			@Override  			public void paintControl(PaintEvent e) {  				Rectangle clientArea = containerComposite.getClientArea(); -				 -				//e.gc.setForeground(); -				e.gc.setForeground(new Color(getDisplay(),0x6B, 0xA5, 0xD9)); + +				// e.gc.setForeground(); +				e.gc.setForeground(new Color(getDisplay(), 0x6B, 0xA5, 0xD9));  				e.gc.setLineWidth(3);  				e.gc.setLineStyle(SWT.LINE_SOLID); -				e.gc.drawRoundRectangle(clientArea.x,  -						clientArea.y, clientArea.width - 2, clientArea.height - 2,  -						10, 10); +				e.gc.drawRoundRectangle(clientArea.x, clientArea.y, +						clientArea.width - 2, clientArea.height - 2, 10, 10);  			}  		});  		containerComposite.setLayout(new FormLayout()); @@ -210,23 +264,24 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		fd_containerComposite.left = new FormAttachment(50, -200);  		fd_containerComposite.right = new FormAttachment(50, 200);  		containerComposite.setLayoutData(fd_containerComposite); -		 -		 +  		this.lblRefValLabel = new Label(containerComposite, SWT.NATIVE);  		this.lblRefValLabel.setAlignment(SWT.RIGHT);  		FormData fd_lblRefValLabel = new FormData(); -		//fd_lblRefValLabel.left = new FormAttachment(0, 20); +		// fd_lblRefValLabel.left = new FormAttachment(0, 20);  		fd_lblRefValLabel.right = new FormAttachment(50, -10); -		//fd_lblRefValLabel.top = new FormAttachment(30, -15); +		// fd_lblRefValLabel.top = new FormAttachment(30, -15);  		fd_lblRefValLabel.bottom = new FormAttachment(50, -10);  		this.lblRefValLabel.setLayoutData(fd_lblRefValLabel); -		this.lblRefValLabel.setText(Messages.getString("tanEnter.ReferenceValue")); //$NON-NLS-1$ -		 +		this.lblRefValLabel.setText(Messages +				.getString("tanEnter.ReferenceValue")); //$NON-NLS-1$ +  		Label lbl_image = new Label(containerComposite, SWT.NATIVE); -		 -		ImageData data = new ImageData(this.getClass().getResourceAsStream("/img/handy.gif"));//$NON-NLS-1$ -		Image mobile = new Image(getDisplay(), data);  -		 + +		ImageData data = new ImageData(this.getClass().getResourceAsStream( +				"/img/handy.gif"));//$NON-NLS-1$ +		Image mobile = new Image(getDisplay(), data); +  		FormData fd_lbl_image = new FormData();  		fd_lbl_image.top = new FormAttachment(50, -1 * (data.width / 2));  		fd_lbl_image.bottom = new FormAttachment(50, data.width / 2); @@ -234,26 +289,26 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		fd_lbl_image.width = data.width;  		lbl_image.setLayoutData(fd_lbl_image);  		lbl_image.setImage(mobile); -		 +  		this.lblRefVal = new Label(containerComposite, SWT.NATIVE);  		FormData fd_lblRefVal = new FormData();  		fd_lblRefVal.left = new FormAttachment(50, 10);  		fd_lblRefVal.right = new FormAttachment(100, -20); -		//fd_lblRefVal.top = new FormAttachment(30, -15); +		// fd_lblRefVal.top = new FormAttachment(30, -15);  		fd_lblRefVal.bottom = new FormAttachment(50, -10);  		this.lblRefVal.setLayoutData(fd_lblRefVal);  		this.lblRefVal.setText(""); //$NON-NLS-1$ -		 +  		this.lblTan = new Label(containerComposite, SWT.NATIVE);  		this.lblTan.setAlignment(SWT.RIGHT);  		FormData fd_lblTan = new FormData(); -		//fd_lblTan.left = new FormAttachment(0, 20); +		// fd_lblTan.left = new FormAttachment(0, 20);  		fd_lblTan.right = new FormAttachment(50, -10);  		fd_lblTan.top = new FormAttachment(50, 10); -		//fd_lblTan.bottom = new FormAttachment(50, 15); +		// fd_lblTan.bottom = new FormAttachment(50, 15);  		this.lblTan.setLayoutData(fd_lblTan);  		this.lblTan.setText(Messages.getString("tanEnter.TAN")); //$NON-NLS-1$ -		 +  		this.txt_tan = new Text(containerComposite, SWT.BORDER | SWT.NATIVE);  		FormData fd_text = new FormData();  		fd_text.left = new FormAttachment(50, 10); @@ -261,9 +316,9 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		fd_text.top = new FormAttachment(50, 10);  		this.txt_tan.setEditable(true);  		this.txt_tan.setLayoutData(fd_text); -		 +  		this.txt_tan.addTraverseListener(new TraverseListener() { -			 +  			@Override  			public void keyTraversed(TraverseEvent e) {  				if (e.detail == SWT.TRAVERSE_RETURN) { @@ -271,37 +326,50 @@ public class MobileBKUEnterTANComposite extends StateComposite {  				}  			}  		}); -		 +  		this.txt_tan.addModifyListener(new ModifyListener() { -			 +  			@Override  			public void modifyText(ModifyEvent e) { -				 +  				String text = MobileBKUEnterTANComposite.this.txt_tan.getText();  				//log.debug("Current TAN: " + text); //$NON-NLS-1$ -				if(text.length() > 3 && MobileBKUEnterTANComposite.this.getRefVal().startsWith(text.trim())) { -					MobileBKUEnterTANComposite.this.setMessage(Messages.getString("error.EnteredReferenceValue")); //$NON-NLS-1$ -				}  +				if (text.length() > 3 +						&& MobileBKUEnterTANComposite.this.getRefVal() +								.startsWith(text.trim())) { +					MobileBKUEnterTANComposite.this.setMessage(Messages +							.getString("error.EnteredReferenceValue")); //$NON-NLS-1$ +				}  			}  		}); -		 +  		Button btn_ok = new Button(containerComposite, SWT.NATIVE); + +		Button lnk_sig_data = new Button(containerComposite, SWT.NATIVE | SWT.RESIZE); + +		FormData fd_lnk_data = new FormData(); +		fd_lnk_data.right = new FormAttachment(100, -20); +		fd_lnk_data.bottom = new FormAttachment(100, -20); +		lnk_sig_data.setEnabled(true); +		lnk_sig_data.setLayoutData(fd_lnk_data); +		lnk_sig_data.addSelectionListener(new ShowSignatureDataListener()); +		lnk_sig_data.setText(Messages.getString("mobileBKU.show")); //$NON-NLS-1$ +		lnk_sig_data.setToolTipText(Messages.getString("mobileBKU.show_tooltip")); //$NON-NLS-1$  		this.lblTries = new Label(containerComposite, SWT.WRAP | SWT.NATIVE);  		FormData fd_lbl_tries = new FormData(); -		//fd_lbl_tries.left = new FormAttachment(15, 5); +		// fd_lbl_tries.left = new FormAttachment(15, 5);  		fd_lbl_tries.right = new FormAttachment(btn_ok, -10); -		//fd_lbl_tries.top = new FormAttachment(70, -15); +		// fd_lbl_tries.top = new FormAttachment(70, -15);  		fd_lbl_tries.bottom = new FormAttachment(100, -20);  		this.lblTries.setLayoutData(fd_lbl_tries); -		 -		 +  		FormData fd_btn_ok = new FormData(); -		//fd_btn_ok.left = new FormAttachment(95, 0); -		fd_btn_ok.right = new FormAttachment(100, -20); -		fd_btn_ok.left = new FormAttachment(100, -70); -		fd_btn_ok.bottom = new FormAttachment(100,-20); -		 +		// fd_btn_ok.left = new FormAttachment(95, 0); +		fd_btn_ok.right = new FormAttachment(lnk_sig_data, -10); +		//fd_btn_ok.left = new FormAttachment(100, -70); +		fd_btn_ok.bottom = new FormAttachment(100, -20); +  		btn_ok.setLayoutData(fd_btn_ok);  		btn_ok.setText(Messages.getString("common.Ok")); //$NON-NLS-1$  		btn_ok.addSelectionListener(new OkSelectionListener()); @@ -313,7 +381,9 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		// Disable the check that prevents subclassing of SWT components  	} -	/* (non-Javadoc) +	/* +	 * (non-Javadoc) +	 *   	 * @see at.asit.pdfover.gui.composites.StateComposite#doLayout()  	 */  	@Override @@ -321,12 +391,15 @@ public class MobileBKUEnterTANComposite extends StateComposite {  		// Nothing to do  	} -	/* (non-Javadoc) +	/* +	 * (non-Javadoc) +	 *   	 * @see at.asit.pdfover.gui.composites.StateComposite#reloadResources()  	 */  	@Override  	public void reloadResources() { -		this.lblRefValLabel.setText(Messages.getString("tanEnter.ReferenceValue")); //$NON-NLS-1$ +		this.lblRefValLabel.setText(Messages +				.getString("tanEnter.ReferenceValue")); //$NON-NLS-1$  		this.lblTan.setText(Messages.getString("tanEnter.TAN")); //$NON-NLS-1$  	} diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java index 827dcf70..4b7a3f3e 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/MobileBKUState.java @@ -283,6 +283,7 @@ public class MobileBKUState extends State {  			} else {  				tan.setRefVal(mobileStatus.getRefVal()); +				tan.setSignatureData(mobileStatus.getSignatureDataURL());  				if (mobileStatus.getTanTries() < mobileStatus.getMaxTanTries()  						&& mobileStatus.getTanTries() > 0) { diff --git a/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages.properties b/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages.properties index 8ed7b808..f4b7898e 100644 --- a/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages.properties +++ b/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages.properties @@ -100,6 +100,8 @@ main.signature=Signing  main.title=PDF-Over  mobileBKU.number=Number:  mobileBKU.password=Password: +mobileBKU.show=Show +mobileBKU.show_tooltip=Show signature data  output.file_ask_overwrite=File %s already exists, do you want to overwrite it?  output.link_open_message=You can open the signed file <a>here</a>  output.link_save_message=You can save the signed file diff --git a/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages_de.properties b/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages_de.properties index 7cd6bc59..7bcbef5b 100644 --- a/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages_de.properties +++ b/pdf-over-gui/src/main/resources/at/asit/pdfover/gui/messages_de.properties @@ -100,6 +100,8 @@ main.signature=Signatur  main.title=PDF-Over  mobileBKU.number=Nummer:  mobileBKU.password=Passwort: +mobileBKU.show=Show +mobileBKU.show_tooltip=Zeigt die Signaturdaten an  output.file_ask_overwrite=Datei %s existiert bereits, wollen Sie sie überschreiben?  output.link_open_message=Sie können das signierte Dokument <a>hier</a> öffnen  output.link_save_message=Sie können das signierte Dokument speichern | 
