GDCT: Java Source Files

Below are all of the Java Source Files for the Graphical Database for Category Theory. To download all of the java source files go to the GDCT Download page located at http://cs.mta.ca/research/rosebrugh/gdct/download.htm. The Java source code is currently being divided into "packages" in an effort to provide better organization. Below is an alphabetical listing of the Java source files divided into the proposed packages.

package GDCT
Java File Name Description
GDCT.java This file creates the application GDCT and displayes the intro graphic frame (GDCTIntro.java) and displayes the main frame (MainWindow.java). [43 lines]
MainWindow.java This class contains the main window that is displayed when the GDCT application is opened. It contains the GUI for the text-based and graphical manipulation of categories and functors as well as an extensive menu system that allows the user to easily access all of the tools and options available. [5306 lines]


package GDCT.category
Java File Name Description
AddDataFrame.java This file is displayed when the user selects the "Add Object", "Add Arrow", or "Add Relation" menu option in the main window. It displays a list of objects in categories that are presently in memory. The user can select a category file(*.CAT) and chose add an object, arrow, or relation. [531 lines]
Category.java This class is equivalent to a struct in C/C++. It contains all of the information that is needed for a category. [33 lines]
CategoryList.java This class implements a list of ListNode classes which contain categories. [148 lines]
CategoryNode.java This is a class that contains a category and another ListNode called next. It also contains a boolean variable to indicate if the category file has been modified and not saved. [39 lines]
CategoryModified.java This is a class that contains information about modifications to the current category. Modififications that are recorded include: GML Changed, Data Added, Data Removed, Category Name Changed, Relations Added through Make Confluent. The class also indicates if the files was not originally saved. This could be the result of: Download from Server, Created using "Create Category", Created using "Make Dual", Created as part of a functor. [83 files]
CategoryNode.java This is a class that contains a category and another ListNode called next. It also contains a boolean variable to indicate if the category file has been modified and not saved. [39 lines]
ChangeNameFrame.java This file is displayed when the user selects the "Change Name of Category" menu option in the main window. The user can select a category from a choice menu and then enter a new name in the text field below it. [137 lines]
EmptyListException.java This class contains an Empty List Exception class for the DefList class which contains a list of categories. [16 lines]
LoadCATFrame.java This class creates a frame that allows the user to select the desired category file (*.CAT) to load from the server. [215 lines]
LoadCGLFrame.java This class creates a frame that allows the user to select the desired category file (*.CGL) to load from the server. [215 lines]
Relation.java This class is equivalent to a struct in C/C++ and stores the lhs and rhs of the relations of a category. [17 lines]
RemoveCatFrame.java This file is displayed when the user selects the "Remove Category" menu option in the main window. It displays a list of categories that are presently in memory. The user can select a category and chose to remove it. [176 lines]
RemoveDataFrame.java This file is displayed when the user selects the "Remove Data" menu option in the "Edit Category" menu of the main window. It allows the user to remove objects, arrows, and relations from the current category. [534 lines]


package GDCT.files
Java File Name Description
FileProcessing.java This class handles the opening and saving of CAT, CGL, FUN, and FGL files. [1330 lines]
RecentFiles.java This class reads and writes the list of the recent files to and from a file. [95 lines]
SaveDialog.java This class displays the dialog that is displayed upon close when a category is found that has not been saved or has been modified since it has last been saved. [263 lines]


package GDCT.functor
Java File Name Description
CatFunctor.java This class is equivalent to a struct in C/C++. It contains all of the information that is needed to create a functor node. [17 lines]
FunctorList.java This class a list of functors. [136 lines]
FunctorNode.java This class contains the information about a functor that is later stored in a linked list. [39 lines]
LoadFUNFrame.java This class creates a frame that allows the user to select the desired functor file (*.FUN) to load from the server. [215 lines]
RemoveFunctorFrame.java This file is displayed when the user selects the "Remove Functor" menu option in the main window. It displays a list of functors that are presently in memory. The user can select a functor and chose to remove it. [172 lines]


