--- rat/client/Attic/code.html 2000/05/25 12:14:01 1.3 +++ rat/client/Attic/code.html 2000/08/24 15:04:44 1.12 @@ -8,7 +8,8 @@ Resource Assembly Tool 9/1,9/2,9/4,9/5,9/6, 1/7,1/8,1/10,1/14,1/15,1/16,1/21,1/22,1/29,1/30,1/31, 2/2,2/3,2/10,2/12,2/13,2/14,2/15,2/17,2/18,2/19,2/20,2/21,2/22, -5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24 +5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24,5/25, +6/7,6/8,6/9,6/10,6/12,6/15,7/4,7/26,7/28,7/31,8/5,8/19,8/24 Gerd Kortemeyer with Scott Harrison --> @@ -20,7 +21,7 @@ var row=new Array(); var maxrow=-1; var col=new Array(); var maxcol=-1; -var lastempty=-2; + var colmap=new Array(); var colmap2=new Array(); var colmap3=new Array(); @@ -46,25 +47,37 @@ var notclear=0; var linkmode=0; var lastinfo=''; var graphdef='no'; +var mode=''; var mainrun=0; var tablemode=0; var mostrecent=0; +var zscale=3; var disrows=0; var discols=0; +var finishdone=0; +var tim=0; +var funny='|'; +var reqaction=''; +var canceltim; + +var expense=0; + var data1=new Array(1024); var data2=new Array(1024); var data3=new Array(1024); var data4=new Array(1024); var data5=new Array(1024); +var inf; // ------------------------------------------------ Insert a row into the table function insertrow(j,ex1,ex2) { var kj; stored=0; + expense++; expense++; objects1=''; objects2=''; for (kj=0;kj<=maxrow;kj++) { @@ -210,6 +223,7 @@ function insertcol(j) { if ( col[kj]>j ) { col[kj]++; } } maxcol++; + expense++; expense++; col[maxcol]=j+1; } @@ -333,7 +347,6 @@ function comingthru (jid,kid,dkid) { function insertport (obj1,d,inout,linkobj) { - var k; var port; var revport; stored=0; data1=obj[obj1].split('&'); @@ -412,6 +425,7 @@ function insertport (obj1,d,inout,linkob function addobj(kjid,objs) { stored=0; + expense++; if (rowcont[kjid]!='') { rowcont[kjid]+=':'; } rowcont[kjid]+=obj.length; obj[obj.length]=objs; @@ -471,6 +485,7 @@ function delobj(obj1) { } } } + obj[obj1]=''; } // --------------------------------------------------------- Garbage collection @@ -480,13 +495,7 @@ function cleanup () { var j,kj,i; disrows=0; discols=0; - - if (lastempty!=obj.length) { - insertrow(maxrow); - insertcol(maxcol); - addobj(maxrow,'e&'+maxcol); - lastempty=obj.length; - } + var emptyspots=0; for (kj=0;kj<=maxcol;kj++) { data1[kj]=0; } for (kj=0;kj<=maxrow;kj++) { @@ -510,6 +519,7 @@ function cleanup () { } if (obj[colmap[j]].substring(0,2)=='b&') { data1[j]=2; + if (colmap[maxcol]==0) { emptyspots++; } rowtype[kj]=2; } } @@ -524,6 +534,16 @@ function cleanup () { if (rowtype[j]==2) { disrows+=3; } if (rowtype[j]==1) { disrows+=1; } } + if (emptyspots==0) { + insertrow(maxrow); + insertcol(maxcol); + addobj(maxrow,'e&'+maxcol); + discols++; + disrows++; + rowtype[maxrow]=2; + coltype[maxcol]=2; + } + } // -------------------------------------------- Delete a condition from a block @@ -535,7 +555,11 @@ function delcond(obj1,colid) { obj[obj1]=data3[0]+'&'+data3[1]; for (k=2;k'); if (what!='') { @@ -838,14 +907,29 @@ function drawcell (rtype,ctype,what,cm,o } if (what=='r:') { parent.mapout.document.write - (''); + (''); } else { if (what=='c:') { parent.mapout.document.write - (''); + (''); } else { - parent.mapout.document.write - (''); + if (what=='rs:') { + parent.mapout.document.write + (''); + } else { + if (what=='rf:') { + parent.mapout.document.write + (''); + } else { + parent.mapout.document.write + (''); + } + } } } if (obj1!='') { @@ -862,16 +946,37 @@ function drawcell (rtype,ctype,what,cm,o parent.mapout.document.write ('onMouseOver="parent.code.infoclear();">'); parent.mapout.document.write - (''); + ( + ''); } parent.mapout.document.write(''); } } +// --------------------------------------------------------- Color of resources + +function rescolor (ext,typ) { + var rc; var gc; var bc; + if (ext=='true') { bc='55'; } else { bc='99'; } + if (typ=='mandatory') { rc='FF'; } else { rc='BB'; } + if (typ=='optional') { gc='BB'; } else { gc='FF'; } + if ((typ=='start') || (typ=='finish')) { rc='AA'; gc='AA'; bc='FF'; } + return '#'+rc+gc+bc; +} + +// -------------------------------------------------------- Color of conditions + +function condcolor(typ) { + if (typ=='stop') { return '#EEAAAA'; } + if (typ=='force') { return '#AAAAEE'; } + return '#EEEEAA'; +} + // ----------------------------------------------------------------- Draw a row function drawrow (jid) { -var j; var jk; var k; var rc; var gc; var bc; var ck; +var j; var jk; var k; var ck; var rtype; var objd1=new Array(); var objd2=new Array(); var notempty=new Array(); @@ -890,10 +995,8 @@ if (rowtype[jid]!=0) { data3=obj[data2[jk]].split('&'); if (data3[0]=='b') { data1=objcont[data2[jk]].split(':'); - if (data1[2]=='true') { bc='55'; } else { bc='11'; } - if (data1[3]=='mandatory') { rc='BB'; } else { rc='55'; } - if (data1[3]=='optional') { gc='66'; } else { gc='AA'; } - ck='#'+rc+gc+bc; + rtype=data1[3]; + ck=rescolor(data1[2],data1[3]); left=maxcol; leftin=maxcol; leftout=maxcol; @@ -917,9 +1020,7 @@ if (rowtype[jid]!=0) { if (data1[3]!=0) { colmap3[thiscol]='c:'; condtype=(objcont[data1[3]].split(':'))[1]; - colmap6[thiscol]='#FFFFAA'; - if (condtype=='stop') { colmap6[thiscol]='#FFAAAA'; } - if (condtype=='force') { colmap6[thiscol]='#AAAAFF'; } + colmap6[thiscol]=condcolor(condtype); objd2[thiscol]='c&' +data1[0]+'&'+data2[jk]+'&'+data1[2]+'&'+data1[3]; } else { @@ -932,7 +1033,15 @@ if (rowtype[jid]!=0) { } for (k=left;k<=right;k++) { notempty[k]=1; colmap5[k]=ck; } middle=Math.round((left+right)/2); - colmap[middle]='r:'; + if (rtype=='start') { + colmap[middle]='rs:'; + } else { + if (rtype=='finish') { + colmap[middle]='rf:'; + } else { + colmap[middle]='r:'; + } + } objd1[middle]+='r&'+data2[jk]; if (rightin>middle) { @@ -1011,7 +1120,10 @@ if (rowtype[jid]!=0) { } else { colmap[left]='rd'; colmap2[left]='utd'; colmap3[left]='utd'; } + notempty[left]=1; + notempty[right]=1; for (k=left+1;k'); - parent.mapout.document.writeln(''); + parent.mapout.document.writeln(''); for (k=0;k<=maxcol;k++) { drawcell(1,coltype[rcol[k]],colmap2[k],colmap5[k],objd2[k],jid,k, notempty[k]); } parent.mapout.document.writeln(''); - parent.mapout.document.writeln(''); + parent.mapout.document.writeln(''); for (k=0;k<=maxcol;k++) { drawcell(1,coltype[rcol[k]],colmap3[k],colmap6[k],objd2[k],jid,k, notempty[k]); @@ -1080,12 +1192,12 @@ function draw () { save(); rh[0]=0; - rh[1]=30; - rh[2]=60; + rh[1]=zscale*10; + rh[2]=zscale*20; cw[0]=0; - cw[1]=30; - cw[2]=60; - parent.mapout.document.clear(); + cw[1]=zscale*10; + cw[2]=zscale*20; + parent.mapout.document.open('text/html','replace'); parent.mapout.document.writeln(''); @@ -1093,17 +1205,24 @@ function draw () { if (graphdef=='no') { graphopt(); cleanup(); } for (k=0;k<=maxrow;k++) { rrow[row[k]]=k; } for (k=0;k<=maxcol;k++) { rcol[col[k]]=k; } - parent.mapout.document.writeln( + parent.mapout.document.writeln( ''); - for (kr=0;kr<=maxrow;kr++) { - message("Generating Output Row "+kr); - drawrow(rrow[kr]); - } + for (kr=0;kr<=maxrow;kr++) { + message("Generating Output Row "+kr); + drawrow(rrow[kr]); + } } else { message("Generating Table Output"); + for (k=0;k<=maxrow;k++) { rrow[row[k]]=k; } + for (k=0;k<=maxcol;k++) { rcol[col[k]]=k; } + parent.mapout.document.writeln( '
'); - tabledraw(); + if (tablemode==1) { + tabledraw(); + } else { + simpletabledraw(); + } } parent.mapout.document.writeln('
'); @@ -1117,21 +1236,31 @@ function draw () { function infoclear() { if (notclear!=1) { - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln (''); if (linkmode!=0) { + if (tablemode==0) { inf.document.writeln( ''); + } else { + inf.document.writeln( +''); + } } else { + if (tablemode==0) { inf.document.writeln( -'' + '' ); + } } inf.document.writeln('
'+ 'Link Mode
Click on a resource to link it with
'+ (objcont[linkmode].split(':'))[0]+ '
click anywhere else to cancel.
Link Mode
Click on a resource number to link it with
'+ + (objcont[linkmode].split(':'))[0]+'
'+ +'' + +'Cancel
Click to Edit
Click to insert resources, columns and rows
Click to Edit
Click in a light gray area
' + +'to insert resources, columns and rows
'); inf.document.close(); @@ -1142,13 +1271,27 @@ function infoclear() { } } +// ------------------------------------------------------------ Open inf window + +function infopen() { + var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; + inf=open("","infout",options); +} + +// -------------------------------------------------------- Do inf status check + +function infcheck() { + if (inf.closed) { + infopen(); + } +} + // --------------------------------------------------- Prints out resource info function info(infostr) { if ((editmode!=1) && (infostr!=lastinfo)) { notclear=1; - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln( ''+ @@ -1178,7 +1321,15 @@ function info(infostr) { data2=objcont[data1[1]].split(':'); inf.document.write(''); if (data2[2]=='true') { inf.document.write('External '); } - inf.document.write('Resource'); + if (data2[3]=='start') { + inf.document.writeln('Start'); + } else { + if (data2[3]=='finish') { + inf.document.writeln('Finish'); + } else { + inf.document.writeln('Resource'); + } + } if (data2[3]=='mandatory') { inf.document.write(' (Mandatory)'); } @@ -1238,6 +1389,8 @@ function insertreslink(infostr) { var tobj; var nobj; var cobj; + var cid; + var rid; data1=infostr.split('&'); data2=obj[data1[0]].split('&'); lnr=data2[data2.length-2]; @@ -1255,7 +1408,31 @@ function insertreslink(infostr) { dellink(lnr); newresource(rid,cid,'','','false','normal'); nobj=obj.length-1; + save(); + joinres(fobj,nobj,cobj); + save(); + joinres(nobj,tobj,0); +} + +// -------------------------------------------- Insert resource after condition + +function insertcondlink(cid,lnr) { + var fobj; + var tobj; + var nobj; + var cobj; + data3=objlinks[lnr].split(':'); + fobj=data3[0]; + tobj=data3[1]; + cobj=data3[2]; + rid=(obj[fobj].split('&'))[1]; + insertrow(row[rid]); + dellink(lnr); + newresource(maxrow,cid,'','','false','normal'); + nobj=obj.length-1; + save(); joinres(fobj,nobj,cobj); + save(); joinres(nobj,tobj,0); } @@ -1265,8 +1442,7 @@ function handler(infostr) { var k; editmode=1; notclear=1; - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln( ''+ @@ -1319,6 +1495,13 @@ function handler(infostr) { 'Delete Link'); + + inf.document.writeln('
Insert Resource Into Link'); + + } else { if (data1[0]=='r') { if (linkmode!=0) { @@ -1329,18 +1512,28 @@ function handler(infostr) { inf.document.writeln('Linked Resources'); draw(); } else { - inf.document.writeln('Resource'); data2=objcont[data1[1]].split(':'); + if (data2[3]=='start') { + inf.document.writeln('Start'); + } else { + if (data2[3]=='finish') { + inf.document.writeln('Finish'); + } else { + inf.document.writeln('Resource'); + } + } inf.document.write( '
'); + if ((data2[3]!='start') && (data2[3]!='finish')) { + inf.document.write('' +'' - +'' - +''); + } + inf.document.writeln( + '
Title:' +'
URL:' + +data2[0]+'">
URL:' +'
External:
' + +' Mandatory   Optional
Change to above values  ' +' Reset' +'
'); + if ((data2[3]!='start') && (data2[3]!='finish')) { inf.document.writeln( 'Delete Resource (preserving links)'); + } + if (data2[3]!='finish') { inf.document.writeln( '
Link Resource'); + } } } else { linkmode=0; @@ -1410,8 +1613,7 @@ function empty(rid,k) { editmode=1; notclear=1; linkmode=0; - var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; - var inf=open("","infout",options); + infcheck(); inf.document.clear(); inf.document.writeln( ''+ @@ -1476,7 +1678,7 @@ function save() { var k; if (graphdef=='yes') { parent.server.document.forms.storage.output.value='graphdef<:>yes'; - for (k=0;k'+obj[k]; } @@ -1498,7 +1700,9 @@ function save() { '<&>maxcol<:>'+maxcol; parent.server.document.forms.storage.output.value+= '<&>maxrow<:>'+maxrow; - } else { + parent.server.document.forms.storage.output.value+= + '<&>zscale<:>'+zscale; +} else { parent.server.document.forms.storage.output.value='graphdef<:>no'; } parent.server.document.forms.storage.output.value+= @@ -1525,24 +1729,31 @@ function save() { function graphreset() { + var k; + + for (k=0;k'+k+''+k+''); data2=obj[i].split('&'); parent.mapout.document.write(''); + if (data1[3]=='start') { + parent.mapout.document.writeln(''); + } + if (data1[3]=='finish') { + parent.mapout.document.writeln(''); + } parent.mapout.document.write( - ''); + ''); + if ((data1[3]!='start') && (data1[3]!='finish')) { parent.mapout.document.write( - '' +'' - +'' - +''); + } + parent.mapout.document.write( + ''); + '
Start
Finish
Title:
Title:
URL:
External:
Optional
' + +'
' +'Change to above values  ' +' Reset
'); + +'.reset()">Reset'); + } + parent.mapout.document.writeln('
'); + if ((data1[3]!='start') && (data1[3]!='finish')) { + parent.mapout.document.writeln( + '' ++'Delete Resource (cutting links)
' ++'' ++'Delete Resource (preserving links)
'); + } + if (data1[3]!='finish') { + parent.mapout.document.writeln( + ''+ + 'Link resource
'); for (j=2;j1) { if (data3[1]==nr) { - parent.mapout.document.writeln(''); } } } for (j=2;j1) { if ((data3[1]!=nr) && (data3[1]!=0)) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } parent.mapout.document.writeln( - ''); } } } parent.mapout.document.writeln( - '
Next
'+data3); + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + '
Next
'); + parent.mapout.document.writeln( + 'Edit'); parent.mapout.document.writeln('
To: '+robjs[data3[1]]+'
'); + '
To: '+robjs[data3[1]]+'
'); + parent.mapout.document.writeln( + 'Edit'); parent.mapout.document.writeln('
'); + insrestab(rrow[data2[1]],i,nr,data1[3]); + } } } +// ----------------------------------------------------- Insert Resource Output + +function insrestab(irow,be,af,typ) { + parent.mapout.document.writeln(''+ + '
' + +'Insert resource'); + if ((be!=-1) && (typ!='finish')) { + parent.mapout.document.writeln( + '' + +'Insert resource linked to from above
'); + } + if ((be!=-1) && (af!=-1) && (typ!='finish')) { + parent.mapout.document.writeln( + '' + +'Insert resource linked to from above and linking to below
'); + } + if (af!=-1) { + parent.mapout.document.writeln( + '' + +'Insert resource linking to below
'); + } + parent.mapout.document.writeln('
'); +} +// ---------------------------------------- Draw simple table instead of graph + +function simpletabledraw() { + var objsorted=new Array(); + var robjs=new Array(); + var iobjs=new Array(); + var k; + var i; + var j; + var nr; + var ck; + var cck; + var condid; + var sortstr=sortobjs(); + if (sortstr!='') { + objsorted=sortstr.split('&'); + for (k=0;k'+k+''); + data2=obj[i].split('&'); + parent.mapout.document.write(''); + if (data1[3]=='start') { + parent.mapout.document.writeln(''); + } + if (data1[3]=='finish') { + parent.mapout.document.writeln(''); + } + parent.mapout.document.write( + ''); + parent.mapout.document.write( + '' + +'
Start
Finish
Title:'+data1[0]+'
URL:'+data1[1]+'
'); + for (j=2;j1) { + if (data3[1]==nr) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + ''); + } + } + } + for (j=2;j1) { + if ((data3[1]!=nr) && (data3[1]!=0)) { + cck='#AAAAAA'; + if (data3[2]!=0) { + cck=condcolor((objcont[data3[2]].split(':'))[1]); + condid=data3[2]; + } else { + condid='-'; + } + parent.mapout.document.writeln( + ''); + } + } + } + parent.mapout.document.writeln('
Next
'); + parent.mapout.document.writeln('
To: '+robjs[data3[1]]+'
'); + parent.mapout.document.writeln('
'); + } + } else { + parent.mapout.document.writeln('No Resources'); + } +} + // ---------------------------------- Sort objects to straighten graph or table function sortobjs() { - message("Sorting Resources"); + message("Sorting Resources: "+funny); var k; var ij; var dol; @@ -1679,6 +2081,8 @@ function sortobjs() { } if (objsort.length==0) { return ''; } for (k=1;kallcolmax) { allcolmax=thiscolmax; } thiscolmax=1; } kj=rowcont.length-1; - obj[thisnewobj]='b&'+kj+'&'+thiscolmax+':0:0:0'; + obj[thisnewobj]='b&'+kj+'&'+thiscolmax+':0:0:0'; + if (thiscolmax>allcolmax) { allcolmax=thiscolmax; } } for (k=0;k