All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jpedal.jbig2.examples.viewer.NavigationToolbar Maven / Gradle / Ivy

/**
 * ===========================================
 * Java Pdf Extraction Decoding Access Library
 * ===========================================
 * 

* Project Info: http://www.jpedal.org * (C) Copyright 1997-2008, IDRsolutions and Contributors. * Main Developer: Simon Barnett *

* This file is part of JPedal *

* Copyright (c) 2008, IDRsolutions * All rights reserved. *

* Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the IDRsolutions nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. *

* THIS SOFTWARE IS PROVIDED BY IDRsolutions ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL IDRsolutions BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *

* Other JBIG2 image decoding implementations include * jbig2dec (http://jbig2dec.sourceforge.net/) * xpdf (http://www.foolabs.com/xpdf/) *

* The final draft JBIG2 specification can be found at http://www.jpeg.org/public/fcd14492.pdf *

* All three of the above resources were used in the writing of this software, with methodologies, * processes and inspiration taken from all three. *

* --------------- * NavigationToolbar.java * --------------- */ package org.jpedal.jbig2.examples.viewer; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JToolBar; import org.jpedal.jbig2.JBIG2Decoder; public class NavigationToolbar extends JToolBar { protected static final int FIRSTPAGE = 0; protected static final int FBACKPAGE = 1; protected static final int BACKPAGE = 2; protected static final int FORWARDPAGE = 3; protected static final int FFORWARDPAGE = 4; protected static final int LASTPAGE = 5; protected static final int SETPAGE = 6; protected JTextField currentPageBox = new JTextField(4); private JLabel totalNoOfPages = new JLabel(); private JBIG2Viewer viewer; public NavigationToolbar(JBIG2Viewer viewer) { this.viewer = viewer; totalNoOfPages.setText("of 1"); currentPageBox.setText("1"); add(Box.createHorizontalGlue()); addButton("Rewind To Start", "/org/jpedal/jbig2/examples/viewer/res/start.gif", FIRSTPAGE); addButton("Back 10 Pages", "/org/jpedal/jbig2/examples/viewer/res/fback.gif", FBACKPAGE); addButton("Back", "/org/jpedal/jbig2/examples/viewer/res/back.gif", BACKPAGE); add(new JLabel("Page")); currentPageBox.setMaximumSize(new Dimension(5, 50)); currentPageBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { executeCommand(SETPAGE); } }); add(currentPageBox); add(totalNoOfPages); addButton("Forward", "/org/jpedal/jbig2/examples/viewer/res/forward.gif", FORWARDPAGE); addButton("Forward 10 Pages", "/org/jpedal/jbig2/examples/viewer/res/fforward.gif", FFORWARDPAGE); addButton("Fast Forward To End", "/org/jpedal/jbig2/examples/viewer/res/end.gif", LASTPAGE); add(Box.createHorizontalGlue()); // close(); } public void setTotalNoOfPages(int noOfPages) { totalNoOfPages.setText("of " + noOfPages); } public void setCurrentPage(int currentPage) { currentPageBox.setText(String.valueOf(currentPage)); } private void addButton(String tooltip, String url, final int type) { JButton button = new JButton(); button.setIcon(new ImageIcon(getClass().getResource(url))); button.setToolTipText(tooltip); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { executeCommand(type); } }); add(button); } public void executeCommand(int type) { JBIG2Decoder decoder = viewer.getDecoder(); switch (type) { case FIRSTPAGE: viewer.displayPage(1); break; case FBACKPAGE: viewer.displayPage(viewer.getCurrentPage() - 10); break; case BACKPAGE: viewer.displayPage(viewer.getCurrentPage() - 1); break; case FORWARDPAGE: viewer.displayPage(viewer.getCurrentPage() + 1); break; case FFORWARDPAGE: viewer.displayPage(viewer.getCurrentPage() + 10); break; case LASTPAGE: viewer.displayPage(decoder.getNumberOfPages()); break; case SETPAGE: int page = -1; try { page = Integer.parseInt(currentPageBox.getText()); } catch (NumberFormatException e) { e.printStackTrace(); } if (page >= 1 && page <= decoder.getNumberOfPages()) { viewer.displayPage(page); } else { currentPageBox.setText(String.valueOf(viewer.getCurrentPage())); } break; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy