com.lowagie.toolbox.Toolbox Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of itext Show documentation
Show all versions of itext Show documentation
iText, a free Java-PDF library
/*
* $Id: Toolbox.java 3271 2008-04-18 20:39:42Z xlv $
* Copyright (c) 2005-2007 Bruno Lowagie, Carsten Hammer
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* This class was originally published under the MPL by Bruno Lowagie
* and Carsten Hammer.
* It was a part of iText, a Java-PDF library. You can now use it under
* the MIT License; for backward compatibility you can also use it under
* the MPL version 1.1: http://www.mozilla.org/MPL/
* A copy of the MPL license is bundled with the source code FYI.
*/
package com.lowagie.toolbox;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import javax.swing.text.*;
import com.lowagie.tools.Executable;
/**
* This is a utility that allows you to use a number of iText tools.
* @since 2.1.1 (imported from itexttoolbox project)
*/
public class Toolbox extends JFrame implements ActionListener {
/** A serial version ID */
private static final long serialVersionUID = -3766198389452935073L;
/** The DesktopPane of the toolbox. */
private JDesktopPane desktop;
/** The ConsolePane of the toolbox. */
private JScrollPane console;
/** The list of tools in the toolbox. */
private Properties toolmap = new Properties();
/** x-coordinate of the location of a new internal frame. */
private int locationX = 0;
/** y-coordinate of the location of a new internal frame. */
private int locationY = 0;
/**
* toolarray
*/
private ArrayList toolarray = new ArrayList();
private Vector menulist=new Vector();
private Vector menuitemlist=new Vector();
/**
* Constructs the Toolbox object.
*/
public Toolbox() {
super();
setSize(600, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(true);
setTitle("iText Toolbox");
desktop = new JDesktopPane();
setJMenuBar(getMenubar());
setIconImage(new ImageIcon(com.lowagie.toolbox.Toolbox.class.getResource(
"1t3xt.gif")).getImage());
Console c;
try {
c = new Console();
console = new JScrollPane(c.textArea);
} catch (IOException e) {
e.printStackTrace();
}
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
desktop,
console);
splitPane.setContinuousLayout(true);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerLocation(300);
setContentPane(splitPane);
centerFrame(this);
setVisible(true);
}
/**
* Starts the Toolbox utility.
*
* use as first argument the name of the plugin,
* then the arguments of the plugin used.
*
* e.g.
*
* java -jar itext.jar Burst inputfile.pdf
*
* That way you can call plugins by name directly.
*
* @param args
* no arguments needed
*/
public static void main(String[] args) {
try {
Class.forName("com.lowagie.text.Document");
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null,
"You need the iText.jar in your CLASSPATH!",
e.getClass().getName(),
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
Toolbox toolbox = new Toolbox();
if (args.length > 0) {
try {
AbstractTool tool = toolbox.createFrame(args[0]);
String[] nargs = new String[args.length - 1];
System.arraycopy(args, 1, nargs, 0, args.length - 1);
tool.setMainArguments(nargs);
tool.execute();
} catch (PropertyVetoException ex) {
} catch (ClassNotFoundException ex) {
} catch (IllegalAccessException ex) {
} catch (InstantiationException ex) {
}
}
}
/**
* Gets the menubar.
*
* @return a menubar
*/
private JMenuBar getMenubar() {
Properties p = new Properties();
try {
p.load(Toolbox.class.getClassLoader().getResourceAsStream(
"com/lowagie/toolbox/tools.txt"));
String usertoolstxt = System.getProperty("user.home") +
System.getProperty("file.separator") +
"tools.txt";
File uttf = new File(usertoolstxt);
if (uttf.isFile() && uttf.exists()) {
p.load(new FileInputStream(usertoolstxt));
}
} catch (IOException e) {
e.printStackTrace();
}
toolmap = new Properties();
JMenuBar menubar = new JMenuBar();
JMenu file = new JMenu(ToolMenuItems.FILE);
file.setMnemonic(KeyEvent.VK_T);
JMenuItem close = new JMenuItem(ToolMenuItems.CLOSE);
close.setMnemonic(KeyEvent.VK_C);
close.addActionListener(this);
file.add(close);
JMenu view = new JMenu(ToolMenuItems.VIEW);
JMenuItem reset = new JMenuItem(ToolMenuItems.RESET);
reset.addActionListener(this);
view.add(reset);
// JMenuItem filelist = new JMenuItem(FILELIST);
// filelist.addActionListener(this);
// view.add(filelist);
JMenu tools = new JMenu(ToolMenuItems.TOOLS);
// Here one day should be the wizard to help you create a new beanshell script
// JMenuItem create = new JMenuItem(CREATE);
// create.addActionListener(this);
// tools.add(create);
buildPluginMenuItems(new TreeMap
© 2015 - 2024 Weber Informatics LLC | Privacy Policy