svn commit: r1693855 - in /pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools: PDFDebugger.java pdfdebugger/streampane/StreamTextView.java pdfdebugger/ui/textsearcher/SearchPanel.java pdfdebugge
Author: jahewson Date: Mon Aug 3 04:26:52 2015 New Revision: 1693855 URL: http://svn.apache.org/r1693855 Log: PDFBOX-2530: Clean up Find menu UI Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamTextView.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/textsearcher/SearchPanel.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/textsearcher/Searcher.java Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java?rev=1693855r1=1693854r2=1693855view=diff == --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java Mon Aug 3 04:26:52 2015 @@ -25,6 +25,7 @@ import java.awt.datatransfer.Transferabl import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; import java.io.ByteArrayOutputStream; @@ -41,6 +42,7 @@ import java.util.Set; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JComponent; +import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; @@ -90,33 +92,69 @@ import org.apache.pdfbox.tools.util.File import org.apache.pdfbox.tools.util.RecentFiles; /** - * + * PDF Debugger. + * * @author wurtz * @author Ben Litchfield */ -public class PDFDebugger extends javax.swing.JFrame +public class PDFDebugger extends JFrame { -private TreeStatusPane statusPane; -private RecentFiles recentFiles; -private boolean isPageMode; - -private PDDocument document; -private String currentFilePath; - private static final SetCOSName SPECIALCOLORSPACES = -new HashSet(Arrays.asList(COSName.INDEXED, COSName.SEPARATION, COSName.DEVICEN)); +new HashSetCOSName(Arrays.asList(COSName.INDEXED, COSName.SEPARATION, COSName.DEVICEN)); private static final SetCOSName OTHERCOLORSPACES = -new HashSet(Arrays.asList(COSName.ICCBASED, COSName.PATTERN, COSName.CALGRAY, COSName.CALRGB, COSName.LAB)); +new HashSetCOSName(Arrays.asList(COSName.ICCBASED, COSName.PATTERN, COSName.CALGRAY, + COSName.CALRGB, COSName.LAB)); private static final String PASSWORD = -password; private static final int SHORCUT_KEY_MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); +private TreeStatusPane statusPane; +private RecentFiles recentFiles; +private boolean isPageMode; + +private PDDocument document; +private String currentFilePath; + private static final String OS_NAME = System.getProperty(os.name).toLowerCase(); private static final boolean IS_MAC_OS = OS_NAME.startsWith(mac os x); +private JScrollPane jScrollPane1; +private JScrollPane jScrollPane2; +private javax.swing.JSplitPane jSplitPane1; +private javax.swing.JTextPane jTextPane1; +private Tree tree; +private final JPanel documentPanel = new JPanel(); +private javax.swing.JMenuBar menuBar; + +// file menu +private JMenu fileMenu; +private JMenuItem openMenuItem; +private JMenuItem openUrlMenuItem; +private JMenuItem saveAsMenuItem; +private JMenuItem saveMenuItem; +private JMenu recentFilesMenu; +private JMenuItem exitMenuItem; + +// edit menu +private JMenu editMenu; +private JMenuItem copyMenuItem; +private JMenuItem pasteMenuItem; +private JMenuItem cutMenuItem; +private JMenuItem deleteMenuItem; + +// edit find meu +private JMenu findMenu; +private JMenuItem findMenuItem; +private JMenuItem findNextMenuItem; +private JMenuItem findPreviousMenuItem; + +// view menu +private JMenu viewMenu; +private JMenuItem viewModeItem; + /** * Constructor. */ @@ -139,26 +177,9 @@ public class PDFDebugger extends javax.s jScrollPane2 = new JScrollPane(); jTextPane1 = new javax.swing.JTextPane(); menuBar = new javax.swing.JMenuBar(); -fileMenu = new JMenu(); -openMenuItem = new JMenuItem(); -openUrlMenuItem = new JMenuItem(); -saveMenuItem = new JMenuItem(); -saveAsMenuItem = new JMenuItem(); -recentFilesMenu = new JMenu(); -exitMenuItem = new JMenuItem(); -editMenu = new JMenu(); -cutMenuItem = new JMenuItem(); -copyMenuItem = new JMenuItem(); -pasteMenuItem = new JMenuItem(); -
svn commit: r1693809 - /pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java
Author: tilman Date: Sun Aug 2 12:09:18 2015 New Revision: 1693809 URL: http://svn.apache.org/r1693809 Log: PDFBOX-2530: add Open URL menu item Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java?rev=1693809r1=1693808r2=1693809view=diff == --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PDFDebugger.java Sun Aug 2 12:09:18 2015 @@ -33,6 +33,7 @@ import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; +import java.net.URL; import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -140,6 +141,7 @@ public class PDFDebugger extends javax.s menuBar = new javax.swing.JMenuBar(); fileMenu = new JMenu(); openMenuItem = new JMenuItem(); +openUrlMenuItem = new JMenuItem(); saveMenuItem = new JMenuItem(); saveAsMenuItem = new JMenuItem(); recentFilesMenu = new JMenu(); @@ -220,6 +222,26 @@ public class PDFDebugger extends javax.s }); fileMenu.add(openMenuItem); + +openUrlMenuItem.setText(Open URL...); +openUrlMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, SHORCUT_KEY_MASK)); +openUrlMenuItem.addActionListener(new ActionListener() +{ +@Override +public void actionPerformed(ActionEvent evt) +{ +String urlString = JOptionPane.showInputDialog(Enter an URL); +try +{ +readPDFurl(urlString, ); +} +catch (IOException e) +{ +throw new RuntimeException(e); +} +} +}); +fileMenu.add(openUrlMenuItem); saveMenuItem.setText(Save); @@ -817,7 +839,10 @@ public class PDFDebugger extends javax.s try { document.close(); -recentFiles.addFile(currentFilePath); +if (!currentFilePath.startsWith(http)) +{ +recentFiles.addFile(currentFilePath); +} recentFiles.close(); } catch( IOException e ) @@ -838,7 +863,10 @@ public class PDFDebugger extends javax.s try { document.close(); -recentFiles.addFile(currentFilePath); +if (!currentFilePath.startsWith(http)) +{ +recentFiles.addFile(currentFilePath); +} recentFiles.close(); } catch( IOException e ) @@ -925,7 +953,10 @@ public class PDFDebugger extends javax.s if( document != null ) { document.close(); -recentFiles.addFile(currentFilePath); +if (!currentFilePath.startsWith(http)) +{ +recentFiles.addFile(currentFilePath); +} } currentFilePath = file.getPath(); recentFiles.removeFile(file.getPath()); @@ -945,6 +976,33 @@ public class PDFDebugger extends javax.s addRecentFileItems(); } +private void readPDFurl(String urlString, String password) throws IOException +{ +if (document != null) +{ +document.close(); +if (!currentFilePath.startsWith(http)) +{ +recentFiles.addFile(currentFilePath); +} +} +currentFilePath = urlString; +URL url = new URL(urlString); +document = PDDocument.load(url.openStream(), password); + +initTree(); + +if (IS_MAC_OS) +{ +setTitle(urlString); +} +else +{ +setTitle(PDF Debugger - + urlString); +} +addRecentFileItems(); +} + private void initTree() { TreeStatus treeStatus = new TreeStatus(document.getDocument().getTrailer()); @@ -1046,6 +1104,7 @@ public class PDFDebugger extends javax.s private Tree tree; private javax.swing.JMenuBar menuBar; private JMenuItem openMenuItem; +private JMenuItem openUrlMenuItem; private JMenuItem pasteMenuItem; private JMenuItem saveAsMenuItem; private JMenuItem saveMenuItem;
svn commit: r1693804 - in /pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui: RotationMenu.java ZoomMenu.java
Author: tilman Date: Sun Aug 2 10:59:33 2015 New Revision: 1693804 URL: http://svn.apache.org/r1693804 Log: PDFBOX-2530: make class final Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/RotationMenu.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/ZoomMenu.java Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/RotationMenu.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/RotationMenu.java?rev=1693804r1=1693803r2=1693804view=diff == --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/RotationMenu.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/RotationMenu.java Sun Aug 2 10:59:33 2015 @@ -29,7 +29,7 @@ import javax.swing.JRadioButtonMenuItem; * To act upon the menu item selection user of the class must add ActionListener which will check for * the action command and act accordingly. */ -public class RotationMenu extends MenuBase +public final class RotationMenu extends MenuBase { public static final String ROTATE_0_DEGREES = 0°; public static final String ROTATE_90_DEGREES = 90°; Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/ZoomMenu.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/ZoomMenu.java?rev=1693804r1=1693803r2=1693804view=diff == --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/ZoomMenu.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/ui/ZoomMenu.java Sun Aug 2 10:59:33 2015 @@ -28,7 +28,7 @@ import javax.swing.JRadioButtonMenuItem; * To act upon the menu item selection user of the class must add ActionListener which will check for * the action command and act accordingly. */ -public class ZoomMenu extends MenuBase +public final class ZoomMenu extends MenuBase { public static final String ZOOM_50_PERCENT = 50%; public static final String ZOOM_100_PERCENT = 100%;
svn commit: r1693821 - in /pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane: StreamPane.java StreamTextView.java tooltip/FontToolTip.java
Author: jahewson Date: Sun Aug 2 18:39:13 2015 New Revision: 1693821 URL: http://svn.apache.org/r1693821 Log: PDFBOX-2530: Full syntax highlighting and nesting Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamTextView.java pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/tooltip/FontToolTip.java Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java?rev=1693821r1=1693820r2=1693821view=diff == --- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java (original) +++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java Sun Aug 2 18:39:13 2015 @@ -17,6 +17,7 @@ package org.apache.pdfbox.tools.pdfdebugger.streampane; +import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.ByteArrayOutputStream; @@ -29,19 +30,25 @@ import javax.swing.JPanel; import javax.swing.SwingWorker; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultStyledDocument; +import javax.swing.text.Style; +import javax.swing.text.StyleConstants; +import javax.swing.text.StyleContext; import javax.swing.text.StyledDocument; import org.apache.pdfbox.contentstream.operator.Operator; import org.apache.pdfbox.cos.COSArray; import org.apache.pdfbox.cos.COSBase; import org.apache.pdfbox.cos.COSBoolean; import org.apache.pdfbox.cos.COSDictionary; +import org.apache.pdfbox.cos.COSFloat; import org.apache.pdfbox.cos.COSName; +import org.apache.pdfbox.cos.COSNumber; import org.apache.pdfbox.cos.COSStream; import org.apache.pdfbox.cos.COSString; import org.apache.pdfbox.io.IOUtils; import org.apache.pdfbox.pdfparser.PDFStreamParser; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.tools.pdfdebugger.streampane.tooltip.ToolTipController; +import org.apache.pdfbox.util.Charsets; /** * @author Khyrul Bashar @@ -50,6 +57,32 @@ import org.apache.pdfbox.tools.pdfdebugg */ public class StreamPane implements ActionListener { +public static final String BEGIN_TEXT_OBJECT = BT; +public static final String END_TEXT_OBJECT = ET; +public static final String SAVE_GRAPHICS_STATE = q; +public static final String RESTORE_GRAPHICS_STATE = Q; +public static final String INLINE_IMAGE_BEGIN = BI; +public static final String IMAGE_DATA = ID; +public static final String INLINE_IMAGE_END = EI; + +private static final StyleContext CONTEXT = StyleContext.getDefaultStyleContext(); +private static final Style OPERATOR_STYLE = CONTEXT.addStyle(operator, null); +private static final Style NUMBER_STYLE = CONTEXT.addStyle(number, null); +private static final Style STRING_STYLE = CONTEXT.addStyle(string, null); +private static final Style ESCAPE_STYLE = CONTEXT.addStyle(escape, null); +private static final Style NAME_STYLE = CONTEXT.addStyle(name, null); +private static final Style INLINE_IMAGE_STYLE = CONTEXT.addStyle(inline_image, null); + +static +{ +StyleConstants.setForeground(OPERATOR_STYLE, new Color(25, 55, 156)); +StyleConstants.setForeground(NUMBER_STYLE, new Color(51, 86, 18)); +StyleConstants.setForeground(STRING_STYLE, new Color(128, 35, 32)); +StyleConstants.setForeground(ESCAPE_STYLE, new Color(179, 49, 36)); +StyleConstants.setForeground(NAME_STYLE, new Color(140, 38, 145)); +StyleConstants.setForeground(INLINE_IMAGE_STYLE, new Color(116, 113, 39)); +} + private final StreamPaneView view; private final Stream stream; private ToolTipController tTController; @@ -59,12 +92,13 @@ public class StreamPane implements Actio /** * Constructor. * - * @param cosStream COSStream instance. + * @param cosStream COSStream instance. * @param isContentStream boolean instance. This says if a stream is content stream or not. - * @param isThumb boolean instance. This says if a stream is an thumbnail image or not. - * @param resourcesDicCOSDictionary instance that holds the resource dictionary for the stream. + * @param isThumb This says if a stream is an thumbnail image or not. + * @param resourcesDic COSDictionary instance that holds the resource dictionary for the stream. */ -public StreamPane(COSStream cosStream, boolean isContentStream, boolean isThumb, COSDictionary resourcesDic) +public StreamPane(COSStream cosStream, boolean isContentStream, boolean isThumb, + COSDictionary
svn commit: r1693823 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
Author: tilman Date: Sun Aug 2 20:09:01 2015 New Revision: 1693823 URL: http://svn.apache.org/r1693823 Log: PDFBOX-2530: javadoc Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java?rev=1693823r1=1693822r2=1693823view=diff == --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Sun Aug 2 20:09:01 2015 @@ -41,6 +41,9 @@ public abstract class Filter { private static final Log LOG = LogFactory.getLog(Filter.class); +/** + * Constructor. + */ protected Filter() { }
svn propchange: r1693823 - svn:log
Author: tilman Revision: 1693823 Modified property: svn:log Modified: svn:log at Sun Aug 2 20:28:46 2015 -- --- svn:log (original) +++ svn:log Sun Aug 2 20:28:46 2015 @@ -1 +1 @@ -PDFBOX-2530: javadoc +PDFBOX-2852: javadoc