You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2016/04/04 20:57:15 UTC
svn commit: r1737731 - in
/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger:
PDFDebugger.java pagepane/PagePane.java streampane/StreamImageView.java
ui/ZoomMenu.java
Author: tilman
Date: Mon Apr 4 18:57:15 2016
New Revision: 1737731
URL: http://svn.apache.org/viewvc?rev=1737731&view=rev
Log:
PDFBOX-2941: keep zoom scales in a file, by Khyrul Bashar
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamImageView.java
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ZoomMenu.java
Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java?rev=1737731&r1=1737730&r2=1737731&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java (original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java Mon Apr 4 18:57:15 2016
@@ -1212,6 +1212,7 @@ public class PDFDebugger extends JFrame
{
File file = new File(currentFilePath);
DocumentEntry documentEntry = new DocumentEntry(document, file.getName());
+ ZoomMenu.getInstance().resetZoom();
tree.setModel(new PDFTreeModel(documentEntry));
// Root/Pages/Kids/[0] is not always the first page, so use the first row instead:
tree.setSelectionPath(tree.getPathForRow(1));
Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java?rev=1737731&r1=1737730&r2=1737731&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java (original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/pagepane/PagePane.java Mon Apr 4 18:57:15 2016
@@ -81,9 +81,11 @@ public class PagePane implements ActionL
panel.add(label);
panel.addAncestorListener(this);
+ zoomMenu = ZoomMenu.getInstance();
+ zoomMenu.changeZoomSelection(zoomMenu.getPageZoomScale());
// render in a background thread: rendering is read-only, so this should be ok, despite
// the fact that PDDocument is not officially thread safe
- new RenderWorker(1, 0).execute();
+ new RenderWorker(zoomMenu.getPageZoomScale(), 0).execute();
}
/**
@@ -103,15 +105,14 @@ public class PagePane implements ActionL
if (ZoomMenu.isZoomMenu(actionCommand) || RotationMenu.isRotationMenu(actionCommand))
{
new RenderWorker(ZoomMenu.getZoomScale(), RotationMenu.getRotationDegrees()).execute();
+ zoomMenu.setPageZoomScale(ZoomMenu.getZoomScale());
}
}
@Override
public void ancestorAdded(AncestorEvent ancestorEvent)
{
- zoomMenu = ZoomMenu.getInstance();
zoomMenu.addMenuListeners(this);
- zoomMenu.setZoomSelection(ZoomMenu.ZOOM_100_PERCENT);
zoomMenu.setEnableMenu(true);
rotationMenu = RotationMenu.getInstance();
Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamImageView.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamImageView.java?rev=1737731&r1=1737730&r2=1737731&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamImageView.java (original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamImageView.java Mon Apr 4 18:57:15 2016
@@ -66,10 +66,13 @@ class StreamImageView implements ActionL
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
+ zoomMenu = ZoomMenu.getInstance();
+ zoomMenu.changeZoomSelection(zoomMenu.getImageZoomScale());
+
label = new JLabel();
label.setBorder(new LineBorder(Color.BLACK));
label.setAlignmentX(Component.CENTER_ALIGNMENT);
- label.setIcon(new ImageIcon(image));
+ addImage(zoomImage(image, zoomMenu.getImageZoomScale(), RotationMenu.getRotationDegrees()));
panel.add(Box.createVerticalGlue());
panel.add(label);
@@ -105,6 +108,7 @@ class StreamImageView implements ActionL
if (ZoomMenu.isZoomMenu(actionCommand) || RotationMenu.isRotationMenu(actionCommand))
{
addImage(zoomImage(image, ZoomMenu.getZoomScale(), RotationMenu.getRotationDegrees()));
+ zoomMenu.setImageZoomScale(ZoomMenu.getZoomScale());
}
}
@@ -117,9 +121,7 @@ class StreamImageView implements ActionL
@Override
public void ancestorAdded(AncestorEvent ancestorEvent)
{
- zoomMenu = ZoomMenu.getInstance();
zoomMenu.addMenuListeners(this);
- zoomMenu.setZoomSelection(ZoomMenu.ZOOM_100_PERCENT);
zoomMenu.setEnableMenu(true);
rotationMenu = RotationMenu.getInstance();
Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ZoomMenu.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ZoomMenu.java?rev=1737731&r1=1737730&r2=1737731&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ZoomMenu.java (original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/ZoomMenu.java Mon Apr 4 18:57:15 2016
@@ -42,7 +42,8 @@ public final class ZoomMenu extends Menu
}
}
- public static final String ZOOM_100_PERCENT = "100%";
+ private float pageZoomScale = 1;
+ private float imageZoomScale = 1;
private static final int[] ZOOMS = new int[] { 25, 50, 100, 200, 400 };
private static ZoomMenu instance;
@@ -81,11 +82,12 @@ public final class ZoomMenu extends Menu
/**
* Set the zoom selection.
*
- * @param selection zoom menu string, e.g. "100%".
+ * @param zoomValue, e.g. 1, 0.25, 4.
* @throws IllegalArgumentException if the parameter doesn't belong to a zoom menu item.
*/
- public void setZoomSelection(String selection)
+ public void changeZoomSelection(float zoomValue)
{
+ String selection = (int)(zoomValue*100) +"%";
for (Component comp : menu.getMenuComponents())
{
JRadioButtonMenuItem menuItem = (JRadioButtonMenuItem) comp;
@@ -132,4 +134,35 @@ public final class ZoomMenu extends Menu
}
throw new IllegalStateException("no zoom menu item is selected");
}
+
+ public float getPageZoomScale()
+ {
+ return pageZoomScale;
+ }
+
+ public void setPageZoomScale(float pageZoomValue)
+ {
+ pageZoomScale = pageZoomValue;
+ }
+
+ public float getImageZoomScale()
+ {
+ return imageZoomScale;
+ }
+
+ public void setImageZoomScale(float imageZoomValue)
+ {
+ imageZoomScale = imageZoomValue;
+ }
+
+ /**
+ * When a new file is loaded zoom values should be reset.
+ *
+ */
+ public void resetZoom()
+ {
+ setPageZoomScale(1);
+ setImageZoomScale(1);
+ changeZoomSelection(1);
+ }
}