Revision 2609
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 | ||
---|---|---|
42 | 42 |
import javax.swing.JOptionPane; |
43 | 43 |
import javax.swing.SwingUtilities; |
44 | 44 |
import org.apache.commons.lang3.StringUtils; |
45 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
|
46 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
|
45 | 47 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
46 | 48 |
import org.gvsig.fmap.dal.DataTypes; |
47 | 49 |
import org.gvsig.fmap.dal.EditingNotification; |
... | ... | |
70 | 72 |
import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior; |
71 | 73 |
import org.gvsig.fmap.mapcontrol.tools.CompoundBehavior; |
72 | 74 |
import org.gvsig.tools.ToolsLocator; |
75 |
import org.gvsig.tools.bookmarksandhistory.Bookmark; |
|
73 | 76 |
import org.gvsig.tools.dataTypes.Coercion; |
74 | 77 |
import org.gvsig.tools.i18n.I18nManager; |
78 |
import org.gvsig.tools.locator.LocatorException; |
|
75 | 79 |
import org.gvsig.tools.observer.BaseNotification; |
76 | 80 |
import org.gvsig.tools.observer.Notification; |
77 | 81 |
import org.gvsig.tools.observer.ObservableHelper; |
... | ... | |
992 | 996 |
private static EditingContextSymbolTable contextSymbolTable = new EditingContextSymbolTable(); |
993 | 997 |
|
994 | 998 |
private Point parsePoint(String response) throws ParsePointException { |
999 |
response = fixResponseUsingBookmarks(response); |
|
1000 |
|
|
995 | 1001 |
try { |
996 | 1002 |
Object x = ExpressionUtils.evaluate(contextSymbolTable, response); |
997 | 1003 |
if( x instanceof Point ) { |
... | ... | |
1015 | 1021 |
} |
1016 | 1022 |
|
1017 | 1023 |
private Double parseValue(String response) throws ParseValueException { |
1024 |
response = fixResponseUsingBookmarks(response); |
|
1025 |
|
|
1018 | 1026 |
try { |
1019 | 1027 |
Object x = ExpressionUtils.evaluate(contextSymbolTable, response); |
1020 | 1028 |
if( x instanceof Double ) { |
... | ... | |
1031 | 1039 |
|
1032 | 1040 |
} |
1033 | 1041 |
|
1042 |
protected String fixResponseUsingBookmarks(String response) throws LocatorException { |
|
1043 |
if(StringUtils.startsWith(response, "$")){ |
|
1044 |
int n = StringUtils.indexOf(response, " "); |
|
1045 |
if(n>0){ |
|
1046 |
String name = StringUtils.left(response, n); |
|
1047 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager(); |
|
1048 |
Bookmark bookmark = manager.getBookmarks().get(name); |
|
1049 |
if(bookmark != null){ |
|
1050 |
response = name+"("+response.substring(n)+")"; |
|
1051 |
} |
|
1052 |
} |
|
1053 |
} |
|
1054 |
return response; |
|
1055 |
} |
|
1056 |
|
|
1034 | 1057 |
protected void refreshMenusAndToolBars() { |
1035 | 1058 |
if (!SwingUtilities.isEventDispatchThread()) { |
1036 | 1059 |
SwingUtilities.invokeLater(new Runnable() { |
Also available in: Unified diff