SWAG >> LSEdit >> Download | |
The architectural structure of lsedit
[^] -- Base class for class above
Basic architectureLandscapeViewer.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 |