File:  [LON-CAPA] / doc / rat / Attic / rat.txt
Revision 1.1: download - view: text, annotated - select for diffs
Tue Nov 16 17:36:55 1999 UTC (24 years, 10 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
Initial revision

    1: Scott Harrison's RAT Notes
    2: (written in RAN format.. "ridiculous ascii notation")
    3: 09/27/1999
    4: 
    5: Start
    6: 
    7: Who is using RAT?
    8:     Instructor/Student/Guest
    9:     Domain
   10: 
   11: file names
   12:  [domain]_[user]_[resource].rat
   13: 
   14: to do:
   15: * implement fancy resource rat widget
   16: 
   17: 
   18: * implement fancy resource linking information interface
   19:   widget
   20: 
   21: 
   22: * implement resources on rat
   23: 
   24: 
   25: 
   26: Program documentation
   27: GLOBAL VARIABLES
   28: 
   29: row    array	maps row id to display  (example, d=row[i] where 'd' is display and 'i' is id)
   30:        used by	insertrow, findrow, horizontal, joinres, draw, main
   31: 
   32: maxrow scalar	number of elements-2 in row array    (the last element number in the array, -1 for empty array)
   33:        used by	insertrow, findrow, horizontal, joinres, draw
   34: 
   35: col    array	maps col id to display  (example, d=row[i] where 'd' is display and 'i' is id)
   36:        used by	insertrow, insertcol, findcol, maprow, comingthru, horizontal, joinres, drawrow, draw, main
   37: 
   38: maxcol scalar	number of elements-2 in col array    (the last element number in the array, -1 for empty array)
   39:        used by	insertcol, findcol, maprow, comingthru, insertport, drawrow, draw
   40: 
   41: colmap array	in order of display ids which object is in which column
   42:        used by	maprow, comingthru, insertport, horizontal, drawrow, draw, 
   43: 
   44: colmap2	    array	temporary
   45: 	    used by	drawrow
   46: colmap3	    array	temporary
   47: 	    used by	drawrow
   48: colmap4	    array	temporary
   49: 	    used by	drawrow
   50: colmap5	    array	temporary
   51: 	    used by	drawrow
   52: 
   53: obj	    array	appended array with drawing objects (which are blocks, verticals, horizontals, and conditions), never emptied
   54: 	    used by	insertrow, maprow, insertport, addobj, horizontal, joinres, drawrow, draw, main
   55: 
   56: maxobj	    scalar	number of values in obj array-2 (last element, -1 for empty)
   57: 	    used by	NOTHING
   58: 
   59: rowcont	    array	object ids in a row
   60: 	    used by	insertrow, maprow, addobj, drawrow, draw, main
   61: 
   62: rowtype	    array	row ids to type
   63: 	    used by	insertrow, drawrow, main
   64: 
   65: coltype	    array	col ids to type
   66: 	    used by	insertcol, insertport, drawrow, main
   67: 
   68: rrow	    array	display to id (reverse hash of row)
   69: 	    used by	draw
   70: 
   71: rcol	    array	display to id (reverse hash of row)
   72: 	    used by	drawrow, draw
   73: 
   74: cw	    array	column width (temporary)
   75: 	    used by	drawcell, draw
   76: 
   77: rh	    array	row height (temporary)
   78: 	    used by	drawrow, draw, 
   79: 
   80: data1,data2,data3,data4	array	 used to buffer memory so that javascript does not CRASH!
   81: 			used by  drawrow, insertrow, insertport
   82: 
   83: 
   84: 
   85: functions
   86: 
   87: main - invokes RAT
   88:   \
   89:    \
   90:     initializes rows, with resources labelled 5, 4, 3, and 7
   91:     insert thirteen columns from the left side
   92:     perform 3 testing swaps 
   93:     initialize maxrow
   94:     define starting objects (blocks: 3,4,5,7)
   95:     create 12 joinings between these resources! (joinres ... see below)
   96:     draw in debugging editting mode!
   97:      \                                                                                 b&rowID&colID:inObj:outObj:outCond&...
   98:       \                                                                                h&rowID&incolID:outcolID&inObj:outObj&inupdown:outupdown
   99:        \                                                                               v&colID&inObj:outObj&updown
  100:         \                                                       simple javascript    /
  101:          \                                                     /                    /
  102:       open, configure, and clear a debugging javascript window/                    /
  103:                        |                                                          |
  104:       go through all objects and display object information -----------------------
  105:                        |
  106:       write out the value of col array ------- counting col ids from 0 to maxcol, print out a comma separated list of display locations
  107:                        |
  108:       write out the value of row array ------- counting row ids from 0 to maxrow, print out a comma separated list of display locations
  109:                        |
  110:       find all the display rows (findrow) from 0 to last row, ------------------------------ findrow: does this my running through all rows and waiting till the value of an array
  111:                        |                                                                     index matches the row to display, returns row id
  112:         map this row (maprow), and output the results (colmap and rowcont) onto
  113:                        |________________________________
  114:                        |                                \
  115:                        |                                 -- a debugging window with column id, colmap, and rowcont
  116:                        |                                        where colmap specifies where objects occur within a row based on "display column" location
  117:                        |                                        where rowcont is the objects within a row and
  118: 	    	       |  
  119:                        |
  120:                        |
  121:                initialize display-to-id array rrow (so that rrow[display] equals original row id)
  122:                        |
  123:                initialize display-to-id array rcol (so that rcol[display] equals original col id)
  124:                        |
  125:                initialize row height and column width values where rh[1] is short row, rh[2] is tall row, cw[1] is skinny column, cw[2] is fat column
  126:                        |
  127:                set javascript RAT display window options (javascript stuff...)
  128:                        |
  129:                output HTML beginning to RAT display window
  130:                        |
  131:                run through the rows to display, convert from display row # to row id (rrow) and draw in edit mode (drawrow)
  132:                                                                                                                       |
  133:                                                                                                                       |
  134:                                                                                                            drawrow begins by clearing out and initializing
  135:                                                                                                            these temporary arrays
  136:                                                                                                                colmap,colmap2,colmap3,colmap4,colmap5
  137:                                                                                                            output HTML beginning to row set to rowtype height (from row id)
  138:                                                                                                            if there are contents in the row (rowcont[jid] display them (else just end HTML row)
  139:                                                                                                              run through all the objects in row
  140:                                                                                                              if object is a 'b'lock object
  141:                                                                                                                do a lot of amazing things to position resource within block
  142:                                                                                                                  and draw arrows connecting into block in another amazing feat of code
  143:                                                                                                              if object is a 'h'orizontal object
  144:                                                                                                                grab input column id and output column id
  145:                                                                                                                and depending whether input is less than output in display position
  146:                                                                                                                  draw left-right arrow line or right-left arrow line
  147:                                                                                                                  and set leftmost position and rightmost position
  148:                                                                                                                look at inupdown and outupdown
  149:                                                                                                                if inupdown (means what ??) then
  150:                                                                                                                  draw top-to-right line, set colmap2 and colmap3
  151:                                                                                                                else draw right-to-down line
  152:                                                                                                                if outupdown (means what ??) then
  153:                                                                                                                  draw top-to-left line, set colmap2 and colmap3
  154:                                                                                                                else draw left-to-down line
  155:                                                                                                              if object is a 'v'ertical object
  156:                                                                                                                set left to display column and USE THIS as the position
  157:                                                                                                                if there is another element found in the colmap
  158:                                                                                                                  it must be horizontal so draw top-down-right-left intersection ('tdrl')
  159:                                                                                                                else draw top-to-down or down-to-top depending on 'v'ertical object specification
  160:                                                                                                                set colmap2[left] and colmap3[left] to a plain vertical line
  161:                                                                                                              run through columns and draw cells
  162:                                  drawcell draws in edit mode html stuff  ------------------------------------- rtype is set to type of row, the cell is drawn with drawcell
  163:                                                                                                                then using colmap2 and colmap3 draw two more up-down elements
  164:                                                                                                                in rows below if rowtype is 2
  165: 
  166: 
  167: 
  168: 
  169: 
  170: 
  171: ***************
  172: joinres from A to B
  173: 
  174: calculate where in the middle of first object is a good place to insert outcoming path
  175: calculate where in the middle of second object is a good place to insert incoming path
  176: insert the ports based on the objects, the distance from middle of one object to other object, and direction
  177: if A is below B, then loop around..set updown!
  178: else set updown the other way
  179: if inrow equals outrow
  180:   just draw connecting horizontal element
  181: if updown one way then go from row to row finding good columns to go through (comingthru)
  182:      if there is NO GOOD COLUMN THEN INSERT A ROW! (insertrow)
  183: if updown the other way then go from row to row finding good columns to go through (comingthru)
  184:      if there is NO GOOD COLUMN THEN INSERT A ROW! (insertrow)
  185: 
  186: ***************
  187: comingthru
  188: see where you can bulldoze..more to write here
  189: 
  190: ***************
  191: insertrow
  192: make sure you can bulldoze..more to write here
  193: 
  194: 
  195: Help Documentation
  196: on RAT
  197: 
  198: Developer Documentation
  199: on RAT
  200: 
  201: 
  202: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>