mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			117 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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.
 | 
						|
 |