package GDCT.graphical
Java File Name Description
AngleControl.java A class that allows control of a 3D viewpoint angle in polar coordinates (phi, theta). [322 lines]
AngleControlPanel.java An AngleControl, along with a label that allows the user to manipulate the 3D viewpoint. Also includes buttons for viewing a category in the XY plane, YZ plane, XZ plane. [91 lines]
BiconnectData.java Data object for storing node information used in implementing J.E. Hopcroft's depth-first traversal of a graph to determine the Articulation Points of the graph. Basically, this is a data object for generic information field in Graph class. It is used by the class BiconnectGraph. [51 lines]
BiconnectGraph.java This file implements a BiconnectGraph class that is created from a Graph object. The Graph object is modified if neccessary so that it is a biconnected graph. Basically, this is a class to transform the given graph to a biconnected graph. [398 lines]
Clan.java A "Clan" class for CGD. [105 lines]
ClanTree.java A "Clan" tree class for CGD. [151 lines]
DDimension.java A class for holding a real dimension of the visual display in the graph class canvas. [53 lines]
DDimension3.java A class for holding a real 3D dimension of the visual display in the graph class canvas. [40 lines]
DPoint.java A class for holding a real position. [66 lines]
DPoint3.java A class for holding a real 3D position. [84 lines]
DragFix.java Drag fix queues events and eliminates repeated mouse drag events and scrollbar events (most annoying on Win95). Be sure the Component doesn't post an event to itself every mouse drag or scrollbar event, or this will do no good. I suggest getParent().postEvent() instead. [192 lines]
DRect.java A class for holding a real rectangle. [23 lines]
Edge.java This file is a heavily modified version of the original developed at Auburn University for the VGJ (Visualizing Graphs with Java) applet. This class draws an edge of a graph(category). [1063 lines]
EdgePropertiesDialog.java A dialog class for changing the properties of an edge. If the edge is null, the dialog is modeless and does not have fields for changing properties, such as label, without defaults. Otherwise, the dialog is modal. [313 lines]
FontPropDialog.java A dialog class that allows the user to specify font properites. [108 lines]
GMLEditor.java This is a class that allows for the addition and removal of objects, arrows, and relations to a given gml representation of a category. [500 lines]
GMLobject.java A GML object that does nothing but create itself and write itself. [500 lines]
GMLlexer.java A GML lexer. No distinction is made between Integer and Real (all numbers are real). [225 lines]
Graph.java A class for representing a graph abstractly. [1056 lines]
GraphAlgorithm.java This interface is used to add algorithms to the graph tool. All that is required is that the algorithm object class has the function compute, and that it implements GraphAlgorithm. [24 lines]
GraphCanvas.java A window class for editing and displaying Graphs. [2091 lines]
GraphEdit.java Graph File Viewer & Editing Utility. GraphEdit is a text editing window for Graphs. It can be accessed in GDCT through the "View GML" menu option in the "Edit Category" submenu of the "Categories" menu. [386 lines]
GraphUpdate.java This interface represents an updatable graph display. [64 lines]
GroupControl.java A dialog class that allows the user to enter group commands. [89 lines]
InputDialog.java A dialog class for user input of a single string. [69 lines]
LPanel.java A panel class with convenience functions for dealing with the VGJ (Graphing panel) attributes. [246 lines]
Matrix44.java A 4x4 Matrix class used in the visual display side of GDCT. [65 lines]
Node.java This file is a modified version of the original developed at Auburn University for the VGJ (Visualizing Graphs with Java) applet. This class draws a node of a graph(object of a category). [1538 lines]
NodeList.java A NodeList class for use in a Graph. [266 lines]
NodePropertiesDialog.java A dialog class for changing the properties of a node. If the node is Node.defaults, the dialog is modeless and does not have fields for changing properties, such as label, without defaults. Otherwise, the dialog is modal. [342 lines]
OffsetCanvas.java This abstract class is used inside a ScrolledPanel, and implements the required functionality to communicate with it. [60 lines]
ParseError.java A parse error Exception. [19 lines]
Partition.java A partition class for CGD. [112 lines]
Queue.java Class to implement a simple queue of integers. [43 lines]
ScrolledPanel.java This is a panel that contains an OffsetCanvas, a Label, and two Scrollbars. When the OffsetCanvas is resized, the Scrollars will adjust so that the image can be completely viewed, and no more (you can scroll just to the edge of the image). If the OffsetCanvas is larger than the image, the image gets centered inside it. the Label displays the current cursor location in the OffsetCanvas, relative to the contents of the OffsetCanvas. [311 lines]
Set.java This class is similar to Java's BitSet class. It is used to represent an ordered set of non-negative integers. The set automatically grows as more spaces are needed. [442 lines]
Spring.java Class to implement Kamada and Kawai's spring algorithm with modifications). [609 lines]
TextOutDialog.java A dialog class for output of a single string. [91 lines]
ViewportScroller.java A ViewportScroller is a window used to scroll a window through a larger area of content. The content is shown as a white rectangle, with the window being represented by a black rectangle outline within it. A SCROLL event is sent when the user drags the "window" with the mouse. [366 lines]


