diff options
Diffstat (limited to 'pdf-over-gui/src')
3 files changed, 67 insertions, 7 deletions
| diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java index b7adaddd..9d3fa864 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/PositioningComposite.java @@ -70,6 +70,8 @@ public class PositioningComposite extends StateComposite {  	private Composite mainArea = null; +	Button btnNewPage = null; +  	Label lblPage = null;  	ScrollBar scrollbar = null; @@ -113,10 +115,26 @@ public class PositioningComposite extends StateComposite {  			}  		}); +		this.btnNewPage = new Button(bottomBar, SWT.TOGGLE); +		this.btnNewPage.setText(Messages.getString("positioning.newPage")); //$NON-NLS-1$ +		FormData fd_btnNewPage = new FormData(); +		fd_btnNewPage.right = new FormAttachment(btnSign); +		fd_btnNewPage.top = new FormAttachment(0); +		this.btnNewPage.setLayoutData(fd_btnNewPage); +		this.btnNewPage.addSelectionListener(new SelectionAdapter() { +			@Override +			public void widgetSelected(SelectionEvent e) { +				if (PositioningComposite.this.currentPage > PositioningComposite.this.numPages) +					showPage(PositioningComposite.this.numPages); +				else +					showPage(PositioningComposite.this.numPages + 1); +			} +		}); +  		this.lblPage = new Label(bottomBar, SWT.CENTER);  		FormData fd_lblPage = new FormData();  		fd_lblPage.left = new FormAttachment(0); -		fd_lblPage.right = new FormAttachment(btnSign, 5); +		fd_lblPage.right = new FormAttachment(this.btnNewPage, 5);  		fd_lblPage.bottom = new FormAttachment(100);  		this.lblPage.setLayoutData(fd_lblPage); @@ -293,6 +311,15 @@ public class PositioningComposite extends StateComposite {  						"Page %d of %d", //$NON-NLS-1$  						PositioningComposite.this.currentPage,  						PositioningComposite.this.numPages)); +				if (PositioningComposite.this.currentPage > PositioningComposite.this.numPages) { +					PositioningComposite.this.btnNewPage.setText( +							Messages.getString("positioning.removeNewPage")); //$NON-NLS-1$ +					PositioningComposite.this.btnNewPage.setSelection(true); +				} else { +					PositioningComposite.this.btnNewPage.setText( +							Messages.getString("positioning.newPage")); //$NON-NLS-1$ +					PositioningComposite.this.btnNewPage.setSelection(false); +				}  			}  		});  		this.viewer.showPage(page); diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java index 33afce4a..353b2b66 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/composites/SignaturePanel.java @@ -93,6 +93,10 @@ public class SignaturePanel extends JPanel {  	int prevSigScreenHeight = 0;  	/** Color of the signature placeholder border */  	private Color sigPlaceholderBorderColor = Color.BLUE; +	/** Current page */ +	int page = 0; +	/** Number of pages in the document */ +	int numPages = 0;  	/**  	 * Create a new PagePanel. @@ -114,7 +118,8 @@ public class SignaturePanel extends JPanel {  	public void setDocument(PDFFile pdf) {  		this.pdf = pdf;  		this.sigPagePos = null; -		showPage(pdf.getNumPages()); +		this.numPages = pdf.getNumPages(); +		showPage(this.numPages);  	}  	/** @@ -144,11 +149,20 @@ public class SignaturePanel extends JPanel {  	 * @param page the number of the page to display  	 */  	public void showPage(int page) { -		//sigPagePos = null; +		this.page = page;  		showPage(this.pdf.getPage(page));  	}  	/** +	 * Add and display a new page at the end of the document +	 *  +	 * This page has the same dimensions as the old last page +	 */ +	public void addNewLastPage() { +		showPage(this.numPages + 1); +	} + +	/**  	 * Translate the signature placeholder position  	 * @param sigXOffset signature placeholder horizontal position offset  	 * @param sigYOffset signature placeholder vertical position offset @@ -195,8 +209,17 @@ public class SignaturePanel extends JPanel {  			this.currentPage.stop(this.prevSize.width, this.prevSize.height, null);  		} +		boolean newPage = false;  		// set up the new page -		this.currentPage = page; +		if (this.page > this.numPages) +		{ +			// New last page - use old last page as template +			this.currentPage = this.pdf.getPage(this.numPages); +			newPage = true; +		} +		else +			this.currentPage = page; +  		if (this.currentPage == null) {  			// no page @@ -215,8 +238,16 @@ public class SignaturePanel extends JPanel {  					null);  			// get the new image -			this.currentImage = this.currentPage.getImage(pageSize.width, pageSize.height, -					null, this); +			if (newPage) +			{ +				this.currentImage = new BufferedImage(pageSize.width, pageSize.height, BufferedImage.TYPE_INT_RGB); +				Graphics g = this.currentImage.getGraphics(); +				g.setColor(Color.WHITE); +				g.fillRect(0, 0, pageSize.width, pageSize.height); +			} +			else +				this.currentImage = this.currentPage.getImage(pageSize.width, pageSize.height, +						null, this);  			// calculate the transform from page to screen space  			this.currentXform = this.currentPage.getInitialTransform(pageSize.width, 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 960c0c2c..957364d6 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 @@ -93,8 +93,10 @@ mobileBKU.password=Password:  output.link_open_message=You can open the signed file <a>here</a>  output.link_save_message=You can save the signed file  output.success_message=Signature was successful -positioning.sign=Sign +positioning.newPage=Create &new Page  positioning.page=Page %d of %d +positioning.removeNewPage=&Undo new Page +positioning.sign=&Sign  simple_config.EmblemEmpty=Drag and Drop an image here\nor use the browse button \nto select a signature logo.  simple_config.Emblem_Title=Signature &logo  simple_config.ExampleNumber=+43676123456789 | 
