source: trunk/src/org/expeditee/simple/ExpediteeJEP.java@ 161

Last change on this file since 161 was 161, checked in by ra33, 16 years ago

Adding calculation stuff...

File size: 1.5 KB
Line 
1package org.expeditee.simple;
2
3import java.text.NumberFormat;
4import java.util.Observable;
5import java.util.Observer;
6
7import org.expeditee.gui.AttributeUtils;
8import org.expeditee.gui.AttributeValuePair;
9import org.expeditee.gui.Frame;
10import org.expeditee.items.Text;
11import org.nfunk.jep.JEP;
12import org.nfunk.jep.Variable;
13
14public class ExpediteeJEP extends JEP {
15 Observer observer = new Observer() {
16 private String _attribute = "";
17
18 public void update(Observable ob, Object o) {
19 _attribute = ((Variable) o).getName() + ": ";
20 }
21
22 @Override
23 public String toString() {
24 return _attribute;
25 }
26 };
27
28 public ExpediteeJEP() {
29 super();
30 addStandardFunctions();
31 addStandardConstants();
32 setImplicitMul(true);
33 setAllowAssignment(true);
34 setAllowUndeclared(true);
35 }
36
37 public void addObserver() {
38 getSymbolTable().addObserver(observer);
39 getSymbolTable().addObserverToExistingVariables(observer);
40 }
41
42 public String getResult() {
43 Double result = getValue();
44 if(result.isNaN()){
45 return null;
46 }
47 NumberFormat nf = NumberFormat.getInstance();
48 nf.setMinimumFractionDigits(0);
49 nf.setMaximumFractionDigits(15);
50 return observer.toString() + nf.format(result);
51 }
52
53 public void addVariables(Frame frame) {
54 if(frame == null)
55 return;
56 // Check for variables
57 for (Text t : frame.getTextItems()) {
58 AttributeValuePair avp = AttributeUtils.getPair(t.getText());
59 if (avp != null) {
60 addVariable(avp.getAttribute(), avp
61 .getDoubleValue());
62 }
63 }
64 }
65}
Note: See TracBrowser for help on using the repository browser.