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. Below is a complete alphabetical listing of all of the Java source files.

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]
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]
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]
BugFrame.java This file contains contact information for bugs encountered during the operation of the Graphical Database for Category Theory program. [113 lines]
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]
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]
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]
Clan.java A "Clan" class for CGD. [105 lines]
ClanTree.java A "Clan" tree class for CGD. [151 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]
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]
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]
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]
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]
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]
EmptyListException.java This class contains an Empty List Exception class for the DefList class which contains a list of categories. [16 lines]
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]
EqualityComposites.java This class implements a frame that tests paths in a given category for equality. [647 lines]
FontPropDialog.java A dialog class that allows the user to specify font properites. [108 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]
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]
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]
GDCTIntro.java This frame displays an intro image for GDCT as a "splash screen" when the application is first opened. [44 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]
GMLlexer.java A GML lexer. No distinction is made between Integer and Real (all numbers are real). [225 lines]
GMLobject.java A GML object that does nothing but create itself and write itself. [500 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]
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]
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]
InputDialog.java A dialog class for user input of a single string. [69 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]
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]
LPanel.java A panel class with convenience functions for dealing with the VGJ (Graphing panel) attributes. [246 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]
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]
Matrix44.java A 4x4 Matrix class used in the visual display side of GDCT. [65 lines]
MessageDialog.java This dialog is displayed whenever a message is given to the user. [71 lines]
MyFile.java This class handles the opening and saving of CAT, CGL, FUN, and FGL files. [1330 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]
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]
Queue.java Class to implement a simple queue of integers. [43 lines]
RecentFiles.java This class reads and writes the list of the recent files to and from a file. [95 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]
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]
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]
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]
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]
Spring.java Class to implement Kamada and Kawai's spring algorithm with modifications). [609 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]
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]
85 Files Total Lines of Code Total ~30900

| Documentation Page | Main Page |



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