package GDCT.info
Java File Name Description
AboutAuthors.java This file is displayed when the user selects the "About Authors" menu option in the main window. It displays basic information about authors of the project. [80 lines]
AboutFrame.java his file is displayed when the user selects the "About GDCT" menu option in the main window. It displays basic information about the project. [110 lines]
BugFrame.java This file contains contact information for bugs encountered during the operation of the Graphical Database for Category Theory program. [113 lines]
Constants.java This class contains a list of the constants that are used throughout the GDCT program. These constants are stored in one location to allow them to be easily changed. [42 lines]
NameDialog.java This class displays a dialog box that prompts the user for a new name if the name of the category file being loaded, created, or opened already exists in the open categories list. [119 lines]
GBConstraintsEditor.java This class provides a method to easily fill in the values of the GridBagConstraints class that are necessary to add an element to a panel or frame with a GridBagLayout. The values in the GridBagConstraints that are dealt with in this class are int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx ,and int ipady. [48 lines]
GDCTIntro.java This frame displays an intro image for GDCT as a "splash screen" when the application is first opened. [44 lines]
HelpFrame.java This file is displayed when the user selects the "Help Topics" menu option in the main window. It displays a list help files that are available in text format(as .DAT files). [278 lines]
MessageDialog.java This dialog is displayed whenever a message is given to the user. [71 lines]


package GDCT.print
Java File Name Description
printCategory.java This class is implemented to print a text version or a graphical version of the current category. [303 lines]
printFunctor.java This class is implemented to print a text version of the current functor along with the categories associated with it. [263 lines]
PSdialog.java The purpose of this class is to display a dialog that allows for the printing of the graph of the current category to postscript. [276 lines]

package GDCT.settings
Java File Name Description
EndomorphismFrame.java his file is displayed when the user selects the "Endomorphism LimitEqualityComposites.java". It allows the user to select a new maximum order of endomorphism to replace the default of 2. [200 lines]
SettingsAnimation.java This class creates a frame that allows the user to change the speed of the auto animate functor as well as allows the user to select the desired color for the highlighted objects and arrows in both category A and category B. [194 lines]
SettingsFuncGraphical.java This file creates a frame that allows the user to change the graphical settings associated with the display of categories A and B in the current functor. [485 lines]
SettingsGraphical.java This file creates a frame that allows the user to change certain graphical settings in the display of a category. [254 lines]
SettingServer.java This class displays a frame which allows the user to change the default server, default server category directory, and the default server functor directory, which are used in the loading of files. [188 lines]

SettingsText.java

This class displays a frame that allows the user to change the font as well as change the style and size of the font. [225 lines]


package GDCT.tools
Java File Name Description
DualCategoryFrame.java This file is displayed when the user selects the "Create Dual Category" menu option in the main window. The user can select a category file from a choice menu and then enter the name of its dual category in the text field below it. [286 lines]
EqualityComposites.java This class implements a frame that tests paths in a given category for equality. [647 lines]
InitialObjectFrame.java This file is displayed when the user selects the "Initial Object" menu option in the main window. The user can select a category from a choice menu and then chose to check if one or all of the categories are intial. The information on each object tested will be displayed in the text area. [719 lines]
MakeConfluentFrame.java This file is displayed when the user selects the "Make Confluent " menu option in the main window. The user can select a category from a choice menu and then changes made to the category to make it confluent will be displayed in the text area. To save the changes to the current category press "ok". [733 lines]
SumFrame.java This class implements a frame which allows the user to run the category tool "Sum" on the current category. [1152 lines]
TerminalObjectFrame.java This file is displayed when the user selects the "Terminal Object" menu option in the main window. The user can select a category from a choice menu and then chose to check if one or all of the categories are terminal. The information on each object tested will be displayed in the text area. [779 lines]

| Documentation Page | Main Page |



Page Design by Jeremy Bradbury
Last Modified: June 20, 2000