diff options
author | Dirk Fauth | 2016-10-10 17:13:21 +0000 |
---|---|---|
committer | Dirk Fauth | 2016-10-10 17:13:21 +0000 |
commit | 7235a973636fc28c6832ce6aed4a4c01ad4cc79f (patch) | |
tree | 0c64b6928120702043be12a3885802c1f66df174 | |
parent | a89f1b4afe7432f52b6e5a2b314358431f96dcd6 (diff) | |
download | org.eclipse.nebula.widgets.nattable-7235a973636fc28c6832ce6aed4a4c01ad4cc79f.tar.gz org.eclipse.nebula.widgets.nattable-7235a973636fc28c6832ce6aed4a4c01ad4cc79f.tar.xz org.eclipse.nebula.widgets.nattable-7235a973636fc28c6832ce6aed4a4c01ad4cc79f.zip |
Bug 505665 - [Print] Show total page count in footer
Change-Id: Ie3d580770b8078d29e2a594088216877fa57e19d
Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
11 files changed, 28 insertions, 12 deletions
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages.properties index e9e6673c..1ec4aadb 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages.properties @@ -130,7 +130,7 @@ PersistenceDialog.nameLabel=Name PersistenceDialog.viewerLabel=Available State Configurations PersistenceDialog.nameErrorText=It is not possible to use an empty name for a view configuration! -Printer.page=Page +Printer.page=Page {0} Search.find=Find Search.closeButtonLabel=&Close diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_de.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_de.properties index 4c322eb8..fb81b7f6 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_de.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_de.properties @@ -130,7 +130,7 @@ PersistenceDialog.nameLabel=Name PersistenceDialog.viewerLabel=Verf\u00FCgbare Darstellungen PersistenceDialog.nameErrorText=Es muss ein Name für eine Darstellung gesetzt werden! -Printer.page=Seite +Printer.page=Seite {0} Search.find=Suchen Search.closeButtonLabel=Schlie&\u00DFen diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_es.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_es.properties index 4b218bf3..23a434b4 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_es.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_es.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=Nombre PersistenceDialog.viewerLabel=Configuraci\u00f3n de estado disponible PersistenceDialog.nameErrorText=Debe definirse un nombre para la visualizaci\u00f3n. -Printer.page=P\u00e1gina +Printer.page=P\u00e1gina {0} Search.find=Buscar Search.closeButtonLabel=&Cerrar diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_fr.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_fr.properties index c6f901b9..97072728 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_fr.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_fr.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=Nom PersistenceDialog.viewerLabel=Configuration d'\u00e9tat disponible PersistenceDialog.nameErrorText=Un nom doit \u00eatre d\u00e9fini pour la repr\u00e9sentation. -Printer.page=Page +Printer.page=Page {0} Search.find=Rechercher Search.closeButtonLabel=&Fermer diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_it.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_it.properties index 23d0d150..8c4129f7 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_it.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_it.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=Nome PersistenceDialog.viewerLabel=Configurazione di stato disponibile PersistenceDialog.nameErrorText=Deve essere definito un nome per la rappresentazione. -Printer.page=Pagina +Printer.page=Pagina {0} Search.find=Trova Search.closeButtonLabel=&Chiudi diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ja.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ja.properties index 7c948808..1519e276 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ja.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ja.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=\u540d\u524d PersistenceDialog.viewerLabel=\u4f7f\u7528\u53ef\u80fd\u306a\uff7d\uff83\uff70\uff80\uff7d\u69cb\u6210 PersistenceDialog.nameErrorText=\uff74\uff8c\uff6a\uff78\uff84\u306b\u540d\u524d\u3092\u4ed8\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 -Printer.page=\uff8d\uff9f\uff70\uff7c\uff9e +Printer.page=\uff8d\uff9f\uff70\uff7c\uff9e {0} Search.find=\u691c\u7d22 Search.closeButtonLabel=\u9589\u3058\u308b(&C) diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ko.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ko.properties index 9b0cab07..7fa05ef0 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ko.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_ko.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=\uc774\ub984 PersistenceDialog.viewerLabel=\uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc0c1\ud0dc \uad6c\uc131 PersistenceDialog.nameErrorText=\ud6a8\uacfc\uc5d0 \uc774\ub984\uc744 \ubd80\uc5ec\ud574\uc57c \ud569\ub2c8\ub2e4. -Printer.page=\ud398\uc774\uc9c0 +Printer.page=\ud398\uc774\uc9c0 {0} Search.find=\ucc3e\uae30 Search.closeButtonLabel=\ub2eb\uae30(&C) diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_CN.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_CN.properties index e79b052a..d7e7c0bb 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_CN.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_CN.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=\u540d\u79f0 PersistenceDialog.viewerLabel=\u53ef\u7528\u72b6\u6001\u7ec4\u6001 PersistenceDialog.nameErrorText=\u6548\u679c\u5fc5\u987b\u6307\u5b9a\u540d\u79f0\u3002 -Printer.page=\u9875\u9762 +Printer.page=\u9875\u9762 {0} Search.find=\u67e5\u627e Search.closeButtonLabel=\u5173\u95ed(&C) diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_TW.properties b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_TW.properties index 3b07c76e..11217949 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_TW.properties +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/messages_zh_TW.properties @@ -127,7 +127,7 @@ PersistenceDialog.nameLabel=\u540d\u7a31 PersistenceDialog.viewerLabel=\u53ef\u7528\u72c0\u614b\u898f\u5283 PersistenceDialog.nameErrorText=\u5fc5\u9808\u70ba\u6548\u679c\u6307\u5b9a\u540d\u7a31\u3002 -Printer.page=\u9801\u9762 +Printer.page=\u9801\u9762 {0} Search.find=\u5c0b\u627e Search.closeButtonLabel=\u95dc\u9589(&C) diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/LayerPrinter.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/LayerPrinter.java index a2c80a01..08218bb3 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/LayerPrinter.java +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/LayerPrinter.java @@ -10,6 +10,7 @@ ******************************************************************************/ package org.eclipse.nebula.widgets.nattable.print; +import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -74,6 +75,7 @@ public class LayerPrinter { final SimpleDateFormat dateFormat; private final String footerDate; + private final String footerPagePattern; private final int footerHeight; @@ -128,6 +130,11 @@ public class LayerPrinter { DisplayMode.NORMAL); this.footerHeight = (fh != null) ? fh : FOOTER_HEIGHT_IN_PRINTER_DPI; + String pagePattern = configRegistry.getConfigAttribute( + PrintConfigAttributes.FOOTER_PAGE_PATTERN, + DisplayMode.NORMAL); + this.footerPagePattern = (pagePattern != null) ? pagePattern : Messages.getString("Printer.page"); //$NON-NLS-1$ + // configure the footer date String configuredFormat = configRegistry.getConfigAttribute( PrintConfigAttributes.DATE_FORMAT, @@ -670,6 +677,7 @@ public class LayerPrinter { try { int currentPage = 1; + int totalPageCount = getPageCount(this.printer); Integer[] repeatHeaderGridLineWidth = null; @@ -857,7 +865,7 @@ public class LayerPrinter { configureScalingTransform(footerTransform, dpiFactor, printerClientArea, footerBounds); gc.setTransform(footerTransform); - printFooter(gc, currentPage, footerBounds, target.configRegistry); + printFooter(gc, currentPage, totalPageCount, footerBounds, target.configRegistry); printerTransform.dispose(); repeatTransform.dispose(); @@ -1009,7 +1017,7 @@ public class LayerPrinter { * The {@link IConfigRegistry} needed to retrieve the footer * style. */ - private void printFooter(GC gc, int totalPageCount, Rectangle printBounds, IConfigRegistry configRegistry) { + private void printFooter(GC gc, int currentPage, int totalPageCount, Rectangle printBounds, IConfigRegistry configRegistry) { Color oldForeground = gc.getForeground(); Color oldBackground = gc.getBackground(); Font oldFont = gc.getFont(); @@ -1037,7 +1045,7 @@ public class LayerPrinter { printBounds.y + printBounds.height + 10); gc.drawText( - Messages.getString("Printer.page") + " " + totalPageCount, //$NON-NLS-1$ //$NON-NLS-2$ + MessageFormat.format(LayerPrinter.this.footerPagePattern, currentPage, totalPageCount), printBounds.x, printBounds.y + printBounds.height + 15); diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/config/PrintConfigAttributes.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/config/PrintConfigAttributes.java index 6acee48c..2903334a 100644 --- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/config/PrintConfigAttributes.java +++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/print/config/PrintConfigAttributes.java @@ -59,4 +59,12 @@ public interface PrintConfigAttributes { * font style attributes are supported. */ ConfigAttribute<IStyle> FOOTER_STYLE = new ConfigAttribute<IStyle>(); + + /** + * Configuration attribute to configure the pattern for rendering the page + * information in the footer. The pattern can include placeholders for the + * current page and the total page count, where {0} = current page and {1} = + * total page count, e.g. <i>Page {0}/{1}</i> to show <i>Page 1/6</i> + */ + ConfigAttribute<String> FOOTER_PAGE_PATTERN = new ConfigAttribute<String>(); } |