org.cobraparser.html.style.LocalJStyleProperties Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Cobra Show documentation
Show all versions of Cobra Show documentation
Cobra is the rendering engine designed for LoboBrowser
package org.cobraparser.html.style;
import java.util.ArrayList;
import java.util.List;
import org.cobraparser.html.domimpl.HTMLElementImpl;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
import cz.vutbr.web.css.NodeData;
import cz.vutbr.web.css.StyleSheet;
import cz.vutbr.web.domassign.DirectAnalyzer;
public final class LocalJStyleProperties extends JStyleProperties {
private final HTMLElementImpl element;
public LocalJStyleProperties(final HTMLElementImpl element) {
super(element, false);
this.element = element;
}
@Override
public void setAzimuth(final String azimuth) throws DOMException {
updateInlineStyle("azimuth", azimuth);
}
@Override
public void setBackground(final String background) throws DOMException {
updateInlineStyle("background", background);
}
@Override
public void setBackgroundAttachment(final String backgroundAttachment) throws DOMException {
updateInlineStyle("background-attachment", backgroundAttachment);
}
@Override
public void setBackgroundColor(final String backgroundColor) throws DOMException {
updateInlineStyle("background-color", backgroundColor);
}
@Override
public void setBackgroundImage(final String backgroundImage) throws DOMException {
updateInlineStyle("background-image", backgroundImage);
}
@Override
public void setBackgroundPosition(final String backgroundPosition) throws DOMException {
updateInlineStyle("background-position", backgroundPosition);
}
@Override
public void setBackgroundRepeat(final String backgroundRepeat) throws DOMException {
updateInlineStyle("background-repeat", backgroundRepeat);
}
@Override
public void setBorder(final String border) throws DOMException {
updateInlineStyle("border", border);
}
@Override
public void setBorderCollapse(final String borderCollapse) throws DOMException {
updateInlineStyle("border-collapse", borderCollapse);
}
@Override
public void setBorderColor(final String borderColor) throws DOMException {
updateInlineStyle("border-color", borderColor);
}
@Override
public void setBorderSpacing(final String borderSpacing) throws DOMException {
updateInlineStyle("border-spacing", borderSpacing);
}
@Override
public void setBorderStyle(final String borderStyle) throws DOMException {
updateInlineStyle("border-style", borderStyle);
}
@Override
public void setBorderTop(final String borderTop) throws DOMException {
updateInlineStyle("border-top", borderTop);
}
@Override
public void setBorderRight(final String borderRight) throws DOMException {
updateInlineStyle("border-right", borderRight);
}
@Override
public void setBorderBottom(final String borderBottom) throws DOMException {
updateInlineStyle("border-bottom", borderBottom);
}
@Override
public void setBorderLeft(final String borderLeft) throws DOMException {
updateInlineStyle("border-left", borderLeft);
}
@Override
public void setBorderTopColor(final String borderTopColor) throws DOMException {
updateInlineStyle("border-top-color", borderTopColor);
}
@Override
public void setBorderRightColor(final String borderRightColor) throws DOMException {
updateInlineStyle("border-right-color", borderRightColor);
}
@Override
public void setBorderBottomColor(final String borderBottomColor) throws DOMException {
updateInlineStyle("border-bottom-color", borderBottomColor);
}
@Override
public void setBorderLeftColor(final String borderLeftColor) throws DOMException {
updateInlineStyle("border-left-color", borderLeftColor);
}
@Override
public void setBorderTopStyle(final String borderTopStyle) throws DOMException {
updateInlineStyle("border-top-style", borderTopStyle);
}
@Override
public void setBorderRightStyle(final String borderRightStyle) throws DOMException {
updateInlineStyle("border-right-style", borderRightStyle);
}
@Override
public void setBorderBottomStyle(final String borderBottomStyle) throws DOMException {
updateInlineStyle("border-bottom-style", borderBottomStyle);
}
@Override
public void setBorderLeftStyle(final String borderLeftStyle) throws DOMException {
updateInlineStyle("border-left-style", borderLeftStyle);
}
@Override
public void setBorderTopWidth(final String borderTopWidth) throws DOMException {
updateInlineStyle("border-top-width", borderTopWidth);
}
@Override
public void setBorderRightWidth(final String borderRightWidth) throws DOMException {
updateInlineStyle("border-right-width", borderRightWidth);
}
@Override
public void setBorderBottomWidth(final String borderBottomWidth) throws DOMException {
updateInlineStyle("border-bottom-width", borderBottomWidth);
}
@Override
public void setBorderLeftWidth(final String borderLeftWidth) throws DOMException {
updateInlineStyle("border-left-width", borderLeftWidth);
}
@Override
public void setBorderWidth(final String borderWidth) throws DOMException {
updateInlineStyle("border-width", borderWidth);
}
@Override
public void setBottom(final String bottom) throws DOMException {
updateInlineStyle("bottom", bottom);
}
@Override
public void setCaptionSide(final String captionSide) throws DOMException {
updateInlineStyle("caption-side", captionSide);
}
@Override
public void setClear(final String clear) throws DOMException {
updateInlineStyle("clear", clear);
}
@Override
public void setClip(final String clip) throws DOMException {
updateInlineStyle("clip", clip);
}
@Override
public void setColor(final String color) throws DOMException {
updateInlineStyle("color", color);
}
@Override
public void setContent(final String content) throws DOMException {
updateInlineStyle("content", content);
}
@Override
public void setCounterIncrement(final String counterIncrement) throws DOMException {
updateInlineStyle("counter-increment", counterIncrement);
}
@Override
public void setCounterReset(final String counterReset) throws DOMException {
updateInlineStyle("counter-reset", counterReset);
}
@Override
public void setCue(final String cue) throws DOMException {
updateInlineStyle("cue", cue);
}
@Override
public void setCueAfter(final String cueAfter) throws DOMException {
updateInlineStyle("cue-after", cueAfter);
}
@Override
public void setCueBefore(final String cueBefore) throws DOMException {
updateInlineStyle("cue-before", cueBefore);
}
@Override
public void setCursor(final String cursor) throws DOMException {
updateInlineStyle("cursor", cursor);
}
@Override
public void setDirection(final String direction) throws DOMException {
updateInlineStyle("direction", direction);
}
@Override
public void setDisplay(final String display) throws DOMException {
updateInlineStyle("display", display);
}
@Override
public void setElevation(final String elevation) throws DOMException {
updateInlineStyle("elevation", elevation);
}
@Override
public void setEmptyCells(final String emptyCells) throws DOMException {
updateInlineStyle("empty-cells", emptyCells);
}
@Override
public void setCssFloat(final String cssFloat) throws DOMException {
updateInlineStyle("css-float", cssFloat);
}
@Override
public void setFont(final String font) throws DOMException {
updateInlineStyle("font", font);
}
@Override
public void setFontFamily(final String fontFamily) throws DOMException {
updateInlineStyle("font-family", fontFamily);
}
@Override
public void setFontSize(final String fontSize) throws DOMException {
updateInlineStyle("font-size", fontSize);
}
@Override
public void setFontSizeAdjust(final String fontSizeAdjust) throws DOMException {
updateInlineStyle("font-size-adjust", fontSizeAdjust);
}
@Override
public void setFontStretch(final String fontStretch) throws DOMException {
updateInlineStyle("font-stretch", fontStretch);
}
@Override
public void setFontStyle(final String fontStyle) throws DOMException {
updateInlineStyle("font-style", fontStyle);
}
@Override
public void setFontVariant(final String fontVariant) throws DOMException {
updateInlineStyle("font-Variant", fontVariant);
}
@Override
public void setFontWeight(final String fontWeight) throws DOMException {
updateInlineStyle("font-weight", fontWeight);
}
@Override
public void setHeight(final String height) throws DOMException {
updateInlineStyle("height", height);
}
@Override
public void setLeft(final String left) throws DOMException {
updateInlineStyle("left", left);
}
@Override
public void setLetterSpacing(final String letterSpacing) throws DOMException {
updateInlineStyle("letter-spacing", letterSpacing);
}
@Override
public void setLineHeight(final String lineHeight) throws DOMException {
updateInlineStyle("line-height", lineHeight);
}
@Override
public void setListStyle(final String listStyle) throws DOMException {
updateInlineStyle("list-Style", listStyle);
}
@Override
public void setListStyleImage(final String listStyleImage) throws DOMException {
updateInlineStyle("list-style-image", listStyleImage);
}
@Override
public void setListStylePosition(final String listStylePosition) throws DOMException {
updateInlineStyle("list-style-position", listStylePosition);
}
@Override
public void setListStyleType(final String listStyleType) throws DOMException {
updateInlineStyle("list-style-type", listStyleType);
}
@Override
public void setMargin(final String margin) throws DOMException {
updateInlineStyle("margin", margin);
}
@Override
public void setMarginTop(final String marginTop) throws DOMException {
updateInlineStyle("margin-top", marginTop);
}
@Override
public void setMarginRight(final String marginRight) throws DOMException {
updateInlineStyle("margin-right", marginRight);
}
@Override
public void setMarginBottom(final String marginBottom) throws DOMException {
updateInlineStyle("margin-bottom", marginBottom);
}
@Override
public void setMarginLeft(final String marginLeft) throws DOMException {
updateInlineStyle("margin-left", marginLeft);
}
@Override
public void setMarkerOffset(final String markerOffset) throws DOMException {
updateInlineStyle("marker-offset", markerOffset);
}
@Override
public void setMarks(final String marks) throws DOMException {
updateInlineStyle("marks", marks);
}
@Override
public void setMaxHeight(final String maxHeight) throws DOMException {
updateInlineStyle("max-height", maxHeight);
}
@Override
public void setMaxWidth(final String maxWidth) throws DOMException {
updateInlineStyle("max-width", maxWidth);
}
@Override
public void setMinHeight(final String minHeight) throws DOMException {
updateInlineStyle("min-height", minHeight);
}
@Override
public void setMinWidth(final String minWidth) throws DOMException {
updateInlineStyle("min-width", minWidth);
}
@Override
public void setOrphans(final String orphans) throws DOMException {
updateInlineStyle("orphans", orphans);
}
@Override
public void setOutline(final String outline) throws DOMException {
updateInlineStyle("outline", outline);
}
@Override
public void setOutlineColor(final String outlineColor) throws DOMException {
updateInlineStyle("outline-color", outlineColor);
}
@Override
public void setOutlineStyle(final String outlineStyle) throws DOMException {
updateInlineStyle("outline-style", outlineStyle);
}
@Override
public void setOutlineWidth(final String outlineWidth) throws DOMException {
updateInlineStyle("outline-width", outlineWidth);
}
@Override
public void setOverflow(final String overflow) throws DOMException {
updateInlineStyle("overflow", overflow);
}
@Override
public void setPadding(final String padding) throws DOMException {
updateInlineStyle("padding", padding);
}
@Override
public void setPaddingTop(final String paddingTop) throws DOMException {
updateInlineStyle("padding-top", paddingTop);
}
@Override
public void setPaddingRight(final String paddingRight) throws DOMException {
updateInlineStyle("padding-right", paddingRight);
}
@Override
public void setPaddingBottom(final String paddingBottom) throws DOMException {
updateInlineStyle("padding-bottom", paddingBottom);
}
@Override
public void setPaddingLeft(final String paddingLeft) throws DOMException {
updateInlineStyle("padding-left", paddingLeft);
}
@Override
public void setPage(final String page) throws DOMException {
updateInlineStyle("page", page);
}
@Override
public void setPageBreakAfter(final String pageBreakAfter) throws DOMException {
updateInlineStyle("page-break-after", pageBreakAfter);
}
@Override
public void setPageBreakBefore(final String pageBreakBefore) throws DOMException {
updateInlineStyle("page-break-before", pageBreakBefore);
}
@Override
public void setPageBreakInside(final String pageBreakInside) throws DOMException {
updateInlineStyle("page-break-inside", pageBreakInside);
}
@Override
public void setPause(final String pause) throws DOMException {
updateInlineStyle("pause", pause);
}
@Override
public void setPauseAfter(final String pauseAfter) throws DOMException {
updateInlineStyle("pause-after", pauseAfter);
}
@Override
public void setPauseBefore(final String pauseBefore) throws DOMException {
updateInlineStyle("pause-before", pauseBefore);
}
@Override
public void setPitch(final String pitch) throws DOMException {
updateInlineStyle("pitch", pitch);
}
@Override
public void setPitchRange(final String pitchRange) throws DOMException {
updateInlineStyle("pitch-range", pitchRange);
}
@Override
public void setPlayDuring(final String playDuring) throws DOMException {
updateInlineStyle("play-during", playDuring);
}
@Override
public void setPosition(final String position) throws DOMException {
updateInlineStyle("position", position);
}
@Override
public void setQuotes(final String quotes) throws DOMException {
updateInlineStyle("quotes", quotes);
}
@Override
public void setRichness(final String richness) throws DOMException {
updateInlineStyle("richness", richness);
}
@Override
public void setRight(final String right) throws DOMException {
updateInlineStyle("right", right);
}
@Override
public void setSize(final String size) throws DOMException {
updateInlineStyle("size", size);
}
@Override
public void setSpeak(final String speak) throws DOMException {
updateInlineStyle("speak", speak);
}
@Override
public void setSpeakHeader(final String speakHeader) throws DOMException {
updateInlineStyle("speak-header", speakHeader);
}
@Override
public void setSpeakNumeral(final String speakNumeral) throws DOMException {
updateInlineStyle("speak-numeral", speakNumeral);
}
@Override
public void setSpeakPunctuation(final String speakPunctuation) throws DOMException {
updateInlineStyle("speak-punctuation", speakPunctuation);
}
@Override
public void setSpeechRate(final String speechRate) throws DOMException {
updateInlineStyle("speech-rate", speechRate);
}
@Override
public void setStress(final String stress) throws DOMException {
updateInlineStyle("stress", stress);
}
@Override
public void setTableLayout(final String tableLayout) throws DOMException {
updateInlineStyle("table-layout", tableLayout);
}
@Override
public void setTextAlign(final String textAlign) throws DOMException {
updateInlineStyle("text-align", textAlign);
}
@Override
public void setTextDecoration(final String textDecoration) throws DOMException {
updateInlineStyle("text-decoration", textDecoration);
}
@Override
public void setTextIndent(final String textIndent) throws DOMException {
updateInlineStyle("text-indent", textIndent);
}
@Override
public void setTextShadow(final String textShadow) throws DOMException {
updateInlineStyle("text-shadow", textShadow);
}
@Override
public void setTextTransform(final String textTransform) throws DOMException {
updateInlineStyle("text-transform", textTransform);
}
@Override
public void setTop(final String top) throws DOMException {
updateInlineStyle("top", top);
}
@Override
public void setUnicodeBidi(final String unicodeBidi) throws DOMException {
updateInlineStyle("unicode-bidi", unicodeBidi);
}
@Override
public void setVerticalAlign(final String verticalAlign) throws DOMException {
updateInlineStyle("vertical-align", verticalAlign);
}
@Override
public void setVisibility(final String visibility) throws DOMException {
updateInlineStyle("visibility", visibility);
}
@Override
public void setVoiceFamily(final String voiceFamily) throws DOMException {
updateInlineStyle("voice-family", voiceFamily);
}
@Override
public void setVolume(final String volume) throws DOMException {
updateInlineStyle("volume", volume);
}
@Override
public void setWhiteSpace(final String whiteSpace) throws DOMException {
updateInlineStyle("white-space", whiteSpace);
}
@Override
public void setWidows(final String widows) throws DOMException {
updateInlineStyle("widows", widows);
}
@Override
public void setWidth(final String width) throws DOMException {
updateInlineStyle("width", width);
}
@Override
public void setWordSpacing(final String wordSpacing) throws DOMException {
updateInlineStyle("word-spacing", wordSpacing);
}
@Override
public void setZIndex(final String zIndex) throws DOMException {
updateInlineStyle("z-index", zIndex);
}
@Override
protected NodeData getNodeData() {
final HTMLElementImpl ele = this.element;
final String inlineStyle = ele.getAttribute("style");
if ((inlineStyle != null) && (inlineStyle.length() > 0)) {
final List jSheets = new ArrayList<>();
final StyleSheet jSheet = CSSUtilities.jParseInlineStyle(inlineStyle, null, ele, true);
jSheets.add(jSheet);
final DirectAnalyzer domAnalyser = new DirectAnalyzer(jSheets);
return domAnalyser.getElementStyle(ele, null, "screen");
}
return null;
}
private void updateInlineStyle(final String propertyName, final String propertyValue) {
final Element ele = this.element;
if (ele != null) {
final StringBuilder sb = new StringBuilder();
final String inlineStyle = ele.getAttribute("style");
if ((inlineStyle != null) && (inlineStyle.length() > 0)) {
final String propertyNameLC = propertyName.toLowerCase();
final String[] styleDeclarations = inlineStyle.split(";");
for (final String styleDeclaration : styleDeclarations) {
final String[] nameValue = styleDeclaration.split(":");
if (nameValue.length == 2) {
final String oldPropertyName = nameValue[0].toLowerCase().trim();
if (!(oldPropertyName.equals(propertyNameLC))) {
sb.append(styleDeclaration + ";");
}
}
}
}
sb.append(propertyName + ":" + propertyValue + ";");
ele.setAttribute("style", sb.toString());
}
}
}