Revision 2203 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.swing/org.gvsig.vectorediting.swing.impl/src/main/java/org/gvsig/vectorediting/swing/impl/DefaultEditingContext.java
DefaultEditingContext.java | ||
---|---|---|
28 | 28 |
import java.awt.Component; |
29 | 29 |
import java.lang.ref.WeakReference; |
30 | 30 |
import java.lang.reflect.InvocationTargetException; |
31 |
import java.util.AbstractList; |
|
31 | 32 |
import java.util.ArrayList; |
33 |
import java.util.List; |
|
32 | 34 |
import java.util.Set; |
33 | 35 |
import java.util.Stack; |
34 | 36 |
import java.util.prefs.PreferenceChangeEvent; |
... | ... | |
92 | 94 |
import org.apache.commons.lang3.StringUtils; |
93 | 95 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
94 | 96 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
97 |
import org.gvsig.expressionevaluator.SymbolTable; |
|
95 | 98 |
import org.gvsig.fmap.dal.DataTypes; |
96 | 99 |
|
97 | 100 |
import org.gvsig.fmap.dal.EditingNotification; |
... | ... | |
965 | 968 |
} |
966 | 969 |
return false; |
967 | 970 |
} |
971 |
|
|
972 |
private static EditingContextSymbolTable contextSymbolTable = new EditingContextSymbolTable(); |
|
968 | 973 |
|
969 | 974 |
private Point parsePoint(String response) throws ParsePointException { |
970 |
TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager(); |
|
971 |
TemporaryStorageGroup storage = manager.create("Points",Point.class); |
|
972 |
|
|
973 |
MutableSymbolTable symbolTable = ExpressionUtils.createSymbolTable(); |
|
974 |
symbolTable.setVar("LAST_POINT_ADDED", storage.get("LAST_POINT_ADDED_IN_EDTING")); |
|
975 |
|
|
976 | 975 |
try { |
977 |
Object x = ExpressionUtils.evaluate(symbolTable, response);
|
|
976 |
Object x = ExpressionUtils.evaluate(contextSymbolTable, response);
|
|
978 | 977 |
if( x instanceof Point ) { |
979 |
storage.put("LAST_POINT_ADDED_IN_EDTING", x);
|
|
978 |
contextSymbolTable.addPoint((Point) x);
|
|
980 | 979 |
return (Point) x; |
981 | 980 |
} |
982 | 981 |
} catch(Exception ex) { |
... | ... | |
984 | 983 |
} |
985 | 984 |
String s = "ST_MakePoint("+response+")"; |
986 | 985 |
try { |
987 |
Object x = ExpressionUtils.evaluate(symbolTable, s);
|
|
986 |
Object x = ExpressionUtils.evaluate(contextSymbolTable, s);
|
|
988 | 987 |
if( x instanceof Point ) { |
989 |
storage.put("LAST_POINT_ADDED_IN_EDTING", x);
|
|
988 |
contextSymbolTable.addPoint((Point) x);
|
|
990 | 989 |
return (Point) x; |
991 | 990 |
} |
992 | 991 |
} catch(Exception ex) { |
... | ... | |
996 | 995 |
} |
997 | 996 |
|
998 | 997 |
private Double parseValue(String response) throws ParseValueException { |
999 |
TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager(); |
|
1000 |
TemporaryStorageGroup storage = manager.create("Points",Point.class); |
|
1001 |
|
|
1002 |
MutableSymbolTable symbolTable = ExpressionUtils.createSymbolTable(); |
|
1003 |
symbolTable.setVar("LAST_POINT_ADDED", storage.get("LAST_POINT_ADDED_IN_EDTING")); |
|
1004 |
|
|
1005 | 998 |
try { |
1006 |
Object x = ExpressionUtils.evaluate(symbolTable, response);
|
|
999 |
Object x = ExpressionUtils.evaluate(contextSymbolTable, response);
|
|
1007 | 1000 |
if( x instanceof Double ) { |
1008 | 1001 |
return (Double) x; |
1009 | 1002 |
} |
Also available in: Unified diff