// See comment in createericlist regarding HandleViewParams private /*synchronized*/ String HandleViewParams( String tempString, LinkedList tempList, StringTokenizer st) throws VisualizerLoadException { while (tempString.toUpperCase().startsWith("VIEW")) { StringTokenizer t = new StringTokenizer(tempString, " \t"); String s1 = t.nextToken().toUpperCase(); String s2 = t.nextToken().toUpperCase(); String s3 = t.nextToken(); // HERE PROCESS URL's AS YOU DID QUESTIONS if (s2.compareTo("ALGO") == 0) { add_a_pseudocode_URL(s3); // System.out.println("Adding to urls: "+Snaps+":"+s3); // urlList.append(Snaps+1 +":"+s3); } else if (s2.compareTo("DOCS") == 0) { add_a_documentation_URL(s3); // System.out.println("Adding to urls: "+Snaps+":"+s3); // if (debug) System.out.println("Adding to urlList: "+Snaps+1+":"+s3); // urlList.append(Snaps+1 +":"+s3); } else if (s2.compareTo("SCALE") == 0) { GKS.scale(Format.atof(s3.toUpperCase()), tempList, this); } else if (s2.compareTo("WINDOWS") == 0) { GKS.windows(Format.atoi(s3.toUpperCase()), tempList, this); } else if (s2.compareTo("JUMP") == 0) { GKS.jump(Format.atoi(s3.toUpperCase()), tempList, this); } else throw (new VisualizerLoadException(s2 + " is invalid VIEW parameter")); tempString = st.nextToken(); } // if (urlList.size() == 0) // urlList.append("**"); return (tempString); }
// Responsible for loading the number of lines per node // Receives a line delimited tokenizer. It will only process one line of // that tokenizer. It must read that line, create a space/tab delimited // tokenizer from it, grab the number of lines per node from that tokenizer. // Structures that can contain additional information following the number // of lines per node (such as trees) should then override this generic // loadLinesPerNodeInfo with their own version of the method which will call // on the super version to get the actual lines per node and add additional // code to process the other information public void loadLinesPerNodeInfo(StringTokenizer st, LinkedList llist, draw d) throws VisualizerLoadException { String tempString, tempString2; if (st.hasMoreTokens()) tempString = st.nextToken(); else throw (new VisualizerLoadException("Expected lines per node - found end of string")); StringTokenizer t = new StringTokenizer(tempString, " \t"); if (t.hasMoreTokens()) tempString2 = t.nextToken(); else throw (new VisualizerLoadException("Expected lines per node - found " + tempString)); linespernode = Format.atoi(tempString2); xspacing = 1.5; yspacing = 1.5; if (t.hasMoreTokens()) tempString2 = t.nextToken(); else return; xspacing = Format.atof(tempString2); if (t.hasMoreTokens()) tempString2 = t.nextToken(); else return; yspacing = Format.atof(tempString2); }
public GTN getGTNode(StringTokenizer st, String s, int linesPerNode, LinkedList llist, draw d) throws EndOfSnapException, VisualizerLoadException { GTN gtn = new GTN(); if (s.equals("-1")) throw (new EndOfSnapException("End of Snap Shot Reached")); gtn.Glevel = Format.atoi(s); gtn.textInNode = getTextNode(st, linesPerNode, llist, d); return (gtn); }
public /*synchronized*/ Color colorSet(String values) { String temp; int x; Color c = Color.black; StringTokenizer st = new StringTokenizer(values); x = Format.atoi(st.nextToken()); if (x == 1) c = Color.black; else if (x == 2) c = Color.blue; else if (x == 6) c = Color.cyan; else if (x == 13) c = Color.darkGray; else if (x == 11) c = Color.gray; else if (x == 3) c = Color.green; else if (x == 9) c = Color.lightGray; else if (x == 5) c = Color.magenta; else if (x == 10) c = Color.orange; else if (x == 12) c = Color.pink; else if (x == 4) c = Color.red; else if (x == 8) c = Color.white; else if (x == 7) c = Color.yellow; else if (x < 0) c = new Color(-x); return c; }
// creates the list of snapshots public /*synchronized*/ obj dothis(String inputString) { /* Snapshot codes 29 - rectangle draw 2 - oval draw 5 - fill oval 6 - string 7 - line & text color 8 - fill color 9 - text color (possible to ignore) 10 - text height 11 - polydraw 4 - fill poly 14 - arc draw 30 - fill arc 12 - text style, centered horizontal/vertical ???? 45 - url. Note, when bring up multiple algorithms, the URL's for the most recently run algorithm are posted in the upper browser frame THE CODE BELOW WOULD INDICATE THIS IS 54, NOT 45 ???? 20 - number of windows. For static algorithms, 1, 2, 3, 4 have the obvious meaning. 21 - scale factor 22 - jump factor For 20, 21, 22, the last factor loaded is the one that will affect all snapshots in the show */ obj temp = new rectDraw("0 0 0 0", lineC); Object urlTest; String arrg; int graphic_obj_code = Format.atoi(inputString.substring(0, 3)); StringTokenizer tmp = null; switch (graphic_obj_code) { case 29: temp = new rectDraw(inputString.substring(3, (inputString.length())), lineC); break; case 2: temp = new ovalDraw(inputString.substring(3, (inputString.length())), lineC); break; case 5: temp = new fillOvalDraw(inputString.substring(3, (inputString.length())), fillC); break; case 6: temp = new stringDraw( inputString.substring(3, (inputString.length())), textC, LineH, LineV, fontMult); // System.out.println(" printing " + inputString); break; case 7: lineC = colorSet(inputString.substring(3, (inputString.length()))); textC = lineC; break; case 8: tmp = new StringTokenizer(inputString.substring(2, (inputString.length()))); fillC = colorSet(tmp.nextToken()); break; case 9: textC = colorSet(inputString.substring(3, (inputString.length()))); break; case 10: StringTokenizer st = new StringTokenizer(inputString.substring(3, (inputString.length()))); fontMult = Format.atof(st.nextToken()); // System.out.println("setting fontMult= " + fontMult); break; // TLN changed on 10/14/97 to accomodate condensed prm files // temp=new textHeight(inputString.substring(3,(inputString.length()))); case 11: temp = new polyDraw(inputString.substring(3, (inputString.length())), lineC); break; case 4: temp = new fillPolyDraw(inputString.substring(3, (inputString.length())), fillC); break; case 64: temp = new animated_fillPolyDraw(inputString.substring(3, (inputString.length())), fillC); break; case 14: temp = new arcDraw(inputString.substring(3, (inputString.length())), lineC); break; case 30: temp = new fillArcDraw(inputString.substring(3, (inputString.length())), fillC); break; case 12: tmp = new StringTokenizer(inputString.substring(3, (inputString.length()))); LineH = Format.atoi(tmp.nextToken()); LineV = Format.atoi(tmp.nextToken()); break; case 20: tmp = new StringTokenizer(inputString.substring(3, (inputString.length()))); // graphWin.setNumViews(Format.atoi(tmp.nextToken())); // multiTrigger=true; break; case 21: tmp = new StringTokenizer(inputString.substring(3, (inputString.length()))); double tempFloat = Format.atof(tmp.nextToken()); zoom = tempFloat; break; case 22: tmp = new StringTokenizer(inputString.substring(3, (inputString.length()))); // graphWin.setJump(Format.atoi(tmp.nextToken())); // This is now a noop in // gaigs2 break; case 54: tmp = new StringTokenizer(inputString.substring(3, (inputString.length()))); // if (tmp.hasMoreElements()){ // urlTest=tmp.nextToken(); // urlList.append(urlTest); // } // else{ // tmp=new StringTokenizer("**"); // urlTest=tmp.nextToken(); // urlList.append(urlTest); // } break; } // end switch return (temp); }
public void loadStructure(StringTokenizer st, LinkedList llist, draw d) throws VisualizerLoadException { String s; GTN gtn = new GTN(); Dne = false; // For handling EOSS in the recursive procedure *) s = st.nextToken(); if (!(st.hasMoreTokens())) throw (new VisualizerLoadException( "Encountered Bad Data When Expecting number of total nodes")); nn = Format.atoi(s); numNodes = nn; s = st.nextToken(); if (!(st.hasMoreTokens())) throw (new VisualizerLoadException( "Encountered Bad Data When Expecting number of total nodes")); path = Format.atoi(s); s = st.nextToken(); if (!(st.hasMoreTokens())) throw (new VisualizerLoadException( "Encountered Bad Data When Expecting number of total nodes")); weight = Format.atoi(s); s = st.nextToken(); if (!(st.hasMoreTokens())) throw (new VisualizerLoadException( "Encountered Bad Data When Expecting number of total nodes")); badCommand = Format.atoi(s); s = st.nextToken(); if (!(s.equals(newTree))) throw (new VisualizerLoadException("Encountered Bad Data When Expecting New Tree Delimeter")); while (!Dne && numNodes > 0) { if (st.hasMoreTokens()) s = st.nextToken(); else s = "-1"; try { gtn = getGTNode(st, s, linespernode, llist, d); numNodes--; } catch (EndOfSnapException e) { Dne = true; } if (!Dne) { buildGeneralTree(st, gtn, llist, d); // Build Tree *) nodelist.append(gtn); Dne = false; } } // loop that gets the final info values from the file for (int x = 0; x < 4; x++) { if (st.hasMoreTokens()) s = st.nextToken(); else throw (new VisualizerLoadException("End of data when expecting info")); if (x == 0) cpf = s; else if (x == 1) cpu = s; else if (x == 2) command = s; } }