Changeset 80 for trunk/src/org/expeditee/actions/Simple.java
- Timestamp:
- 05/30/08 10:14:43 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/actions/Simple.java
r78 r80 8 8 import java.util.ArrayList; 9 9 import java.util.Collection; 10 import java.util.HashMap; 10 11 import java.util.LinkedList; 11 12 import java.util.List; 13 import java.util.Map; 12 14 import java.util.Random; 13 15 … … 63 65 private static final String DEFAULT_FRAME = "$fp."; 64 66 67 private static final String DEFAULT_ASSOCIATION = "$ap."; 68 65 69 private static final String EXIT_TEXT = "exitall"; 66 70 … … 121 125 List<String> actions = new ArrayList<String>(); 122 126 actions.add(RUN_FRAME_ACTION); 123 newSimpleTest.getTitle ().setActions(actions);127 newSimpleTest.getTitleItem().setActions(actions); 124 128 FrameUtils.DisplayFrame(newSimpleTest, true); 125 129 FrameGraphics.DisplayMessage("New test created"); … … 131 135 next = FrameIO.LoadNext(next); 132 136 } while (next != null 133 && (next.getTitle () == null || !RUN_FRAME_ACTION134 .equalsIgnoreCase(next.getTitle ().getFirstAction())));137 && (next.getTitleItem() == null || !RUN_FRAME_ACTION 138 .equalsIgnoreCase(next.getTitleItem().getFirstAction()))); 135 139 FrameUtils.DisplayFrame(next, true); 136 140 } … … 141 145 prev = FrameIO.LoadPrevious(prev); 142 146 } while (prev != null 143 && (prev.getTitle () == null || !RUN_FRAME_ACTION144 .equalsIgnoreCase(prev.getTitle ().getFirstAction())));147 && (prev.getTitleItem() == null || !RUN_FRAME_ACTION 148 .equalsIgnoreCase(prev.getTitleItem().getFirstAction()))); 145 149 146 150 FrameUtils.DisplayFrame(prev, true); … … 153 157 // check if its a test frame 154 158 if (next != null 155 && next.getTitle () != null156 && RUN_FRAME_ACTION.equalsIgnoreCase(next.getTitle ()159 && next.getTitleItem() != null 160 && RUN_FRAME_ACTION.equalsIgnoreCase(next.getTitleItem() 157 161 .getFirstAction())) { 158 162 lastTest = next; … … 191 195 if (nextFrame == null) 192 196 continue; 193 Item frameTitle = nextFrame.getTitle ();197 Item frameTitle = nextFrame.getTitleItem(); 194 198 if (frameTitle == null) 195 199 continue; … … 248 252 if (current.getLink() == null) { 249 253 current = current.copy(); 250 current.setLink(DisplayIO.getCurrentFrame().get FrameName());254 current.setLink(DisplayIO.getCurrentFrame().getName()); 251 255 } 252 256 … … 264 268 265 269 private static void FlagError(Item item) { 266 FrameUtils.DisplayFrame(item.getParent().get FrameName(), true);270 FrameUtils.DisplayFrame(item.getParent().getName(), true); 267 271 item.setSelectedMode(SelectedMode.Normal); 268 272 item.setSelectionColor(Color.CYAN); … … 342 346 Frame frame = i.getParent(); 343 347 344 if (i == frame.getTitle () || i == frame.getFrameNameItem()348 if (i == frame.getTitleItem() || i == frame.getNameItem() 345 349 || i.isAnnotation()) { 346 350 return false; … … 357 361 */ 358 362 private static String[] parseStatement(Text code) throws Exception { 359 String statement = code.getText NoList();363 String statement = code.getText(); 360 364 ArrayList<String> tokens = new ArrayList<String>(); 361 365 … … 420 424 // Add call to the start of the title if it doesnt exist 421 425 // This makes the call and signature tokens counts match 422 String procedureTitle = procedure.getTitle ().getFirstLine();426 String procedureTitle = procedure.getTitleItem().getFirstLine(); 423 427 if (!procedureTitle.toLowerCase().startsWith("call ")) 424 428 procedureTitle = "call " + procedureTitle; … … 588 592 throw new RuntimeException(e.getMessage()); 589 593 } 594 } else if (tokens[0].equals("setassociation")) { 595 assertMinParametreCount(tokens, 3); 596 597 Map map = (Map) context.getPointers().getVariable(tokens[1]) 598 .getValue(); 599 String attribute = context.getPrimitives().getStringValue( 600 tokens[2]); 601 String value = context.getPrimitives() 602 .getStringValue(tokens[3]); 603 map.put(attribute, value); 604 return Status.OK; 590 605 } else if (tokens[0].equals("setframevalue")) { 591 606 assertMinParametreCount(tokens, 3); … … 605 620 // Begin the search 606 621 for (Text text : targetFrame.getBodyTextItems(true)) { 607 String s = text.getText NoList().toLowerCase();622 String s = text.getText().toLowerCase(); 608 623 609 624 if (s.startsWith(targetAttribute)) { … … 697 712 Item item = (Item) context.getPointers().getVariable( 698 713 tokens[1]).getValue(); 699 item.setAction(context.getPrimitives().getVariable( tokens[2])700 .stringValue());714 item.setAction(context.getPrimitives().getVariable( 715 tokens[2]).stringValue()); 701 716 } else if (tokens[0].equals("setitemfillcolor")) { 702 717 assertVariableType(tokens[1], 1, SPointer.itemPrefix); … … 757 772 Text item = (Text) context.getPointers().getVariable(tokens[1]) 758 773 .getValue(); 759 List<String> itemText = item.getText ();774 List<String> itemText = item.getTextList(); 760 775 761 776 while (row >= itemText.size()) { … … 858 873 // Begin the search 859 874 for (Text text : targetFrame.getBodyTextItems(true)) { 860 String s = text.getText NoList().toLowerCase();875 String s = text.getText().toLowerCase(); 861 876 if (s.startsWith(targetAttribute)) { 862 877 attributeItem = text; 863 value = AttributeUtils. stripValue(s);878 value = AttributeUtils.getValue(s); 864 879 if (value.length() > 0) { 865 880 found = true; … … 880 895 found = true; 881 896 valueItem = text; 882 value = text.getText NoList();897 value = text.getText(); 883 898 break; 884 899 } … … 915 930 frameVar).getValue(); 916 931 context.getPrimitives().setValue(frameNameVar, 917 frame.get FrameName());932 frame.getName()); 918 933 return Status.OK; 919 934 } else if (tokens[0].startsWith("getframefilepath")) { … … 932 947 String log = SessionStats.getFrameEventList(); 933 948 Text t; 934 // try { 949 935 950 t = (Text) context.getPointers().getVariable(tokens[1]) 936 951 .getValue(); 937 952 t.setText(log); 938 // } catch (Exception e) {939 // t = new Text(-1, log);940 // context.getPointers().setObject(tokens[1], t);941 // }942 953 943 954 return Status.OK; 944 955 } 956 } else if (tokens[0].equals("getassociation")) { 957 assertMinParametreCount(tokens, 3); 958 Map map = (Map) context.getPointers().getVariable(tokens[1]) 959 .getValue(); 960 String attribute = context.getPrimitives().getStringValue( 961 tokens[2]); 962 String newValue = map.get(attribute).toString(); 963 context.getPrimitives().setValue(tokens[3], newValue); 964 return Status.OK; 945 965 } else if (tokens[0].startsWith("getcurrent")) { 946 966 if (tokens[0].equals("getcurrentframe")) { … … 954 974 if (tokens.length > 2) { 955 975 context.getPrimitives().setValue(tokens[2], 956 new SString(currentFrame.get FrameName()));976 new SString(currentFrame.getName())); 957 977 } 958 978 return Status.OK; … … 1017 1037 context.getPrimitives().setValue(tokens[2], 1018 1038 new SString(action)); 1019 } else if (tokens[0].equals("getitemfillcolor")) {1039 } else if (tokens[0].equals("getitemfillcolor")) { 1020 1040 assertVariableType(tokens[1], 1, SPointer.itemPrefix); 1021 1041 // assertPrimitiveType(tokens[2], 2); … … 1043 1063 tokens[2], 1044 1064 new SString((item instanceof Text) ? ((Text) item) 1045 .getText NoList() : ""));1065 .getText() : "")); 1046 1066 } else 1047 1067 throw new Exception("Unsupported getItem command: " … … 1209 1229 String s = getMessage(tokens, context, code.toString(), " ", 2); 1210 1230 for (int i = 0; i < s.length(); i++) { 1211 FrameKeyboardActions.processChar(s.charAt(i) );1231 FrameKeyboardActions.processChar(s.charAt(i), false); 1212 1232 Thread.sleep((int) (delay * 1000)); 1213 1233 } … … 1218 1238 .equals("type") ? " " : "", 1); 1219 1239 for (int i = 0; i < s.length(); i++) { 1220 FrameKeyboardActions.processChar(s.charAt(i) );1240 FrameKeyboardActions.processChar(s.charAt(i), false); 1221 1241 Thread.sleep(25); 1222 1242 } … … 1566 1586 tokens[1]).getValue(); 1567 1587 FrameIO.SuspendCache(); 1568 Frame freshCopy = FrameIO.LoadFrame(frameToCopy.get FrameName());1588 Frame freshCopy = FrameIO.LoadFrame(frameToCopy.getName()); 1569 1589 // Change the frameset if one was provided 1570 1590 if (tokens.length > 3) { … … 1658 1678 new SCharacter(nextChar)); 1659 1679 1680 return Status.OK; 1681 } else if (tokens[0].equals("createassociation")) { 1682 1683 String associationVar = DEFAULT_ASSOCIATION; 1684 1685 if (tokens.length > 0) { 1686 assertVariableType(tokens[1], 2, SPointer.associationPrefix); 1687 associationVar = tokens[1]; 1688 } 1689 Map<String, String> newMap = new HashMap<String, String>(); 1690 context.getPointers().setObject(associationVar, newMap); 1691 return Status.OK; 1692 } else if (tokens[0].equals("deleteassociation")) { 1693 1694 String associationVar = DEFAULT_ASSOCIATION; 1695 1696 if (tokens.length > 0) { 1697 assertVariableType(tokens[1], 2, SPointer.associationPrefix); 1698 associationVar = tokens[1]; 1699 } 1700 context.getPointers().delete(associationVar); 1660 1701 return Status.OK; 1661 1702 } else if (tokens[0].equals("openreadfile")) { … … 1847 1888 int count = 0; 1848 1889 if (item instanceof Text) 1849 count = countCharsInString(((Text) item).getTextNoList(), 1850 pattern); 1890 count = countCharsInString(((Text) item).getText(), pattern); 1851 1891 context.getPrimitives().setValue(tokens[3], new SInteger(count)); 1852 1892 return Status.OK; … … 2141 2181 } 2142 2182 2143 assertVariableType(tokens[ 1], 1, SPointer.itemPrefix);2144 assertVariableType(tokens[ 2], 2, SPointer.framePrefix);2183 assertVariableType(tokens[2], 2, SPointer.itemPrefix); 2184 assertVariableType(tokens[1], 1, SPointer.framePrefix); 2145 2185 Frame currFrame = (Frame) context.getPointers().getVariable( 2146 tokens[ 2]).getValue();2186 tokens[1]).getValue(); 2147 2187 // Create the ip variable 2148 Item frameName = currFrame.getFrameNameItem(); 2149 Item frameTitle = currFrame.getTitle(); 2188 Item frameTitle = currFrame.getTitleItem(); 2150 2189 2151 2190 for (Item i : currFrame.getItems()) { 2152 if (i == frame Name || i == frameTitle)2191 if (i == frameTitle) 2153 2192 continue; 2154 2193 if (!(itemType.isInstance(i))) 2155 2194 continue; 2156 2195 2157 context.getPointers().setObject(tokens[ 1], i);2196 context.getPointers().setObject(tokens[2], i); 2158 2197 Status status = RunFrameAndReportError(code, context); 2159 2198 // check if we need to exit this loop because of … … 2182 2221 context.getPrimitives().exp(tokens[1], tokens[2]); 2183 2222 } else if (tokens[0].equals("log")) { 2184 context.getPrimitives().log(tokens[ 1], tokens[2]);2223 context.getPrimitives().log(tokens[2], tokens[2]); 2185 2224 } else if (tokens[0].equals("log10")) { 2186 2225 context.getPrimitives().log10(tokens[1], tokens[2]); … … 2188 2227 context.getPrimitives().sqrt(tokens[1], tokens[2]); 2189 2228 } else if (tokens[0].equals("add")) { 2190 context.getPrimitives().add(tokens[ 1], tokens[2]);2229 context.getPrimitives().add(tokens[2], tokens[1]); 2191 2230 } else if (tokens[0].equals("subtract")) { 2192 context.getPrimitives().subtract(tokens[ 1], tokens[2]);2231 context.getPrimitives().subtract(tokens[2], tokens[1]); 2193 2232 } else if (tokens[0].equals("multiply")) { 2194 context.getPrimitives().multiply(tokens[ 1], tokens[2]);2233 context.getPrimitives().multiply(tokens[2], tokens[1]); 2195 2234 } else if (tokens[0].equals("divide")) { 2196 context.getPrimitives().divide(tokens[ 1], tokens[2]);2235 context.getPrimitives().divide(tokens[2], tokens[1]); 2197 2236 } else 2198 2237 throw new RuntimeException("Invalid statement:"); … … 2200 2239 } 2201 2240 } else if (tokens.length == 4) { 2241 if (tokens[0].equals("foreachassociation")) { 2242 assertExactParametreCount(tokens, 3); 2243 assertVariableType(tokens[1], 1, SPointer.associationPrefix); 2244 Map<String,String> map = (Map<String,String>) context.getPointers().getVariable( 2245 tokens[1]).getValue(); 2246 for(Map.Entry entry: map.entrySet()){ 2247 String value = entry.getValue().toString(); 2248 String key = entry.getKey().toString(); 2249 context.getPrimitives().setValue(tokens[2], key); 2250 context.getPrimitives().setValue(tokens[3], value); 2251 Status status = RunFrameAndReportError(code, context); 2252 // check if we need to exit this loop because of 2253 // statements in the code that was run 2254 if (status == Status.Exit || status == Status.Return) 2255 return status; 2256 else if (status == Status.Break) 2257 return Status.OK; 2258 } 2259 return Status.OK; 2260 } 2261 2202 2262 if (Primitives.isPrimitive(tokens[1]) 2203 2263 && Primitives.isPrimitive(tokens[2])
Note:
See TracChangeset
for help on using the changeset viewer.