Author: scabanovich
Date: 2011-07-26 15:14:07 -0400 (Tue, 26 Jul 2011)
New Revision: 33209
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/PositionSearcher.java
Log:
JBIDE-9087
https://issues.jboss.org/browse/JBIDE-9087
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/PositionSearcher.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/PositionSearcher.java 2011-07-26
18:54:11 UTC (rev 33208)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/PositionSearcher.java 2011-07-26
19:14:07 UTC (rev 33209)
@@ -15,6 +15,7 @@
import org.jboss.tools.common.meta.XAttribute;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.loaders.XObjectLoader;
+import org.jboss.tools.common.model.loaders.impl.PropertiesLoader;
import org.jboss.tools.common.model.loaders.impl.SimpleWebFileLoader;
/**
@@ -39,6 +40,7 @@
int endPosition;
boolean selectAttributeName = false;
XModelObjectLoaderUtil util;
+ PropertiesLoader propertiesLoader = null;
public PositionSearcher() {}
@@ -60,6 +62,8 @@
SimpleWebFileLoader fileLoader = (SimpleWebFileLoader)loader;
fileLoader.createRootElement(f); // initializes namespaces if available.
util = fileLoader.getUtil();
+ } else if(loader instanceof PropertiesLoader) {
+ propertiesLoader = (PropertiesLoader)loader;
}
}
@@ -69,13 +73,26 @@
startPosition = -1;
endPosition = -1;
if(text == null || object == null) return;
- TagIterator it = new TagIterator();
- it.selectObject(object);
- if(it.startPos < 0 || it.endPos < it.startPos) return;
- startPosition = it.startPos;
- endPosition = it.endPos;
+ if(propertiesLoader != null) {
+ String name = object.getAttributeValue("name"); //$NON-NLS-1$
+ String dname = object.getAttributeValue("dirtyname"); //$NON-NLS-1$
+ String nvs = object.getAttributeValue("name-value-separator");
//$NON-NLS-1$
+ int i = text.indexOf(dname + nvs);
+ if(i >= 0) {
+ i = text.indexOf(name, i);
+ startPosition = i;
+ endPosition = i + name.length();
+ }
+
+ } else {
+ TagIterator it = new TagIterator();
+ it.selectObject(object);
+ if(it.startPos < 0 || it.endPos < it.startPos) return;
+ startPosition = it.startPos;
+ endPosition = it.endPos;
/// findTagEnd();
- selectAttribute();
+ selectAttribute();
+ }
}
private void selectAttribute() {