| SWAG >> LSEdit >> Download | |
The architectural structure of lsedit
[^] -- Base class for class above
Basic architecture
LandscapeViewer.java // Applet mainline, startup and shutdown
LandscapeEditorFrame.java // Mainline, startup and shutdown logic
LandscapeEditorCore.java // Driving logic for all within the frame
// Central switch for relaying commands
[^] Do.java // Menu's and accelerator key values
// Separated out so all in one place
MyWindowsMenuItem.java
[^] MyHistoryMenuItem.java
MyMenuItem.java
Diagram.java // Driving logic for the visualisation graph
[^] TemporalTa.java // Encapsulates undo/redo layer of TA
[^] UndoableTa.java // Encapsulates undo/redo manager for TA
[c] MyPaintableUndoableEdit.java
[^] MyUndoableEdit.java
[c] MyCompoundEdit.java
[^] EditableTa.java // Extends TA with various edit capabilities
[^] Ta.java // Encapsulates loading/saving of TA
[c] TaListener.java
[c] TaFeedback.java
[c] LandscapeTokenStream.java
[^] TA_StreamTokenizer.java
ClientSet.java // Client part of the diagram
SupplierSet.java // Supplier part of the diagram
[^] ClientSupplierSet.java
RightTabbedPane.java // The scrollable right tabbed pane
[c] LegendBox.java // Legend Tab
EntityChkBox.java
RelnChkBox.java
ClosureConstraints
EditConstraints
[c] QueryBox.java // Query Tab
[c] TextTree.java // TOC Tab
[c] MapBox.java // Map Tab
[c] ClipboardBox.java // Clipboard Tab
[c] UndoBox.java // Undo Tab
[c] ResultBox.java // Result Tab
[c] HistoryBox.java // History of entities visited Tab
[c] AttributeBox.java // Attribute value Tab
Feedback.java // Feedback box at top of lsedit window
TextBox.java // Textbox opposite feedback box
[h] EditModeHandler.java // Top handler handling mouse clicks etc
// Defers to the following switchable
// subhandlers depending on input.
[h] FrameModeHandler.java // Draw a green frame for selecting
[h] GroupModeHandler.java // Moves groups of things around
[h] MoveModeHandler.java // Moves IO points on entity
[h] NewEdgeModeHandler.java // Creates a new edge
[h] ResizeModeHandler.java // Resizes an entity
The system uses these classes for representing the TA read
EntityClass.java // An entity class
RelationClass.java // A relation class
EntityClassPair.java // Valid pairing of entities for relationship
EntityInstance.java // An instance of an entity
[c] EntityComponent.java // The SWING part of entityInstance
EdgePoint.java // IO point on an entity
RelationInstance.java // An instance of a relation
[c] RelationComponent.java // The SWING part of a relationInstance
[c] RelationLabel.java // The SWING relation label
Attribute.java // An attribute of some instance or class
[c] AttributeValueItem.java // A value or chain of attribute values
The above classes inherit from the appropriate
LandscapeClassObject.java // State info suitable for classes
[^] LandscapeObject3D.java // State info suitable for 3d things
[^] LandscapeObject.java // Minimal state info
These classes encapsulate Dialogs and other high level actions
ArrowDimensions.java // Dialog to establish arrow properties etc.
ClassInherits.java // Dialog to show/change inheritance rules
ColorChooser.java // Dialog to choose a color
ExecuteAction.java // External command interface specification
FontChooser.java // Dialog to establish fonts
ImageChooser.java // Choose an image for an entity
EditAttribute.java // Dialog to edit attributes of something
BrowserLauncher.java // Logic to launch browser
Version.java // Version and change history
Vista.java // Printing support
FindBox.java // Search for entities
[c] Find.java // Walk through entities found
ReallyDelete.java // Check that user really wants to delete
These classes support graph layouts
SimplexLayout.java
HiArc.java
HiChildren.java
HiGraph.java
HiGraphCoordinates.java
HiGraphException.java
HiGroup.java
HiRank.java
HiRow.java
HiSimplex.java
SugiyamaLayout.java
Graph.java
Vertex.java
MatrixLayout.java
SpringLayout.java
SpringLayout2.java
[c] SpringNode.java
ExpandLayout.java
FlipLayoutHorizontally.java
FlipLayoutVertically.java
These classes support clustering
AAClusterLayout.java // AA Cluster Tool
ACDCClusterLayout.java // ACDC Cluster Tool
BunchClusterLayout.java // Bunch Cluster Tool
[c] Clue.java // Wrapper for bunch.jar API
// (A separate standalone program)
ClusterLayout.java // Internal Cluster Tool
[c] Distance.java // Euclidian distance calculator
ClusterInterface.java // Generic Cluster Tool
[c] LsClusterer.java // Mainline to test ClusterInterface
// (Not part of LSEdit)
Clustering tools
Recluster.java
ClusterMetrics.java
{^} LandscapeLayouter.java
These classes represent toolbar buttons
Elision_CS_Button.java
Elision_CU_Button.java
Elision_I_Button.java
Elision_c_Button.java
Elision_s_Button.java
Elision_u_Button.java
FindNext_Button.java
FindPrev_Button.java
Query_C_Button.java
Query_Clear_Button.java
Query_b_Button.java
Query_f_Button.java
Find_Button.java
FontSmallerButton.java
FontBiggerButton.java
HistoryNext_Button.java
HistoryPrev_Button.java
ToolBarButton.java // Common ToolBarButton interface
ToolBarEventHandler.java // Common methods that buttons speak
These classes perform low level caching for efficiency
ColorCache.java // Caches known colours
EntityCache.java // Caches all entities in a diagram
FontCache.java // Caches known fonts
StringCache.java // Caches strings
The rest is low level utility type stuff
Arrow.java // Draws an arrow
SrcCardinal.java // Represents a source cardinal in diagram
[^] Cardinal.java // Represents a cardinal in the diagram
Clipboard.java // Clipboard logic
[c] ClipboardEnumerator.java
SortVector.java // Sorts a vector using a given compare function
CompareFn.java // Common comparison interface for sorting
DiagramCoordinates.java // Interface
LineWalker.java // Draw dotted lines etc.
MsgOut.java // System.out.print if flags set
MySplitPane.java // Fixes a bug in JSplitPane
OrderedHashTableEnumeration.java
RealPoint.java // A double precision point
StringLinizer.java // Break a string into lines of text
Trace.java // Rudimentary trace capability
Util.java // Shared stuff
Flotsam and jetsum
LsLink.java
Sizeable.java
ScreenPoint.java
|
|