[274945] [misc] CSSStyleDeclaration getStyle not working properly
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDeclarationItemParser.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDeclarationItemParser.java
index 6ea0a60..e596064 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDeclarationItemParser.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSDeclarationItemParser.java
@@ -863,7 +863,9 @@
bSpace = true;
}
else {
- buf.append(getText(region));
+ // [274945] Multiple regions should have the spaces between collapsed
+ String text = i.hasNext() ? getCollapsedText(region) : getText(region);
+ buf.append(text);
bSpace = false;
}
}
@@ -1072,6 +1074,15 @@
}
}
+ private String getCollapsedText(ITextRegion region) {
+ if (fParentRegion == null)
+ return ""; //$NON-NLS-1$
+ StringBuffer text = new StringBuffer(fParentRegion.getFullText(region));
+ if (region.getLength() > region.getTextLength())
+ text.replace(region.getTextLength(), region.getLength(), " "); //$NON-NLS-1$
+ return text.toString();
+ }
+
private String getText(ITextRegion region) {
return (fParentRegion != null) ? fParentRegion.getText(region) : ""; //$NON-NLS-1$
}
diff --git a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java
index c569e91..3e5caef 100644
--- a/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java
+++ b/bundles/org.eclipse.wst.css.core/src/org/eclipse/wst/css/core/internal/document/CSSRegionContainer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -49,20 +49,19 @@
for (int i = 0; i < regions.size(); i++) {
ITextRegion current = regions.get(i);
if (bIn) {
- source.append(fParentRegion.getText(current));
+ source.append(fParentRegion.getFullText(current));
if (current == fLastRegion)
break;
}
else {
if (current == fFirstRegion) {
bIn = true;
- source.append(fParentRegion.getText(current));
+ source.append(fParentRegion.getFullText(current));
if (current == fLastRegion)
break;
}
}
}
-
return source.toString();
}