
--------------------------- GETTING STARTED ------------------------

Initial Tips for preparing to use the EtchaSketch design tool:

1) most important, KNOW YOUR CONTEXT.
	all Mpaths have a context which identifies them as
	belonging to you, or to a subsystem.  when you use
	the EtchaSketch it operates on an entire Mpath context
	at a time.  It will DELETE all the paths in the target
	context and replace them with new information if you
	use the WRITE DB button.

2) know your memes.
	Before you start sketching, it's not a bad idea to have
	the Memes form (and possible the Agents form) available
	on your desktop for ready reference.  Your sketch will
	go faster if you know the names of most of your memes.

3) know the list of standard agents.
	There is no need to reinvent 'Observer' or other standard
	agents.  Your sketch will go faster if you know the names
	of the list of standard agents, and use them in your
	sketch.

Now, to get started, you first

	ENTER THE CONTEXT NAME

in the appropriate entry box at the upper left.  Having done so you
can either Load (Retrieve Agents) from the database, or start sketching
freehand.  

But first, let's look at how Etcha works.

---------------------------- MODE SELECTION ----------------------------

The EtchaSketch is MODAL.  In other words, rather than having elaborate
bindings like Shift-Control-Meta-Mouse-1 = Edit, we have four modes
in which the mouse can act on objects.  The modes are selected by the
radio buttons at the top of the screen.  They are:

Make:  make new objects.  A simple click with Mouse-1 starts a Node 
(rectangle) which will stretch as you drag.  When you release, the
node is completed.  A simple click with Mouse-2 starts an Arrow (line)
which will stretch as you drag.  The arrow will refuse to draw itself
over a Node, by the way.  Control-Mouse-3 will kill an arrow or a node.

Move:  A simple click with Mouse-1 will select something to Move around.
You can move it by dragging, and when you release, the object will stay
in its new location.

Stretch:  A simple click with Mouse-1 will cause the object to stretch
to new proportions.  Note that only the 'end' (the end with the arrow on
it) of the arrows will stretch;  the origin stays put.  Also, it doesn't
matter where on the object you clicked;  the stretch will be proportionate
to mouse movement.  There are no 'handles'.

Edit:  A simple click with Mouse-1 will pop up an editor for the selected
object.  If there was a stack of objects at that location, a menu will
pop up offering you a choice of objects to edit.

--------------------------- FREEHAND SKETCHING ------------------------

Let's assume you decided to start freehand.  You start in Make mode,
and click/drag to lay a Node down on the screen.  You make two or
three nodes.  Now you want to associate those Nodes with agents (existing
or new).

You go into Edit mode and click on a Node.  The Node Editor box pops
up.  At this point you can enter an agent name and hit the LOOKUP button
(if you know the name) or you can double-click in the AgentId field
to see a messy list of all the agents we know about.  Selecting one of
these (double click, or click and then OK) will fill in the
AgentId field;  LOOKUP can look up the agent from that id as well as
from the name.

If you hit the COMMIT button, you should see the agent name, ID, and
type appear as a label on the node.  The shapes of nodes do not change
according to agent type, as in the finished output;  all nodes are
rectangles, but you can make them any size you want.

What if the agent you want is not in the database?  You can fill in
all the information in the Node Editor, Commit it to the graph, and
at any time push the NEW AGENT button in the Node Editor to store a NEW
agent in the database.  You could also use the Agents form to enter
the same new agent data.  Be careful;  you can accidentally store duplicates
of the same agent this way.

Once you have a few nodes (agents) defined, you can connect the dots;  
use the Mouse-2 button to draw arrows between nodes, and remember that 
direction counts;  the direction of meme travel is the direction of drag, 
and the arrowhead will appear to remind you.

Arrows will try to be conscious of which nodes are closest to their
end points, and to fill in their Send and Receive node IDs for you.
However, you have to fill in the Controller node yourself (the controller
node is the agent which requests or controls the transaction).  You
won't see controller relations drawn on the etchasketch, but they will
show up on the finished drawing.

To get rid of a node or an arrow, just use Control-Mouse-3 on it.

If you like your layout, you can save it (Save menu) to a named file
which can be reloaded later.

If you *really* like your layout, you can use the WRITE DB button to
REPLACE all paths in the selected context with the paths in your
drawing.  This is a dangerous button, so please be very certain that
you know what you're doing before you push it.

Once the layout is committed to the database, you can use the VIEW
button to see the 'publication quality' drawing produced from the
database by 'dot'.  This picture will be more detailed and more
subtly laid out than your sketch.  The layout is not under your
control.

----------------------------- EXISTING LAYOUTS --------------------------

If you know that a layout (context) is already in the database, you can
'outload' it into the EtchaSketch in two stages. First, choose Retrieve
Agents from the Load menu, making sure first to enter the correct context
in the Context entry box.

Nodes should appear on the screen in a regular grid, laid out with no
regard for order or relationship.  You may want to drag them around into
a reasonable preliminary layout.  A text box will pop up with a list of
all the paths in the selected context, to help you remember how the
layout might look.  Once you have moved nodes into some configuration
that you think will be useful to you, choose Retrieve Paths from the
Load menu.

The EtchaSketch will try to draw the paths for you.  Since it only knows
one simple way to compute the best path between two nodes, its results
may look bad;  paths may cross, and multiple paths between the same two
nodes will be overlaid on top of one another, making a mess.  You may have
to peel these stacks of paths apart carefully in Move mode, making sure
to click on the arrow and not the text.

If you have a stack of objects making a mess on the screen, you can
go into Edit mode and click on the stack to get a menu of the items
in the stack, for a reminder or to edit one of them without the hassle
of peeling them apart.

Once you have rearranged an outloaded layout to your satisfaction, you
should probably save it, in case you want to use it again.

----------------------------------------------------------------------------
