links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Last updated at 12:06 am UTC on 1 November 2006

Uploaded Image: jacaranda.jpg
[introduction] [downloads] [to-do list] [wish list] [how to use it] [history]


DiagramBrowser is an editor for UML-Like diagrams which uses Ned Konz's Connectors package.

The idea behind DiagramBrowser is to provide an environment in which the user can view, edit, organize within categories, and file-in and file-out multiple diagrams.

DiagramBrowser is the first step of a bigger development that I named Jacarandá. With Jacarandá I attempt to integrate DiagramBrowser in squeak as a development tool like the System Browser today is.

In this project my main goal is to bring to Squeak the capability to develop in it as much graphically as textually, as one would do it with today's CASE tools but with the additional benefit of always being in Squeak.

This project is being made by Hernán Tylim.

About Connectors 2.0

Please note that Jacarandá for the moment is only compatible with Connectors 1.9. It is currently on my to-do list to make a new version of Jacarandá for Connectors 2.0 but it might take a little more of time. - Hernán Tylim, August 3rd 2004.


Jacarandá for Squeak 3.7: Jacaranda.sar
Jacarandá for Squeak up to 3.6: Missing File (/squeak/uploads/Jacaranda.18.sar)
Jacarandá drawing tutorial (in spanish) (install only on an empty image): Jacaranda Tutorial.pr
Diagrams of the Jacarandá model: Jacaranda Model.jo (doesn't file-in in the current version - hpt)
StarBrowser support by Ken Causey: SBJacaranda.cs
A really (very) cool Connectors tutorial (note: this is from an older version of Connectors; (re)load Connectors from SqueakMap after you load it): http://www.bike-nomad.com/squeak/ConnectorsMS-nk.013.pr

To-Do List

  1. Make a new version of Jacarandá for Connectors 2.
  2. The labels should respond to mouse events as the other shapes do. (click = nothing, drag = move, double+click = edit text. But now the labels are doing: click = edit text, shift+click = move) DONE!
  3. A completely new ClassShape with behavior to interact with the related class in the image.
  4. Integrate Jacarandá with Masashi Umezawa's Dandelion.

Wish List

  1. An option menu to search a shape in a diagram. The search could be made with a user entered block which will be evaluated with every shape in the diagram. The blocks could be something like this: [:ea | ea isKindOf: ClassShape and: [ea name = 'MyClass']].
  2. An option to Zoom in and out on Diagrams DONE!

How To Use It

Open a Diagram Browser window selecting 'Diagram Browser' from the World's menu, or evaluate 'DiagramBrowser openBrowser'.

The window's left panes are for (top to bottom) a hierarchical list of diagram organizations and a list of the selected organization diagrams. The window's right pane is the drawing area that will be enabled when a diagram is selected.

To create a diagram, create a suborganization, rename them, move them, etc. use the right mouse button over the left panes. When you create a new diagram or select one you will see it in the right pane.

An instance of Diagram is a Morph with a PasteUpMorph. To start drawing you use your mouse to drag and drop morphs from the Jacaranda Flap (or any other place) to the PasteUpMorph.

To interact with the shapes just use your right mouse button for an options menu.

To easily connect two shapes use shift+mouse left button to select the first shape and then the mouse left button to select the last shape.


[FIX] Fixes to the SqueakMap loadscript so Jacarandá will now install itself correctly on a Squeak 3.7

[ENH] Jacarandá is now a Monticello package and is also published on SqueakSource.

[ENH] DiagramBrowser was refactored to its own package. The Jacarandá package still includes DiagramBrowser but from now on DiagramBrowser will be able to be installed separetely.

[ENH] Added to InstanceShapes the capability to add protocol.

[ENH] Minor changes on menues to improve usability.

[FIX] Added a forgotten asIntegerPoint which caused disasters when using the zoom and connecting two OLLShapes.

[ENH] Added to the SAR preamble a script to install Connectors if it isn't in the image.
[ENH] Added to the SAR postcript a script to install Ken Causey's Jacaranda support for StarBrowser.
[FIX] Added to the SAR HorizScrollbarMissingLeftButton.1.cs until it gets to the base image.

[FIX] minor fixes.

[FIX] The label's mouse behaviour is now the same as the other shapes. (click: nothing, dblclick: edit text, drag: move).

[FIX] some minor fixes.
[ENH] Added to FileList services

[ENH] Added zoom support to diagrams!.

[FIX] Fixed 'export as GIF' option when an AnonymousOLLShape where on the drawing.
[ENH] Added a couple of Utilities>>informUser:during: when filing-in and out.
[FIX] Finally was replaced AnonymousOLLShape by a Proxy-type object which wraps an OLLShape instance.

[ENH] A NoteShape was added.

[FIX] The Jacaranda connectors has been refactored into a JacarandaConnector class and other helper classes that will make the connector change it's behaviour based on the connected morphs.
[FIX] ObjectLifeLine classes has been renamed to OLL.
[ENH] ClassShape supports now a 'switch abstract' menu option.
[ENH] JacarandaShape supports now a 'change color' menu option.
[ENH] JacarandaConnector supports now a 'add label' menu option (and the label will change based on the connected peers).

[FIX] Major cleaning and refactoring with ObjectLifeLineShape and the way I was using Connectors.

[FIX?] To avoid a problem related to when a connected connector get disconnected was added that the disconnected connectors delete himself when that happens. More details check the comment on the method JacarandaConnectors>>connectionsChanged.

[FIX] Factored connectors creation behaviour and shapes connection behaviour in a JacarandaShapesConnection class hierarchy. The ObjectLifeLine connector's label related code remain ugly (too many if cases) but at least is a little more hidden. :)
[FIX] Removed the DiagramBrowser icon from the Jacaranda flap. This had to be done to avoid incompatibility issues between the prototype-based approach of NCMakerButton and the DiagramBrowser design. To access the browser a Diagram Browser option was added to the world menu.

[FIX] center view on contents and center.

[ENH] with the grid turned on the JacarandaShapes inside the Diagram will snap to the nearest gridded point on movement and resize.
[ENH] Added dashed line option to the yellowButtonMenu and to the flap.

[ENH]Added to the Jacaranda flap one connector per type (closed, double, and simple arrowheads)
[FIX]As default constraint now is used the #nearestPointToCenterOf:
[ENH]Added Balloon help text to shift+click.

[FIX]The click behaviour on the Jacaranda shapes where very confusing to the user so now when you click on a shape it happens nothing. When doubleClick it it gaves keyboard focus to the textMorph containing the cursorPoint. When the textMorph already has the keyboard focus the simple clicks are not avoided anymore and passed directly to the textMorph. To move a shape now you simple drag it.

[ENH]Added JacarandaConnector to introduce a personalized and more clean yellowButton menu on Connectors.
[ENH]Added JacarandaConnector to Jacaranda Flap.
[FIX]Now when floating the mouse over the textMorph of any JacarandaShape the text cursor on the textMorph will appear to show that the keyboard focus has changed.
[FIX]The label on self messages (ObjectLifeLineShape) is now adjacent to the connector.
[ENH] added behavior to represent anonymous send and receive on objectLifeLines

[FIX]Now I am using mouseDownPriority to obtain the mouseDown event before the shape's childs.
[ENH]Added yellowButtonMenu to Diagram.
[ENH]On blue button click all Jacaranda Shapes are picked up (no matter if you click over the textMorph surface or the container surface). To let the shape obtain keyboard focus this is done on mouse over.

[ANN]DiagramBrowser beta release.