/*
* StyleEntry.java
*
* Copyright (C) 2015 Pixelgaffer
*
* This work is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2 of the License, or any later
* version.
*
* This work is distributed in the hope that it will be useful, but without
* any warranty; without even the implied warranty of merchantability or
* fitness for a particular purpose. See version 2 and version 3 of the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.pixelgaffer.katepartparser;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class StyleEntry implements Cloneable
{
@Getter
@Setter
private String color;
@Getter
@Setter
private String bgColor;
@Getter
@Setter
private boolean italic;
@Getter
@Setter
private boolean bold;
@Getter
@Setter
private boolean underline;
@Getter
@Setter
private boolean strikeout;
@Getter
@Setter
private boolean spellChecking;
public String toCss (String clazz, boolean readable)
{
StringBuilder css = new StringBuilder();
if (clazz != null)
css.append(".").append(clazz).append(readable ? " " : "").append("{");
css.append(readable ? "\n\t" : "").append("-fx-fill:").append(readable ? " " : "").append(color).append(";");
css.append(readable ? "\n\t" : "").append("-fx-background-color:").append(readable ? " " : "").append(bgColor).append(";");
css.append(readable ? "\n\t" : "").append("-fx-font-style:").append(readable ? " " : "").append(italic ? "italic" : "normal").append(";");
css.append(readable ? "\n\t" : "").append("-fx-font-weight:").append(readable ? " " : "").append(bold ? "bold" : "normal").append(";");
css.append(readable ? "\n\t" : "").append("-fx-underline:").append(readable ? " " : "").append(underline).append(";");
css.append(readable ? "\n\t" : "").append("-fx-strikethrough:").append(readable ? " " : "").append(strikeout).append(";");
if (clazz != null)
css.append(readable ? "\n" : "").append("}");
return css.toString();
}
// clone ctor
public StyleEntry (StyleEntry other)
{
setColor(other.getColor());
setBgColor(other.getBgColor());
setItalic(other.isItalic());
setBold(other.isBold());
setUnderline(other.isUnderline());
setStrikeout(other.isStrikeout());
setSpellChecking(other.isSpellChecking());
}
// clone method
@Override
public StyleEntry clone ()
{
return new StyleEntry(this);
}
}