- 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:
- Finish the package system far enough that I can
create a new one and develop in it.
- Make DataModel use a separate namespaces for each model. This is
necessary to allow annotations within the file.
- Make DataModel tolerant of undefined types.
- Write a Model subclass to represent the graph, called
PtolemyGraph. This will be a modified PortedDigraph.
- Write a modified version of GraphEdit that
understands this data structure.
- Change the drag-selection mechanism from
overlapping to enclosed.
- Write the mechanism that allows entries to be
added and deleted from the context menu of items.
- 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:
- Define the Java facade to Ptolemy II.
- Define the Java publish-and-subscribe mechanism.
- 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:
- Complete the implementation of icon libraries.
- Complete the implementation of "star" libraries.
- Allow ports to be moved around and deleted.
- 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
-