Not-VEM

Milestone 1
The purpose of the first milestone is to get to an interface that can be used to draw diagrams of flat Ptolemy II topologies. It will
  • Use the default workspace
  • Create entities
  • Add ports to an entity
  • Make multi-way connections (relations) between ports
  • Have a popup context-menu on each kind of graphical element
  • Load and save topologies to disk

It will not:

  • Talk to Ptolemy II
  • Delete ports
  • Move ports around

Implementation milestones:

  1. Finish the package system far enough that I can create a new one and develop in it.
  2. Make DataModel use a separate namespaces for each model. This is necessary to allow annotations within the file.
  3. Make DataModel tolerant of undefined types.
  4. Write a Model subclass to represent the graph, called PtolemyGraph. This will be a modified PortedDigraph.
  5. Write a modified version of GraphEdit that understands this data structure.
  6. Change the drag-selection mechanism from overlapping to enclosed.
  7. Write the mechanism that allows entries to be added and deleted from the context menu of items.
  8. Either: Make the popup menu of edges understand relations; or make a relation -- set of edges and junctions -- into a single Slate object.
Milestone 2
The purpose of the second milestone is to get an interface that can be used by our developers. It will
  • Talk to a running Ptolemy II, if there is one.
  • Make accessible the internal names of all items for scripting purposes.

Design issues:

  • How are constraints such as legal connections (eg output to output is not allowed in a particular domain) implemented?

Implementation milestones:

  1. Define the Java facade to Ptolemy II.
  2. Define the Java publish-and-subscribe mechanism.
  3. Write a subclass of Model that is isomorphic to PtolemyGraph.
Milestone 3
The purpose of the third milestone is to support hierarchical topologies. How to get to this milestone is still rather vague.

Design issues:

  • Are nested topologies displayed in-line or out-of-line?
  • Are nested topologies stored in-line or out-of-line?
  • How are level-crossing links handled?
Milestone 4
The purpose of the fourth milestone is to support a single domain (probably dataflow) with pre-defined icons, port styles, and so on.

Design issues:

  • How are star parameters etc extracted from Java classes?

Implementation milestones:

  1. Complete the implementation of icon libraries.
  2. Complete the implementation of "star" libraries.
  3. Allow ports to be moved around and deleted.
  4. Write execution control dialog.
Milestone 5
The purpose of the fifth milestone is to perform an alpha-release of the editor and Ptolemy II, with a single domain. It will:
  • Support multiple workspaces.
Milestone 6
The purpose of the sixth milestone is to make edges more flexible:
  • Edges can be reshaped
  • Edges can be point-to-point rather than perpendicular.
Milestone 7
The purpose of the seventh milestone is to release a production version of a single-domain editor.

Other material