package at.bestsolution.efxclipse.formats.fxg.converter;
import at.bestsolution.efxclipse.formats.fxg.fxg.BlendMode;
import at.bestsolution.efxclipse.formats.fxg.fxg.Ellipse;
import at.bestsolution.efxclipse.formats.fxg.fxg.FXGElement;
import at.bestsolution.efxclipse.formats.fxg.fxg.Fill;
import at.bestsolution.efxclipse.formats.fxg.fxg.GradientEntry;
import at.bestsolution.efxclipse.formats.fxg.fxg.Graphic;
import at.bestsolution.efxclipse.formats.fxg.fxg.Group;
import at.bestsolution.efxclipse.formats.fxg.fxg.InterpolationMethod;
import at.bestsolution.efxclipse.formats.fxg.fxg.Library;
import at.bestsolution.efxclipse.formats.fxg.fxg.LinearGradient;
import at.bestsolution.efxclipse.formats.fxg.fxg.Path;
import at.bestsolution.efxclipse.formats.fxg.fxg.Private;
import at.bestsolution.efxclipse.formats.fxg.fxg.RadialGradient;
import at.bestsolution.efxclipse.formats.fxg.fxg.Rect;
import at.bestsolution.efxclipse.formats.fxg.fxg.SolidColor;
import at.bestsolution.efxclipse.formats.fxg.fxg.SpreadMethod;
import at.bestsolution.efxclipse.formats.fxg.fxg.Transform;
import at.bestsolution.efxclipse.formats.fxg.fxg.Winding;
import com.google.common.base.Objects;
import java.util.Arrays;
import javafx.scene.paint.CycleMethod;
import javafx.scene.shape.FillRule;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
@SuppressWarnings("all")
public class FXMLConverter {
public CharSequence generate(final Graphic graphic) {
StringConcatenation _builder = new StringConcatenation();
final CharSequence content = this.handle(graphic);
_builder.newLineIfNotEmpty();
_builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
_builder.newLine();
_builder.newLine();
_builder.append("<?import java.lang.*?>");
_builder.newLine();
_builder.append("<?import javafx.scene.*?>");
_builder.newLine();
_builder.append("<?import javafx.scene.shape.*?>");
_builder.newLine();
_builder.append("<?import javafx.scene.paint.*?>");
_builder.newLine();
_builder.append("<?import javafx.scene.image.*?>");
_builder.newLine();
_builder.newLine();
_builder.append(content, "");
_builder.newLineIfNotEmpty();
return _builder;
}
public CharSequence handle(final Graphic graphic) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<Group fx:id=\'_root\' xmlns:fx=\"http://javafx.com/fxml\">");
_builder.newLine();
_builder.append("\t");
_builder.append("<children>");
_builder.newLine();
{
EList<FXGElement> __children = graphic.get_children();
final Function1<FXGElement,Boolean> _function = new Function1<FXGElement,Boolean>() {
public Boolean apply(final FXGElement o) {
boolean _or = false;
if ((o instanceof Library)) {
_or = true;
} else {
_or = ((o instanceof Library) || (o instanceof Private));
}
boolean _not = (!_or);
return Boolean.valueOf(_not);
}
};
Iterable<FXGElement> _filter = IterableExtensions.<FXGElement>filter(__children, _function);
for(final FXGElement o : _filter) {
_builder.append("\t\t");
CharSequence _handle = this.handle(o);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append("\t");
_builder.append("</children>");
_builder.newLine();
_builder.append("</Group>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final EObject o) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<!-- Unhandled type \'");
EClass _eClass = o.eClass();
String _name = _eClass.getName();
_builder.append(_name, "");
_builder.append("\' -->");
_builder.newLineIfNotEmpty();
return _builder;
}
protected CharSequence _handle(final Group group) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<Group");
_builder.newLine();
_builder.append("\t");
{
Double _alpha = group.getAlpha();
boolean _notEquals = (!Objects.equal(_alpha, null));
if (_notEquals) {
_builder.append("opacity=\"");
Double _alpha_1 = group.getAlpha();
_builder.append(_alpha_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
BlendMode _blendMode = group.getBlendMode();
boolean _notEquals_1 = (!Objects.equal(_blendMode, BlendMode.NOT_SET));
if (_notEquals_1) {
_builder.append("blendMode=\"");
BlendMode _blendMode_1 = group.getBlendMode();
String _fX = this.toFX(_blendMode_1);
_builder.append(_fX, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _id = group.getId();
boolean _notEquals_2 = (!Objects.equal(_id, null));
if (_notEquals_2) {
_builder.append("fx:id=\"");
String _id_1 = group.getId();
_builder.append(_id_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _rotation = group.getRotation();
boolean _notEquals_3 = (!Objects.equal(_rotation, null));
if (_notEquals_3) {
_builder.append("rotate=\"");
String _rotation_1 = group.getRotation();
_builder.append(_rotation_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _scaleGridBottom = group.getScaleGridBottom();
boolean _notEquals_4 = (!Objects.equal(_scaleGridBottom, null));
if (_notEquals_4) {
_builder.append("fx:todo=\"scaleGridBottom\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _scaleGridLeft = group.getScaleGridLeft();
boolean _notEquals_5 = (!Objects.equal(_scaleGridLeft, null));
if (_notEquals_5) {
_builder.append("fx:todo=\"scaleGridLeft\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _scaleGridRight = group.getScaleGridRight();
boolean _notEquals_6 = (!Objects.equal(_scaleGridRight, null));
if (_notEquals_6) {
_builder.append("fx:todo=\"scaleGridRight\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _scaleGridTop = group.getScaleGridTop();
boolean _notEquals_7 = (!Objects.equal(_scaleGridTop, null));
if (_notEquals_7) {
_builder.append("fx:todo=\"scaleGridTop\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _scaleX = group.getScaleX();
boolean _notEquals_8 = (!Objects.equal(_scaleX, null));
if (_notEquals_8) {
_builder.append("scaleX=\"");
String _scaleX_1 = group.getScaleX();
_builder.append(_scaleX_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _scaleY = group.getScaleY();
boolean _notEquals_9 = (!Objects.equal(_scaleY, null));
if (_notEquals_9) {
_builder.append("scaleY=\"");
String _scaleY_1 = group.getScaleY();
_builder.append(_scaleY_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _visible = group.getVisible();
boolean _notEquals_10 = (!Objects.equal(_visible, null));
if (_notEquals_10) {
_builder.append("visible=\"");
String _visible_1 = group.getVisible();
_builder.append(_visible_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _x = group.getX();
boolean _notEquals_11 = (!Objects.equal(_x, null));
if (_notEquals_11) {
_builder.append("translateX=\"");
String _x_1 = group.getX();
_builder.append(_x_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _y = group.getY();
boolean _notEquals_12 = (!Objects.equal(_y, null));
if (_notEquals_12) {
_builder.append("translateY=\"");
String _y_1 = group.getY();
_builder.append(_y_1, " ");
_builder.append("\"");
}
}
_builder.append(">");
_builder.newLineIfNotEmpty();
{
EList<FXGElement> __children = group.get_children();
boolean _isNullOrEmpty = IterableExtensions.isNullOrEmpty(__children);
boolean _not = (!_isNullOrEmpty);
if (_not) {
_builder.append("\t");
_builder.append("<children>");
_builder.newLine();
{
EList<FXGElement> __children_1 = group.get_children();
for(final FXGElement o : __children_1) {
_builder.append("\t");
_builder.append("\t");
CharSequence _handle = this.handle(o);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append("\t");
_builder.append("</children>");
_builder.newLine();
}
}
{
Group _mask = group.getMask();
boolean _notEquals_13 = (!Objects.equal(_mask, null));
if (_notEquals_13) {
{
boolean _or = false;
String _maskType = group.getMaskType();
boolean _equals = Objects.equal(_maskType, null);
if (_equals) {
_or = true;
} else {
String _maskType_1 = group.getMaskType();
boolean _equals_1 = _maskType_1.equals("clip");
_or = (_equals || _equals_1);
}
if (_or) {
_builder.append("\t");
_builder.append("<clip>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Group _mask_1 = group.getMask();
CharSequence _handle_1 = this.handle(_mask_1);
_builder.append(_handle_1, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</clip>");
_builder.newLine();
} else {
_builder.append("\t");
_builder.append("<!-- TODO Handle masktype: ");
String _maskType_2 = group.getMaskType();
_builder.append(_maskType_2, " ");
_builder.append(" -->");
_builder.newLineIfNotEmpty();
}
}
}
}
_builder.append("</Group>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final Transform transform) {
StringConcatenation _builder = new StringConcatenation();
return _builder;
}
protected CharSequence _handle(final Rect rect) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<Rectangle");
_builder.newLine();
_builder.append("\t");
{
Double _alpha = rect.getAlpha();
boolean _notEquals = (!Objects.equal(_alpha, null));
if (_notEquals) {
_builder.append("opacity=\"");
Double _alpha_1 = rect.getAlpha();
_builder.append(_alpha_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
BlendMode _blendMode = rect.getBlendMode();
boolean _notEquals_1 = (!Objects.equal(_blendMode, BlendMode.NOT_SET));
if (_notEquals_1) {
_builder.append("blendMode=\"");
BlendMode _blendMode_1 = rect.getBlendMode();
String _fX = this.toFX(_blendMode_1);
_builder.append(_fX, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _height = rect.getHeight();
boolean _notEquals_2 = (!Objects.equal(_height, null));
if (_notEquals_2) {
_builder.append("height=\"");
String _height_1 = rect.getHeight();
_builder.append(_height_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _rotation = rect.getRotation();
boolean _notEquals_3 = (!Objects.equal(_rotation, null));
if (_notEquals_3) {
_builder.append("rotate=\"");
Double _rotation_1 = rect.getRotation();
_builder.append(_rotation_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleX = rect.getScaleX();
boolean _notEquals_4 = (!Objects.equal(_scaleX, null));
if (_notEquals_4) {
_builder.append("scaleX=\"");
Double _scaleX_1 = rect.getScaleX();
_builder.append(_scaleX_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleY = rect.getScaleY();
boolean _notEquals_5 = (!Objects.equal(_scaleY, null));
if (_notEquals_5) {
_builder.append("scaleY=\"");
Double _scaleY_1 = rect.getScaleY();
_builder.append(_scaleY_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Boolean _visible = rect.getVisible();
boolean _notEquals_6 = (!Objects.equal(_visible, null));
if (_notEquals_6) {
_builder.append("visible=\"");
Boolean _visible_1 = rect.getVisible();
_builder.append(_visible_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _width = rect.getWidth();
boolean _notEquals_7 = (!Objects.equal(_width, null));
if (_notEquals_7) {
_builder.append("width=\"");
String _width_1 = rect.getWidth();
_builder.append(_width_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _x = rect.getX();
boolean _notEquals_8 = (!Objects.equal(_x, null));
if (_notEquals_8) {
_builder.append("x=\"");
Double _x_1 = rect.getX();
_builder.append(_x_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _y = rect.getY();
boolean _notEquals_9 = (!Objects.equal(_y, null));
if (_notEquals_9) {
_builder.append("y=\"");
Double _y_1 = rect.getY();
_builder.append(_y_1, " ");
_builder.append("\"");
}
}
_builder.append(">");
_builder.newLineIfNotEmpty();
{
Fill _fill = rect.getFill();
boolean _notEquals_10 = (!Objects.equal(_fill, null));
if (_notEquals_10) {
_builder.append("\t");
_builder.append("<fill>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Fill _fill_1 = rect.getFill();
CharSequence _handle = this.handle(_fill_1);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</fill>");
_builder.newLine();
}
}
{
Group _mask = rect.getMask();
boolean _notEquals_11 = (!Objects.equal(_mask, null));
if (_notEquals_11) {
_builder.append("\t");
_builder.append("<clip>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Group _mask_1 = rect.getMask();
CharSequence _handle_1 = this.handle(_mask_1);
_builder.append(_handle_1, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</clip>");
_builder.newLine();
}
}
_builder.append("</Rectangle>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final SolidColor color) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<Color>");
_builder.newLine();
_builder.append("\t");
{
String _color = color.getColor();
boolean _notEquals = (!Objects.equal(_color, null));
if (_notEquals) {
_builder.append("<red>");
String _color_1 = color.getColor();
double _red = this.red(_color_1);
_builder.append(_red, " ");
_builder.append("</red>");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _color_2 = color.getColor();
boolean _notEquals_1 = (!Objects.equal(_color_2, null));
if (_notEquals_1) {
_builder.append("<green>");
String _color_3 = color.getColor();
double _green = this.green(_color_3);
_builder.append(_green, " ");
_builder.append("</green>");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _color_4 = color.getColor();
boolean _notEquals_2 = (!Objects.equal(_color_4, null));
if (_notEquals_2) {
_builder.append("<blue>");
String _color_5 = color.getColor();
double _blue = this.blue(_color_5);
_builder.append(_blue, " ");
_builder.append("</blue>");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _alpha = color.getAlpha();
boolean _notEquals_3 = (!Objects.equal(_alpha, null));
if (_notEquals_3) {
_builder.append("<opacity>");
Double _alpha_1 = color.getAlpha();
_builder.append(_alpha_1, " ");
_builder.append("</opacity>");
}
}
_builder.newLineIfNotEmpty();
_builder.append("</Color>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final RadialGradient gradient) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<RadialGradient");
_builder.newLine();
_builder.append("\t");
{
Double _focalPointRatio = gradient.getFocalPointRatio();
boolean _notEquals = (!Objects.equal(_focalPointRatio, null));
if (_notEquals) {
_builder.append("fx:todo=\"focalPointRatio\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
InterpolationMethod _interpolationMethod = gradient.getInterpolationMethod();
boolean _notEquals_1 = (!Objects.equal(_interpolationMethod, InterpolationMethod.NOT_SET));
if (_notEquals_1) {
_builder.append("fx:todo=\"interpolationMethod\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _rotation = gradient.getRotation();
boolean _notEquals_2 = (!Objects.equal(_rotation, null));
if (_notEquals_2) {
_builder.append("fx:todo=\"rotation\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleX = gradient.getScaleX();
boolean _notEquals_3 = (!Objects.equal(_scaleX, null));
if (_notEquals_3) {
_builder.append("radius=\"");
Double _scaleX_1 = gradient.getScaleX();
_builder.append(_scaleX_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleY = gradient.getScaleY();
boolean _notEquals_4 = (!Objects.equal(_scaleY, null));
if (_notEquals_4) {
_builder.append("fx:todo=\"scaleY\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
SpreadMethod _spreadMethod = gradient.getSpreadMethod();
boolean _notEquals_5 = (!Objects.equal(_spreadMethod, SpreadMethod.NOT_SET));
if (_notEquals_5) {
_builder.append("cycleMethod=\"");
{
SpreadMethod _spreadMethod_1 = gradient.getSpreadMethod();
boolean _equals = Objects.equal(_spreadMethod_1, SpreadMethod.REFLECT);
if (_equals) {
String _name = CycleMethod.REFLECT.name();
_builder.append(_name, " ");
} else {
String _name_1 = CycleMethod.REPEAT.name();
_builder.append(_name_1, " ");
}
}
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _x = gradient.getX();
boolean _notEquals_6 = (!Objects.equal(_x, null));
if (_notEquals_6) {
_builder.append("centerX=\"");
Double _x_1 = gradient.getX();
_builder.append(_x_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _y = gradient.getY();
boolean _notEquals_7 = (!Objects.equal(_y, null));
if (_notEquals_7) {
_builder.append("centerY=\"");
Double _y_1 = gradient.getY();
_builder.append(_y_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("proporional=\"false\">");
_builder.newLine();
{
EList<GradientEntry> __children = gradient.get_children();
boolean _isNullOrEmpty = IterableExtensions.isNullOrEmpty(__children);
boolean _not = (!_isNullOrEmpty);
if (_not) {
_builder.append("\t");
_builder.append("<stops>");
_builder.newLine();
{
EList<GradientEntry> __children_1 = gradient.get_children();
for(final GradientEntry o : __children_1) {
_builder.append("\t");
_builder.append("\t");
CharSequence _handle = this.handle(o);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append("\t");
_builder.append("</stops>");
_builder.newLine();
}
}
_builder.append("</RadialGradient>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final LinearGradient gradient) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<LinearGradient");
_builder.newLine();
_builder.append("\t");
{
InterpolationMethod _interpolationMethod = gradient.getInterpolationMethod();
boolean _notEquals = (!Objects.equal(_interpolationMethod, InterpolationMethod.NOT_SET));
if (_notEquals) {
_builder.append("fx:todo=\"interpolationMethod\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _rotation = gradient.getRotation();
boolean _notEquals_1 = (!Objects.equal(_rotation, null));
if (_notEquals_1) {
_builder.append("fx:todo=\"rotation\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleX = gradient.getScaleX();
boolean _notEquals_2 = (!Objects.equal(_scaleX, null));
if (_notEquals_2) {
_builder.append("endX=\"");
Double _scaleX_1 = gradient.getScaleX();
_builder.append(_scaleX_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleX_2 = gradient.getScaleX();
boolean _notEquals_3 = (!Objects.equal(_scaleX_2, null));
if (_notEquals_3) {
_builder.append("endY=\"");
Double _scaleX_3 = gradient.getScaleX();
_builder.append(_scaleX_3, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
SpreadMethod _spreadMethod = gradient.getSpreadMethod();
boolean _notEquals_4 = (!Objects.equal(_spreadMethod, SpreadMethod.NOT_SET));
if (_notEquals_4) {
_builder.append("cycleMethod=\"");
{
SpreadMethod _spreadMethod_1 = gradient.getSpreadMethod();
boolean _equals = Objects.equal(_spreadMethod_1, SpreadMethod.REFLECT);
if (_equals) {
String _name = CycleMethod.REFLECT.name();
_builder.append(_name, " ");
} else {
String _name_1 = CycleMethod.REPEAT.name();
_builder.append(_name_1, " ");
}
}
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _x = gradient.getX();
boolean _notEquals_5 = (!Objects.equal(_x, null));
if (_notEquals_5) {
_builder.append("startX=\"");
Double _x_1 = gradient.getX();
_builder.append(_x_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _y = gradient.getY();
boolean _notEquals_6 = (!Objects.equal(_y, null));
if (_notEquals_6) {
_builder.append("startY=\"");
Double _y_1 = gradient.getY();
_builder.append(_y_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("proporional=\"false\">");
_builder.newLine();
{
EList<GradientEntry> __children = gradient.get_children();
boolean _isNullOrEmpty = IterableExtensions.isNullOrEmpty(__children);
boolean _not = (!_isNullOrEmpty);
if (_not) {
_builder.append("\t");
_builder.append("<stops>");
_builder.newLine();
{
EList<GradientEntry> __children_1 = gradient.get_children();
for(final GradientEntry o : __children_1) {
_builder.append("\t");
_builder.append("\t");
CharSequence _handle = this.handle(o);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append("\t");
_builder.append("</stops>");
_builder.newLine();
}
}
_builder.append("</LinearGradient>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final GradientEntry entry) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<Stop");
_builder.newLine();
_builder.append("\t");
{
Double _ratio = entry.getRatio();
boolean _notEquals = (!Objects.equal(_ratio, null));
if (_notEquals) {
_builder.append("offset=\"");
Double _ratio_1 = entry.getRatio();
_builder.append(_ratio_1, " ");
_builder.append("\"");
}
}
_builder.append(">");
_builder.newLineIfNotEmpty();
{
String _color = entry.getColor();
boolean _notEquals_1 = (!Objects.equal(_color, null));
if (_notEquals_1) {
_builder.append("\t");
_builder.append("<color>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
_builder.append("<red>");
String _color_1 = entry.getColor();
double _red = this.red(_color_1);
_builder.append(_red, " ");
_builder.append("</red>");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("\t");
_builder.append("<green>");
String _color_2 = entry.getColor();
double _green = this.green(_color_2);
_builder.append(_green, " ");
_builder.append("</green>");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("\t");
_builder.append("<blue>");
String _color_3 = entry.getColor();
double _blue = this.blue(_color_3);
_builder.append(_blue, " ");
_builder.append("</blue>");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("\t");
{
Double _alpha = entry.getAlpha();
boolean _notEquals_2 = (!Objects.equal(_alpha, null));
if (_notEquals_2) {
_builder.append("<opacity>");
Double _alpha_1 = entry.getAlpha();
_builder.append(_alpha_1, " ");
_builder.append("</opacity>");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</color>");
_builder.newLine();
}
}
_builder.append("</Stop>");
_builder.newLine();
return _builder;
}
public double red(final String color) {
String _substring = color.substring(1, 3);
Integer _valueOf = Integer.valueOf(_substring, 16);
Double _valueOf_1 = Double.valueOf("255.0");
return (((double) (_valueOf).intValue()) / (_valueOf_1).doubleValue());
}
public double green(final String color) {
String _substring = color.substring(3, 5);
Integer _valueOf = Integer.valueOf(_substring, 16);
Double _valueOf_1 = Double.valueOf("255.0");
return (((double) (_valueOf).intValue()) / (_valueOf_1).doubleValue());
}
public double blue(final String color) {
String _substring = color.substring(5, 7);
Integer _valueOf = Integer.valueOf(_substring, 16);
Double _valueOf_1 = Double.valueOf("255.0");
return (((double) (_valueOf).intValue()) / (_valueOf_1).doubleValue());
}
protected CharSequence _handle(final Path path) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<SVGPath");
_builder.newLine();
_builder.append("\t");
{
Double _alpha = path.getAlpha();
boolean _notEquals = (!Objects.equal(_alpha, null));
if (_notEquals) {
_builder.append("opacity=\"");
Double _alpha_1 = path.getAlpha();
_builder.append(_alpha_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
BlendMode _blendMode = path.getBlendMode();
boolean _notEquals_1 = (!Objects.equal(_blendMode, BlendMode.NOT_SET));
if (_notEquals_1) {
_builder.append("blendMode=\"");
BlendMode _blendMode_1 = path.getBlendMode();
String _fX = this.toFX(_blendMode_1);
_builder.append(_fX, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _data = path.getData();
boolean _notEquals_2 = (!Objects.equal(_data, null));
if (_notEquals_2) {
_builder.append("content=\"");
String _data_1 = path.getData();
_builder.append(_data_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _rotation = path.getRotation();
boolean _notEquals_3 = (!Objects.equal(_rotation, null));
if (_notEquals_3) {
_builder.append("rotate=\"");
Double _rotation_1 = path.getRotation();
_builder.append(_rotation_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleX = path.getScaleX();
boolean _notEquals_4 = (!Objects.equal(_scaleX, null));
if (_notEquals_4) {
_builder.append("scaleX=\"");
Double _scaleX_1 = path.getScaleX();
_builder.append(_scaleX_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleY = path.getScaleY();
boolean _notEquals_5 = (!Objects.equal(_scaleY, null));
if (_notEquals_5) {
_builder.append("scaleY=\"");
Double _scaleY_1 = path.getScaleY();
_builder.append(_scaleY_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Boolean _visible = path.getVisible();
boolean _notEquals_6 = (!Objects.equal(_visible, null));
if (_notEquals_6) {
_builder.append("visible=\"");
Boolean _visible_1 = path.getVisible();
_builder.append(_visible_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Winding _winding = path.getWinding();
boolean _notEquals_7 = (!Objects.equal(_winding, Winding.NOT_SET));
if (_notEquals_7) {
_builder.append("fillRule=\"");
String _xifexpression = null;
Winding _winding_1 = path.getWinding();
boolean _equals = Objects.equal(_winding_1, Winding.EVEN_ODD);
if (_equals) {
String _name = FillRule.EVEN_ODD.name();
_xifexpression = _name;
} else {
String _name_1 = FillRule.NON_ZERO.name();
_xifexpression = _name_1;
}
_builder.append(_xifexpression, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _x = path.getX();
boolean _notEquals_8 = (!Objects.equal(_x, null));
if (_notEquals_8) {
_builder.append("fx:todo=\"x\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _y = path.getY();
boolean _notEquals_9 = (!Objects.equal(_y, null));
if (_notEquals_9) {
_builder.append("fx:todo=\"y\"");
}
}
_builder.append(">");
_builder.newLineIfNotEmpty();
{
Fill _fill = path.getFill();
boolean _notEquals_10 = (!Objects.equal(_fill, null));
if (_notEquals_10) {
_builder.append("\t");
_builder.append("<fill>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Fill _fill_1 = path.getFill();
CharSequence _handle = this.handle(_fill_1);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</fill>");
_builder.newLine();
}
}
{
Group _mask = path.getMask();
boolean _notEquals_11 = (!Objects.equal(_mask, null));
if (_notEquals_11) {
_builder.append("\t");
_builder.append("<clip>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Group _mask_1 = path.getMask();
CharSequence _handle_1 = this.handle(_mask_1);
_builder.append(_handle_1, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</clip>");
_builder.newLine();
}
}
_builder.append("</SVGPath>");
_builder.newLine();
return _builder;
}
protected CharSequence _handle(final Ellipse ellipse) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("<Ellipse");
_builder.newLine();
_builder.append("\t");
{
Double _alpha = ellipse.getAlpha();
boolean _notEquals = (!Objects.equal(_alpha, null));
if (_notEquals) {
_builder.append("opacity=\"");
Double _alpha_1 = ellipse.getAlpha();
_builder.append(_alpha_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
BlendMode _blendMode = ellipse.getBlendMode();
boolean _notEquals_1 = (!Objects.equal(_blendMode, BlendMode.NOT_SET));
if (_notEquals_1) {
_builder.append("blendMode=\"");
BlendMode _blendMode_1 = ellipse.getBlendMode();
String _fX = this.toFX(_blendMode_1);
_builder.append(_fX, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _height = ellipse.getHeight();
boolean _notEquals_2 = (!Objects.equal(_height, null));
if (_notEquals_2) {
_builder.append("radiusX=\"");
String _width = ellipse.getWidth();
double _parseLength = this.parseLength(_width);
Double _valueOf = Double.valueOf("0.5");
double _multiply = (_parseLength * (_valueOf).doubleValue());
_builder.append(_multiply, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _rotation = ellipse.getRotation();
boolean _notEquals_3 = (!Objects.equal(_rotation, null));
if (_notEquals_3) {
_builder.append("rotate=\"");
Double _rotation_1 = ellipse.getRotation();
_builder.append(_rotation_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleX = ellipse.getScaleX();
boolean _notEquals_4 = (!Objects.equal(_scaleX, null));
if (_notEquals_4) {
_builder.append("scaleX=\"");
Double _scaleX_1 = ellipse.getScaleX();
_builder.append(_scaleX_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _scaleY = ellipse.getScaleY();
boolean _notEquals_5 = (!Objects.equal(_scaleY, null));
if (_notEquals_5) {
_builder.append("scaleY=\"");
Double _scaleY_1 = ellipse.getScaleY();
_builder.append(_scaleY_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Boolean _visible = ellipse.getVisible();
boolean _notEquals_6 = (!Objects.equal(_visible, null));
if (_notEquals_6) {
_builder.append("visible=\"");
Boolean _visible_1 = ellipse.getVisible();
_builder.append(_visible_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
String _width_1 = ellipse.getWidth();
boolean _notEquals_7 = (!Objects.equal(_width_1, null));
if (_notEquals_7) {
_builder.append("radiusY=\"");
String _height_1 = ellipse.getHeight();
double _parseLength_1 = this.parseLength(_height_1);
Double _valueOf_1 = Double.valueOf("0.5");
double _multiply_1 = (_parseLength_1 * (_valueOf_1).doubleValue());
_builder.append(_multiply_1, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _x = ellipse.getX();
boolean _notEquals_8 = (!Objects.equal(_x, null));
if (_notEquals_8) {
_builder.append("centerX=\"");
Double _xifexpression = null;
String _width_2 = ellipse.getWidth();
boolean _equals = Objects.equal(_width_2, null);
if (_equals) {
Double _x_1 = ellipse.getX();
_xifexpression = _x_1;
} else {
Double _x_2 = ellipse.getX();
String _width_3 = ellipse.getWidth();
double _parseLength_2 = this.parseLength(_width_3);
Double _valueOf_2 = Double.valueOf("0.5");
double _multiply_2 = (_parseLength_2 * (_valueOf_2).doubleValue());
double _plus = ((_x_2).doubleValue() + _multiply_2);
_xifexpression = _plus;
}
_builder.append(_xifexpression, " ");
_builder.append("\"");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
{
Double _y = ellipse.getY();
boolean _notEquals_9 = (!Objects.equal(_y, null));
if (_notEquals_9) {
_builder.append("centerY=\"");
Double _xifexpression_1 = null;
String _height_2 = ellipse.getHeight();
boolean _equals_1 = Objects.equal(_height_2, null);
if (_equals_1) {
Double _y_1 = ellipse.getY();
_xifexpression_1 = _y_1;
} else {
Double _y_2 = ellipse.getY();
String _height_3 = ellipse.getHeight();
double _parseLength_3 = this.parseLength(_height_3);
Double _valueOf_3 = Double.valueOf("0.5");
double _multiply_3 = (_parseLength_3 * (_valueOf_3).doubleValue());
double _plus_1 = ((_y_2).doubleValue() + _multiply_3);
_xifexpression_1 = _plus_1;
}
_builder.append(_xifexpression_1, " ");
_builder.append("\"");
}
}
_builder.append(">");
_builder.newLineIfNotEmpty();
{
Fill _fill = ellipse.getFill();
boolean _notEquals_10 = (!Objects.equal(_fill, null));
if (_notEquals_10) {
_builder.append("\t");
_builder.append("<fill>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Fill _fill_1 = ellipse.getFill();
CharSequence _handle = this.handle(_fill_1);
_builder.append(_handle, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</fill>");
_builder.newLine();
}
}
{
Group _mask = ellipse.getMask();
boolean _notEquals_11 = (!Objects.equal(_mask, null));
if (_notEquals_11) {
_builder.append("\t");
_builder.append("<clip>");
_builder.newLine();
_builder.append("\t");
_builder.append("\t");
Group _mask_1 = ellipse.getMask();
CharSequence _handle_1 = this.handle(_mask_1);
_builder.append(_handle_1, " ");
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append("</clip>");
_builder.newLine();
}
}
_builder.append("</Ellipse>");
_builder.newLine();
return _builder;
}
public double parseLength(final String length) {
return Double.parseDouble(length);
}
public String toFX(final BlendMode fxgMode) {
boolean _matched = false;
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.ADD)) {
_matched=true;
return javafx.scene.effect.BlendMode.ADD.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.ALPHA)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.DARKEN)) {
_matched=true;
return javafx.scene.effect.BlendMode.DARKEN.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.DIFFERENCE)) {
_matched=true;
return javafx.scene.effect.BlendMode.DIFFERENCE.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.ERASE)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.HARDLIGHT)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.INVERT)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.LAYER)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.LIGHTEN)) {
_matched=true;
return javafx.scene.effect.BlendMode.LIGHTEN.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.MULTIPLY)) {
_matched=true;
return javafx.scene.effect.BlendMode.MULTIPLY.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.NORMAL)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.OVERLAY)) {
_matched=true;
return javafx.scene.effect.BlendMode.OVERLAY.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.SCREEN)) {
_matched=true;
return javafx.scene.effect.BlendMode.SCREEN.toString();
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.SHADER)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.SUBTRACT)) {
_matched=true;
return "null";
}
}
if (!_matched) {
if (Objects.equal(fxgMode,BlendMode.NOT_SET)) {
_matched=true;
return "null";
}
}
return "null";
}
public CharSequence handle(final EObject ellipse) {
if (ellipse instanceof Ellipse) {
return _handle((Ellipse)ellipse);
} else if (ellipse instanceof Group) {
return _handle((Group)ellipse);
} else if (ellipse instanceof LinearGradient) {
return _handle((LinearGradient)ellipse);
} else if (ellipse instanceof RadialGradient) {
return _handle((RadialGradient)ellipse);
} else if (ellipse instanceof Rect) {
return _handle((Rect)ellipse);
} else if (ellipse instanceof SolidColor) {
return _handle((SolidColor)ellipse);
} else if (ellipse instanceof GradientEntry) {
return _handle((GradientEntry)ellipse);
} else if (ellipse instanceof Path) {
return _handle((Path)ellipse);
} else if (ellipse instanceof Transform) {
return _handle((Transform)ellipse);
} else if (ellipse != null) {
return _handle(ellipse);
} else {
throw new IllegalArgumentException("Unhandled parameter types: " +
Arrays.<Object>asList(ellipse).toString());
}
}
}