use of org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty in project webtools.sourceediting by eclipse.
the class BackgroundPositionXSubStyleAdapter method get.
/**
*/
public String get(ICSS2Properties properties) {
String str = null;
Object obj = properties.get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION));
if (obj != null) {
PropCMProperty propX = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X);
PropCMProperty propY = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y);
if (obj instanceof ICSSValueList) {
ICSSValueList list = (ICSSValueList) obj;
ICSSValue value = (ICSSValue) list.item(0);
if (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) {
ICSSPrimitiveValue prim = (ICSSPrimitiveValue) value;
if (prim.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) {
// check not top or bottom
if (!propX.canHave(prim.getStringValue()) && propY.canHave(prim.getStringValue())) {
// case order is vertical -> horizontal
value = (ICSSValue) list.item(1);
}
}
}
str = value.getCSSValueText();
} else if (obj instanceof ICSSValue) {
str = ((ICSSValue) obj).getCSSValueText();
if (str.equalsIgnoreCase(IValID.V_BOTTOM) || str.equalsIgnoreCase(IValID.V_TOP))
// $NON-NLS-1$
str = "";
} else {
str = obj.toString();
CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, str);
CSSTextToken[] tokens = parser.getTokens();
tokens = correctMeaningToken(tokens);
if (tokens.length == 0)
// $NON-NLS-1$
str = "";
else if (tokens.length == 1 && (tokens[0].image.equalsIgnoreCase(IValID.V_BOTTOM) || tokens[0].image.equalsIgnoreCase(IValID.V_TOP)))
// $NON-NLS-1$
str = "";
else
str = tokens[0].image;
}
}
// $NON-NLS-1$
return (str != null) ? str : "";
}
use of org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty in project webtools.sourceediting by eclipse.
the class BorderRightShorthandAdapter method expand.
/**
*/
public boolean expand(String source, CSSPropertyContext dest) {
CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source);
CSSTextToken[] tokens = parser.getTokens();
if (tokens.length <= 0) {
return false;
}
// $NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
String color = "", style = "", width = "";
PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR);
PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE);
PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH);
for (int i = 0; i < tokens.length; i++) {
if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) {
if (propStyle.canHave(tokens[i].image))
style = tokens[i].image;
else if (propWidth.canHave(tokens[i].image))
width = tokens[i].image;
else if (propColor.canHave(tokens[i].image))
color = tokens[i].image;
} else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) {
width = tokens[i].image;
} else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) {
color = tokens[i].image;
} else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) {
StringBuffer buf = new StringBuffer();
while (i < tokens.length) {
if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) {
i++;
continue;
}
buf.append(tokens[i].image);
if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE)
break;
}
i--;
color = buf.toString();
}
}
dest.set(propColor.getName(), color);
dest.set(propStyle.getName(), style);
dest.set(propWidth.getName(), width);
return true;
}
use of org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty in project webtools.sourceediting by eclipse.
the class BorderRightShorthandAdapter method extract.
/**
*/
public String extract(String source, PropCMProperty propDest) {
CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source);
CSSTextToken[] tokens = parser.getTokens();
if (tokens.length <= 0) {
return null;
}
String color = null, style = null, width = null;
PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_COLOR);
PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_STYLE);
PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_RIGHT_WIDTH);
for (int i = 0; i < tokens.length; i++) {
if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) {
if (propStyle.canHave(tokens[i].image))
style = tokens[i].image;
else if (propWidth.canHave(tokens[i].image))
width = tokens[i].image;
else if (propColor.canHave(tokens[i].image))
color = tokens[i].image;
} else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) {
width = tokens[i].image;
} else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) {
color = tokens[i].image;
} else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) {
StringBuffer buf = new StringBuffer();
while (i < tokens.length) {
if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) {
i++;
continue;
}
buf.append(tokens[i].image);
if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE)
break;
}
i--;
color = buf.toString();
}
}
if (propColor == propDest)
return color;
else if (propStyle == propDest)
return style;
else if (propWidth == propDest)
return width;
else
return null;
}
use of org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty in project webtools.sourceediting by eclipse.
the class BackgroundPositionYSubStyleAdapter method get.
/**
*/
public String get(ICSS2Properties properties) {
String str = null;
Object obj = properties.get(PropCMProperty.getInstanceOf(PropCMProperty.P_BG_POSITION));
if (obj != null) {
PropCMProperty propX = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_X);
PropCMProperty propY = PropCMSubProperty.getInstanceOf(PropCMSubProperty.PSUB_BG_POSITION_Y);
if (obj instanceof ICSSValueList) {
ICSSValueList list = (ICSSValueList) obj;
int index = 1;
ICSSValue value = (ICSSValue) list.item(0);
if (value.getCssValueType() == CSSValue.CSS_PRIMITIVE_VALUE) {
ICSSPrimitiveValue prim = (ICSSPrimitiveValue) value;
if (prim.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) {
// check not top or bottom
if (!propX.canHave(prim.getStringValue()) && propY.canHave(prim.getStringValue())) {
// case order is vertical -> horizontal
index = 0;
}
}
}
str = ((ICSSValue) list.item(index)).getCSSValueText();
} else if (obj instanceof ICSSValue) {
str = ((ICSSValue) obj).getCSSValueText();
if (!str.equalsIgnoreCase(IValID.V_BOTTOM) && !str.equalsIgnoreCase(IValID.V_TOP))
// $NON-NLS-1$
str = "";
} else {
str = obj.toString();
CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, str);
CSSTextToken[] tokens = parser.getTokens();
tokens = correctMeaningToken(tokens);
if (tokens.length == 1 && (tokens[0].image.equalsIgnoreCase(IValID.V_BOTTOM) || tokens[0].image.equalsIgnoreCase(IValID.V_TOP)))
str = tokens[0].image;
else if (tokens.length > 1)
str = tokens[1].image;
else
// $NON-NLS-1$
str = "";
}
}
// $NON-NLS-1$
return (str != null) ? str : "";
}
use of org.eclipse.wst.css.core.internal.contentmodel.PropCMProperty in project webtools.sourceediting by eclipse.
the class BorderBottomShorthandAdapter method extract.
/**
*/
public String extract(String source, PropCMProperty propDest) {
CSSTextParser parser = new CSSTextParser(CSSTextParser.MODE_DECLARATION_VALUE, source);
CSSTextToken[] tokens = parser.getTokens();
if (tokens.length <= 0) {
return null;
}
String color = null, style = null, width = null;
PropCMProperty propColor = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_COLOR);
PropCMProperty propStyle = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_STYLE);
PropCMProperty propWidth = PropCMProperty.getInstanceOf(PropCMProperty.P_BORDER_BOTTOM_WIDTH);
for (int i = 0; i < tokens.length; i++) {
if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_IDENT) {
if (propStyle.canHave(tokens[i].image))
style = tokens[i].image;
else if (propWidth.canHave(tokens[i].image))
width = tokens[i].image;
else if (propColor.canHave(tokens[i].image))
color = tokens[i].image;
} else if (org.eclipse.wst.css.core.internal.util.CSSUtil.isLength(tokens[i]) || tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_NUMBER) {
width = tokens[i].image;
} else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_HASH) {
color = tokens[i].image;
} else if (tokens[i].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_FUNCTION) {
StringBuffer buf = new StringBuffer();
while (i < tokens.length) {
if (tokens[i].kind == CSSRegionContexts.CSS_COMMENT) {
i++;
continue;
}
buf.append(tokens[i].image);
if (tokens[i++].kind == CSSRegionContexts.CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE)
break;
}
i--;
color = buf.toString();
}
}
if (propColor == propDest)
return color;
else if (propStyle == propDest)
return style;
else if (propWidth == propDest)
return width;
else
return null;
}
Aggregations