116 lines
4.2 KiB
Text
116 lines
4.2 KiB
Text
Retep Tools Implementation
|
|
--------------------------
|
|
|
|
|
|
The tools are designed to be put into a single jar file, but each one is
|
|
executable either individually or part of one single application.
|
|
|
|
To run the big application, you can either:
|
|
|
|
java -jar retepTools.jar
|
|
|
|
or with the retepTools.jar in the classpath run:
|
|
|
|
java uk.org.retep.tools.Main
|
|
|
|
Windows users: For you you can also double click the retepTools.jar as windows
|
|
will automatically run javac for you.
|
|
|
|
To run the individual tools, you must have the .jar file in your classpath and
|
|
then run the relevant Main class.
|
|
|
|
Tool Type Class
|
|
------------------------------------------------------------------------------
|
|
pg_hba.conf Editor/repairer Editor uk.org.retep.util.hba.Main
|
|
Properties Editor Editor uk.org.retep.util.proped.Main
|
|
|
|
|
|
Layout of the classes
|
|
---------------------
|
|
|
|
Simply, tools that work on property files (Java properties, resource files,
|
|
configuration settings - pg_hba.conf for example) go under uk.org.retep.util in
|
|
their own package. Other utility classes (like PropertyIO) go in to the
|
|
uk.org.retep.util.misc package except for certain ones where they are related.
|
|
|
|
ie: TableModels. In swing you have JTable which uses a TableModel to display
|
|
(and possibly update) some data. These go under uk.org.retep.util.models where
|
|
you will find PropertiesTableModel for example. This one allows a Properties
|
|
object to be displayed & updated.
|
|
|
|
Come core classes like Logger, ExceptionDialog etc go into the main
|
|
uk.org.retep.util package.
|
|
|
|
Directory/Package Contents
|
|
------------------------------------------------------------------------------
|
|
uk.org.retep Home of the tools.properties file
|
|
uk.org.retep.tools The main all-in-one application
|
|
uk.org.retep.dtu The Data Transform Unit
|
|
uk.org.retep.util Core utility classes
|
|
uk.org.retep.util.hba pg_hba.conf editor/repairer
|
|
uk.org.retep.util.misc Misc utility classes
|
|
uk.org.retep.util.models Swing table models
|
|
uk.org.retep.util.proped Property Editor
|
|
uk.org.retep.util.xml.core Basic XML Factory
|
|
uk.org.retep.util.xml.jdbc JDBC/XML interface
|
|
uk.org.retep.util.xml.parser Simple SAX parser
|
|
|
|
Structure of a tool
|
|
-------------------
|
|
|
|
Each tool has at least 2 base classes, and an entry in the tools.properties
|
|
file. For this example, I'll show you the Properties Editor:
|
|
|
|
Base package uk.org.retep.util.proped
|
|
Main tool class uk.org.retep.util.proped.PropertyEditor
|
|
Standalone class uk.org.retep.util.proped.Main
|
|
|
|
The main tool class is the entry point used by the main application. Because
|
|
they are used in a GUI, this class must extend javax.swing.JComponent and
|
|
implement the uk.org.retep.tools.Tool interface. (NB: You will find I always
|
|
use JPanel, but JComponent is used here so that any swing class can be used
|
|
you are not limited to JPanel.)
|
|
|
|
The standalone class is a basic static class that implements the main method.
|
|
It should extend the uk.org.retep.misc.StandaloneApp class and be written along
|
|
the lines of the following example:
|
|
|
|
import uk.org.retep.util.StandaloneApp;
|
|
import javax.swing.JComponent;
|
|
|
|
public class Main extends StandaloneApp
|
|
{
|
|
public Main(String[] args)
|
|
throws Exception
|
|
{
|
|
super(args);
|
|
}
|
|
|
|
public JComponent init()
|
|
throws Exception
|
|
{
|
|
// Your initialisation here. In this case the PropertyEditor
|
|
PropertyEditor panel = new PropertyEditor();
|
|
|
|
// do stuff here, ie load a file if supplied
|
|
|
|
// return the tool
|
|
return panel;
|
|
}
|
|
|
|
public static void main(String[] args)
|
|
throws Exception
|
|
{
|
|
Main main = new Main(args);
|
|
main.pack();
|
|
main.setVisible(true);
|
|
}
|
|
}
|
|
|
|
you will find a template in the uk.org.retep.util.Main class. Simply copy this
|
|
classes source, as it gives you the basic stub. Just add your own implementation
|
|
if init() like the one above. Look at the full Main class for the
|
|
PropertiesEditor to see how to get at the command line args.
|
|
|
|
By convention, the standalone class is named Main.
|
|
|