FuseminderFB4 Instructions

======================================================================================
FuseminderFB4
Jeff Peters <jeff@grokfusebox.com> & Jamie Thomas <jamie.thomas@integic.com>
(c) 2000-2004 Jeffrey S. Peters, All Rights Reserved

NOTE: This document has been modified by Jamie Thomas 
after some custom modifications to the code to generate Fusebox 4 output.
======================================================================================

--------------------------------------
Introduction
--------------------------------------
FuseminderFB4 is a tool designed to save you lots of drudge work in developing 
Fusebox 4 applications.  

If you follow the FLiP methodology (see "Fusebox and FLiP: Master-Class ColdFusion Applications", 
Proton Arts 2004 for more information), you use a mind mapping tool such as MindMapper+ 
to design the architecture of your application. Once the mind map is completed, though, 
there's a lot of drudge work involved in transforming the mind map into the directories 
and files you need to get started on coding the application.  This is where 
FuseminderFB4 comes in.

FuseminderFB4 reads a text file generated by a mind mapping application and 
transforms it into the directories and files it represents.  The mapping
style expected by FuseminderFB4 is shown in the fb4.jpg file,
which is a MindMapper+ 3 file.  If you don't use a mind mapping package,
you can see what the outline looks like in fb4.txt.

FuseminderFB4 also provides a link to the generated code that can be browsed as a
reverse wireframe if you will.

Thanks to Jeff for the orginal creation of Fuseminder and FuseminderPlus.

--------------------------------------
Installation
--------------------------------------
Installation of FuseminderFB4 is very simple.  Just drop the enclosed files
in a directory on your server and browse to index.cfm.  All code will be generated
in subdirectories of this directory.

--------------------------------------                                                
Notation in the Mind Map
--------------------------------------
FuseminderFB4 allows the creation of n-tier nested applications, in compliance 
with Fusebox 4.  In order to facilitate this level of flexibility, FuseminderFB4 
looks for prefixes on each node of the mind map.  These prefixes are explained below, 
and can be seen in action in the sample mind map. (NOTE the colon : is included as part
of the prefix).

Circuit Prefixes

ct:
Defines a circuit node.  If a circuit has an alias that is different than the physical
name of the circuit, it can be specifed in parenthesis next to the name as shown
here 'ct:wwwroot(home)'.

ict:
Defines a circuit node with the access="internal" modifer.

pct:
Defines a circuit node with the access="private" modifer.

Fuseaction Prefixes

fa:
Defines a fuseaction node. The fuseaction is constructed in the circuit.xml file 
for this circuit.

defaultFa:
Same as fa: but inserts the the fuseaction in the 
<parameter name="defaultFuseaction" value="" /> line of the
fusebox.xml file.

ifa:
Same as fa: but constructs the fuseaction with the access="internal" modifier.

pfa:
Same as fa: but constructs the name of the fuseaction with the access="private" modifier.

DO Prefixes

do:
Defines a DO node. The DO is constructed in the fusaction of the circuit.xml file 
for this circuit.

prefa:
Same as do: (event though this is called prefa) but constructs the DO in the 
<prefuseaction><prefuseaction/> section of the circuit.xml file
for this circuit.

postfa:
Same as do: (event though this is called postfa) but constructs the DO in the 
<postfuseaction><postfuseaction/> section of the circuit.xml file
for this circuit.

globalPrefa:
Same as do: (event though this is called globalPrefa) but constructs the DO in the 
<globalfuseactions><preprocess><preprocess/><globalfuseactions/>
fusebox.xml file in the root circuit.  NOTE: globalPreFa: will only be processed when attached
to the root circuit.

globalPostfa:
Same as do: (event though this is called globalPostfa) but constructs the DO in the 
<globalfuseactions><postprocess><postprocess/><globalfuseactions/>
fusebox.xml file in the root circuit.  NOTE: globalPostFa: will only be processed when attached
to the root circuit.

Other Prefixes

ff:
Defines a fuse file node.  The contents of the Notes pane are written to
the file name specified after the colon.  The fuse file is written to the
circuit directory that contains its fuseaction.

cv:
Defines a content variable. When a content variable (cv) is below a do, postfa, prefa, 
globalPostfa or globalPrefa, the variable receives the output of the operation. When a (cv) 
is belowa fuse file (ff) the content of the variable is output in the generated code.

cva:
Same as cv: defines append="true" attribute for the do, postfa, prefa, globalPostfa,
or globalPrefa line.

cvo:
Same as cv: defines append="false" attribute for the do, postfa, prefa, globalPostfa,
or globalPrefa line.

xfa:
Defines an eXitFusaction. XFAs can be defined bdlow ff, do, postfa, prefa, globalPostfa, or
globalPrefa notes.

df:
Defines a direct file node.  The contents of the Notes pane are written
to the file name specified after the colon.  The file is written to the
circuit directory for the df node's parent circuit.  You can specify
any name you want for a df node althought it is probably not used as much for
FB4.

--------------------------------------
Release Notes
--------------------------------------
1.00 4/11/2004
Initial Version

1.01 6/11/2004
Fixed syntax errors in generated code
Changed internal circuit reference to use circuit name instead of alias
Removed client variables which were incompatible with CFFLUSH
Added two new prefixes: cva and cvo documented above
Added better error handling to index.cfm in core_files directory