ccl
is reusable Java library distributed under the terms of the Mozilla
Public License.
It contains code I wrote and (re-)used for several projects (Jacob,
Timelog,
WebPresenter,
and others) and plan to use again for new projects
in the future.
Maybe this code is of some use for you too.
How the gui part of the library is used to create a base application, can
be seen from the source code examples Main.java and
ViewController.java.
It is a base application with a frame, menu, info box, and
help page. The code can be used to jump start your own
application.
A precompiled project setup of the example with start and build script etc. can be
found in this guiexample.zip file.
Here is the meat: The ccl
API Documentation
Features
- Basic GUI/Swing application framework and utility classes
- Additional string methods
- Vector methods
- File methods
- Debug and assertion support
- Test framework
System Requirements
Java JDK 1.1 (plus Swing), 1.2, or 1.3.
(Optional, Xalan version 2 needed for xml helper class.)
Download
ccl Version 24.51
Installation
Just unzip ccl24.51.zip and add ccl24.51/lib/ccl.jar to your classpath. Now you can use the ccl package in your project. Withjava ccl.Main -check
you can trigger a ccl self test.
There is also a script in the bin directory
which you can use to invoke the self test.
./bin/ccl -check
This should work most of the time. Eventually you need to
specify in the shell script or batch file
some environment variables explicitly if the script could not
figure out everything itself.
If you use the help feature from ccl.swing.MainJFrame, you
have to add JavaHelp to your classpath. For convenience reasons JavaHelp is distributed together with ccl (just add ccl24.51/lib/jhbasic.jar to your classpath).
Release History
Version 24.51
Version 24.51 has been released on December 30, 2001Minor bug fixes.
Fixed Bugs
- Added new tests for ccl.servlet.XMLImportHandler class using
a PostgreSQL database. If the user has no JDBC driver
installed for this database, the tests will be skipped.
- ccl.util.Init class did not accept project file names without
a suffix.
Version 23.50
Version 23.50 has been released on November 27, 2001Minor bug fix with comman line option handling.
Fixed Bugs
- Text after commas in command line option descriptions got
truncated.
Version 22.48
Version 22.48 has been released on October 31, 2001Minor feature enhancements.
What's New
- Util.untabify() method replaces tab characters with the
necessary number of spaces.
- New convenience method ccl.xml.XMLUtil.getValueOf(file,xpath).
- New method ccl.util.FileUtil.normalizeFileName(filename) which
returns an absolute file name but takes the system property
"user.dir" into account (instead of the native system's
current directory (which can't be changed that easily in
Java).
- New class ccl.util.ClassPathUtil which contains methods
moved from other classes dealing with finding files or
directories from the classpath or inside jar archives.
Version 17.42
Version 17.42 has been released on June 25, 2001Minor enhancements.
What's New
- More convenience methods for converting xml via xslt in
ccl.xml.XMLUtil.
- New native method setLocation( Frame f, int x, int y ) for
Linux as my last hope to workaround a nasty Java bug.
Version 16.41
Version 16.41 has been released on June 10, 2001Minor new features.
What's New
- New class ccl.servlet.CSV to generate spread sheet data
in csv format.
- New method in ccl.servlet.HTML to convert a null or empty
string into a space in HTML ( ).
- Added ccl.util.Util.getFirstDayOfMonth().
Bugs Fixed
- ReflectionClassLoader failed loading classes from package
javax in version Java 1.1.
- A bug fix in FileUtil.readStream(). End of stream was not
always successfully recognized.
Version 15.37
Version 15.37 has been released on April 22, 2001New XMLUtil class.
What's New
- ccl.xml.XMLUtil is an utility class which makes
transforming xml via xslt stylesheets just as convenient
as invoking a shell script. You provide either files or
strings and get the transformed xml file back as a string
or file. No need to know the classes used from Xalan in
detail.
Bugs Fixed
- None.
Version 14.36
Version 14.36 has been released on April 19, 2001Improved HTML formatting class.
What's New
- Class ccl.servlet.HTML has better formatting of data
tables.
- Class ccl.util.DBUtil supports now InstantDB as well as
Sybase.
Bugs Fixed
- None.
Version 13.33
Version 13.33 has been released on March 11, 2001New servlet support classes and a TextViewer class.
What's New
- New class ccl.servlet.HTML.
- New class ccl.servlet.XMLExporter.
- New class ccl.servlet.XMLImporter and
ccl.servlet.XMLImportHandler.
- New class ccl.util.DBUtil.
- New class ccl.swing.TextViewer.
Bugs Fixed
- None.
Version 12.32
Version 12.32 has been released on February 28, 2001Minor new features.
What's New
- Util has new methods to get formatted memory information
(percentage of used memory etc.).
- FileUtil has new methods 'getBaseName' and 'getDirName'.
Bugs Fixed
- InputCancelDialog had a severe (off by one) bug in its
history handling.
Version 11.31
Version 11.31 has been released on February 11, 2001Minor new features.
What's New
- Text field input dialog (ccl.swing.InputCancelDialog)
has optional drop down list.
- FTPUtil is a wrapper of the sun.net.ftp.FtpClient class.
This class provides convenience methods for ftp put and
get in binary mode.
Bugs Fixed
- FileUtil.getFiles(String,String) is now also able to
process empty ("") file suffixes.
Version 10.29
Version 10.29 has been released on December 2, 2000A minor bug fix.
What's New
- Method 'getTimeWithMillis' in ccl.Util.
- Shell script and batch file included to start self test.
- Makefile (with hardcoded paths) for compiling native code
for Linux is included.
Bugs Fixed
- For applications installed under a classes directory
the application path was not identified correctly.
Version 9.26
Version 9.26 has been released on October 27, 2000Init class does use awt only if necessary.
What's New
- Init class does not use awt if not necessary. The awt is
only needed for color objects anyway. In batch mode the
background colors is hardly of relevance. Now the class
can be used on machines which have no X installed.
Bugs Fixed
- None.
Version 8.24
Version 8.24 has been released on September 28, 2000Minor additions.
What's New
- ccl.util.OutputErrorStreamManager captures stdio and
stderr streams.
Bugs Fixed
- Miscellaneous.
Version 7.22
Version 7.22 has been released on June 30, 2000Some new GUI classes.
What's New
- New class BusyWindow, CCLTreeNode, HighlightableList,
ListCancelMultiSelector, ListEditDialog, ListToListPanel,
MetaJDialog, MemoryDialog, MemoryPanel, and ThreadsDialog.
- SplitPane provides workaround for
setDividerLocation( double ) bug in Swing JSplitPane class.
Thanks to Marcel Nijman for this code.
- JCFUtil class which offers some helper methods for
analyzing Java byte code files. It uses Matt Yourst's
Java Class File library.
- New package ccl.platform with Linux class to access some
Unix system functions (e.g. create symbolic link etc.).
Bugs Fixed
- Miscellaneous.
Version 6.20
Version 6.20 has been released on April 17, 2000Some new GUI classes.
What's New
- New class BusyWindow, CCLTreeNode, HighlightableList,
ListCancelMultiSelector, ListEditDialog, ListToListPanel,
MetaJDialog, MemoryDialog, MemoryPanel, and ThreadsDialog.
- SplitPane provides workaround for
setDividerLocation( double ) bug in Swing JSplitPane class.
Thanks to Marcel Nijman for this code.
- JCFUtil class which offers some helper methods for
analyzing Java byte code files. It uses Matt Yourst's
Java Class File library.
- New package ccl.platform with Linux class to access some
Unix system functions (e.g. create symbolic link etc.).
Bugs Fixed
- Miscellaneous.
Version 5.18
Version 5.18 has been released on December 16, 1999New date methods and GUI date text field.
What's New
- New GUI date text widget ccl.swing.DateField.
- New date methods in ccl.util.Util.
Bugs Fixed
- Miscellaneous.
Version 4.11
Version 4.11 has been released on October 18, 1999New GUI/Swing package and some minor ccl.util classes.
What's New
- New GUI/Swing application framework and utility classes.
- New ThreadExitSecurityManager, History, Initializable,
Testable classes.
Version 3.9
Version 3.9 has been released on August 1, 1999New ccl.util classes.
What's New
- Direction, Enum, FileObject, History, Init, Option,
ReflectionClassLoader, Singleton, SysEnv classes
and Exitable interface.
Version 2.7
Version 2.7 has been released on July 29, 1999New support for Windows ini or KDE config files.
Version 1.6
Version 1.6 has been released on July 26, 1999
Authors
Below is a list of additional
contributors and supporters: Thanks to
-
Doug Lea for ccl.util.Comparable interface and ccl.util.Util.quicksort(..) methods
(they are Public Domain and taken out of his collection library)
-
Elliotte Rusty Harold for ccl.util.StreamCopier copied from Java I/O p.
43.
- Benjamin "Quincy" Cabell V (thethe@wpi.edu), Besiex Software for StringMethods.java which is renamed to ccl/util/IniFile.java and which is distributed under the terms of the GNU Library General Public License.
- Paddy Ramanathan <rpaddy@concordesolutions.com> for ccl.util.SysEnv. It was a contribution for the Jacob project.
- My managers at UBS Warburg who let me use and maintain this library for project development.
- Marcel Nijman for SplitPane code, which I took out of a news group.
- Matt T. Yourst for Java Class File library which is used by the the ccl.jcf package. The Matt's jcf library, which
is redistributed with this library, has the following copyright disclaimer:
JCF Copyright
All included source code, binaries, and information ("the Software")
are Copyright 1997 Matt Yourst ("the Author"). Permission is granted to
use the included files for any purpose so long as appropriate credit is
given to the Author.
- Glen Cordrey for a tip to set the application home directory automatically in a batch file.
- Brian Uegawachi and jalal for bug reports.
- The Apache Xerces project for making code for escaping
a string with XML entity references freely available.
Links
Chr. Clemens Lee
<clemens@kclee.com> (my resume),
last updated: $Date: 2001/09/14 20:47:28 $