package net.jeeeyul.eclipse.themes.css; import com.google.common.base.Objects; import java.util.ArrayList; import java.util.List; import net.jeeeyul.eclipse.themes.css.internal.CSSCompabilityHelper; import net.jeeeyul.eclipse.themes.rendering.JTabSettings; import net.jeeeyul.eclipse.themes.rendering.JeeeyulsTabRenderer; import net.jeeeyul.eclipse.themes.rendering.internal.JTabRendererHelper; import net.jeeeyul.swtend.ui.HSB; import org.eclipse.e4.ui.css.core.dom.properties.Gradient; import org.eclipse.e4.ui.css.core.dom.properties.ICSSPropertyHandler; import org.eclipse.e4.ui.css.core.engine.CSSEngine; import org.eclipse.e4.ui.css.swt.dom.CTabFolderElement; import org.eclipse.e4.ui.css.swt.helpers.CSSSWTColorHelper; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabFolderRenderer; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Display; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Conversions; import org.eclipse.xtext.xbase.lib.Extension; import org.eclipse.xtext.xbase.lib.Functions.Function1; import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; import org.w3c.dom.css.CSSPrimitiveValue; import org.w3c.dom.css.CSSValue; import org.w3c.dom.css.CSSValueList; /** * A CSS property handlers for {@link CTabFolder} that uses {@link JeeeyulsTabRenderer} as renderer. * * @see CTabFolderRenderer#setRenderer(CTabFolderRenderer) */ @SuppressWarnings("all") public class JTabCSSPropertyHandler implements ICSSPropertyHandler { public boolean applyCSSProperty(final Object element, final String property, final CSSValue value, final String pseudo, @Extension final CSSEngine engine) throws Exception { CTabFolderElement tabFolderElement = ((CTabFolderElement) element); Object _nativeWidget = tabFolderElement.getNativeWidget(); CTabFolder tabFolder = ((CTabFolder) _nativeWidget); CTabFolderRenderer _renderer = tabFolder.getRenderer(); if ((!(_renderer instanceof JeeeyulsTabRenderer))) { return false; } CTabFolderRenderer _renderer_1 = tabFolder.getRenderer(); JeeeyulsTabRenderer renderer = ((JeeeyulsTabRenderer) _renderer_1); JTabSettings settings = renderer.getSettings(); boolean _switchResult = false; boolean _matched = false; if (!_matched) { if (Objects.equal(property, "jtab-selected-tab-background")) { _matched=true; boolean _xifexpression = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); Display _display = tabFolder.getDisplay(); Color[] colors = CSSCompabilityHelper.getSWTColors(grad, _display, engine); int[] percents = CSSCompabilityHelper.getPercents(grad); tabFolder.setSelectionBackground(colors, percents, true); _xblockexpression = true; } _xifexpression = _xblockexpression; } else { boolean _xifexpression_1 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_1 = false; { Display _display = tabFolder.getDisplay(); Object _convert = engine.convert(value, Color.class, _display); Color newColor = ((Color) _convert); tabFolder.setSelectionBackground(new Color[] { newColor, newColor }, new int[] { 100 }, true); _xblockexpression_1 = true; } _xifexpression_1 = _xblockexpression_1; } else { _xifexpression_1 = false; } _xifexpression = _xifexpression_1; } _switchResult = _xifexpression; } } if (!_matched) { if (Objects.equal(property, "jtab-header-background")) { _matched=true; boolean _xifexpression_2 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_2 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); Display _display = tabFolder.getDisplay(); Color[] colors = CSSCompabilityHelper.getSWTColors(grad, _display, engine); int[] percents = CSSCompabilityHelper.getPercents(grad); tabFolder.setBackground(colors, percents, true); _xblockexpression_2 = true; } _xifexpression_2 = _xblockexpression_2; } else { boolean _xifexpression_3 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_3 = false; { Display _display = tabFolder.getDisplay(); Object _convert = engine.convert(value, Color.class, _display); Color newColor = ((Color) _convert); tabFolder.setBackground(new Color[] { newColor, newColor }, new int[] { 100 }, true); _xblockexpression_3 = true; } _xifexpression_3 = _xblockexpression_3; } else { _xifexpression_3 = false; } _xifexpression_2 = _xifexpression_3; } _switchResult = _xifexpression_2; } } if (!_matched) { if (Objects.equal(property, "jtab-border-color")) { _matched=true; boolean _xifexpression_4 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_4 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); HSB[] _hSBArray = this.toHSBArray(grad); settings.setBorderColors(_hSBArray); int[] _percents = CSSSWTColorHelper.getPercents(grad); settings.setBorderPercents(_percents); _xblockexpression_4 = true; } _xifexpression_4 = _xblockexpression_4; } else { boolean _xifexpression_5 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_5 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSPrimitiveValue)value)); boolean _xifexpression_6 = false; boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { boolean _xblockexpression_6 = false; { HSB hsb = new HSB(rgb); settings.setBorderColors(new HSB[] { hsb, hsb }); settings.setBorderPercents(new int[] { 100 }); _xblockexpression_6 = true; } _xifexpression_6 = _xblockexpression_6; } else { boolean _xifexpression_7 = false; String _cssText = ((CSSPrimitiveValue)value).getCssText(); boolean _equals = Objects.equal(_cssText, "none"); if (_equals) { boolean _xblockexpression_7 = false; { settings.setBorderColors(null); _xblockexpression_7 = true; } _xifexpression_7 = _xblockexpression_7; } else { _xifexpression_7 = false; } _xifexpression_6 = _xifexpression_7; } _xblockexpression_5 = _xifexpression_6; } _xifexpression_5 = _xblockexpression_5; } else { _xifexpression_5 = false; } _xifexpression_4 = _xifexpression_5; } _switchResult = _xifexpression_4; } } if (!_matched) { if (Objects.equal(property, "jtab-selected-border-color")) { _matched=true; boolean _xifexpression_6 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_6 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); HSB[] _hSBArray = this.toHSBArray(grad); settings.setSelectedBorderColors(_hSBArray); int[] _percents = CSSSWTColorHelper.getPercents(grad); settings.setSelectedBorderPercents(_percents); _xblockexpression_6 = true; } _xifexpression_6 = _xblockexpression_6; } else { boolean _xifexpression_7 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_7 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSPrimitiveValue)value)); boolean _xifexpression_8 = false; boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { boolean _xblockexpression_8 = false; { HSB hsb = new HSB(rgb); settings.setSelectedBorderColors(new HSB[] { hsb, hsb }); settings.setSelectedBorderPercents(new int[] { 100 }); _xblockexpression_8 = true; } _xifexpression_8 = _xblockexpression_8; } else { boolean _xifexpression_9 = false; String _cssText = ((CSSPrimitiveValue)value).getCssText(); boolean _equals = Objects.equal(_cssText, "none"); if (_equals) { boolean _xblockexpression_9 = false; { settings.setSelectedBorderColors(null); _xblockexpression_9 = true; } _xifexpression_9 = _xblockexpression_9; } else { _xifexpression_9 = false; } _xifexpression_8 = _xifexpression_9; } _xblockexpression_7 = _xifexpression_8; } _xifexpression_7 = _xblockexpression_7; } else { _xifexpression_7 = false; } _xifexpression_6 = _xifexpression_7; } _switchResult = _xifexpression_6; } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-border-color")) { _matched=true; boolean _xifexpression_8 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_8 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); HSB[] _hSBArray = this.toHSBArray(grad); settings.setUnselectedBorderColors(_hSBArray); int[] _percents = CSSSWTColorHelper.getPercents(grad); settings.setUnselectedBorderPercents(_percents); _xblockexpression_8 = true; } _xifexpression_8 = _xblockexpression_8; } else { boolean _xifexpression_9 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_9 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSPrimitiveValue)value)); boolean _xifexpression_10 = false; boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { boolean _xblockexpression_10 = false; { HSB hsb = new HSB(rgb); settings.setUnselectedBorderColors(new HSB[] { hsb, hsb }); settings.setUnselectedBorderPercents(new int[] { 100 }); _xblockexpression_10 = true; } _xifexpression_10 = _xblockexpression_10; } else { boolean _xifexpression_11 = false; String _cssText = ((CSSPrimitiveValue)value).getCssText(); boolean _equals = Objects.equal(_cssText, "none"); if (_equals) { boolean _xblockexpression_11 = false; { settings.setUnselectedBorderColors(null); _xblockexpression_11 = true; } _xifexpression_11 = _xblockexpression_11; } else { _xifexpression_11 = false; } _xifexpression_10 = _xifexpression_11; } _xblockexpression_9 = _xifexpression_10; } _xifexpression_9 = _xblockexpression_9; } else { _xifexpression_9 = false; } _xifexpression_8 = _xifexpression_9; } _switchResult = _xifexpression_8; } } if (!_matched) { if (Objects.equal(property, "jtab-border-radius")) { _matched=true; boolean _xifexpression_10 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_10 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int radius = ((int) _floatValue); settings.setBorderRadius(radius); _xblockexpression_10 = true; } _xifexpression_10 = _xblockexpression_10; } else { _xifexpression_10 = false; } _switchResult = _xifexpression_10; } } if (!_matched) { if (Objects.equal(property, "jtab-spacing")) { _matched=true; boolean _xifexpression_11 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_11 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int tabSpacing = ((int) _floatValue); settings.setTabSpacing(tabSpacing); _xblockexpression_11 = true; } _xifexpression_11 = _xblockexpression_11; } else { _xifexpression_11 = false; } _switchResult = _xifexpression_11; } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-color")) { _matched=true; boolean _xblockexpression_12 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setCloseButtonColor(hsb); } else { settings.setCloseButtonColor(null); } _xblockexpression_12 = true; } _switchResult = _xblockexpression_12; } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-line-width")) { _matched=true; boolean _xifexpression_12 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_13 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int lineWidth = ((int) _floatValue); settings.setCloseButtonLineWidth(lineWidth); _xblockexpression_13 = true; } _xifexpression_12 = _xblockexpression_13; } else { _xifexpression_12 = false; } _switchResult = _xifexpression_12; } } if (!_matched) { if (Objects.equal(property, "jtab-hover-color")) { _matched=true; boolean _xblockexpression_14 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setHoverForgroundColor(hsb); } else { settings.setHoverForgroundColor(null); } _xblockexpression_14 = true; } _switchResult = _xblockexpression_14; } } if (!_matched) { if (Objects.equal(property, "jtab-hover-border-color")) { _matched=true; boolean _xifexpression_13 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_15 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); HSB[] _hSBArray = this.toHSBArray(grad); settings.setHoverBorderColors(_hSBArray); int[] _percents = CSSSWTColorHelper.getPercents(grad); settings.setHoverBorderPercents(_percents); _xblockexpression_15 = true; } _xifexpression_13 = _xblockexpression_15; } else { boolean _xifexpression_14 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_16 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSPrimitiveValue)value)); boolean _xifexpression_15 = false; boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { boolean _xblockexpression_17 = false; { HSB hsb = new HSB(rgb); settings.setHoverBorderColors(new HSB[] { hsb, hsb }); settings.setHoverBorderPercents(new int[] { 100 }); _xblockexpression_17 = true; } _xifexpression_15 = _xblockexpression_17; } else { boolean _xifexpression_16 = false; String _cssText = ((CSSPrimitiveValue)value).getCssText(); boolean _equals = Objects.equal(_cssText, "none"); if (_equals) { boolean _xblockexpression_18 = false; { settings.setHoverBorderColors(null); _xblockexpression_18 = true; } _xifexpression_16 = _xblockexpression_18; } else { _xifexpression_16 = false; } _xifexpression_15 = _xifexpression_16; } _xblockexpression_16 = _xifexpression_15; } _xifexpression_14 = _xblockexpression_16; } else { _xifexpression_14 = false; } _xifexpression_13 = _xifexpression_14; } _switchResult = _xifexpression_13; } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-hot-color")) { _matched=true; boolean _xblockexpression_17 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setCloseButtonHotColor(hsb); } else { settings.setCloseButtonHotColor(null); } _xblockexpression_17 = true; } _switchResult = _xblockexpression_17; } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-active-color")) { _matched=true; boolean _xblockexpression_18 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setCloseButtonActiveColor(hsb); } else { settings.setCloseButtonActiveColor(null); } _xblockexpression_18 = true; } _switchResult = _xblockexpression_18; } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-tabs-background")) { _matched=true; boolean _xifexpression_15 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_19 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); HSB[] _hSBArray = this.toHSBArray(grad); settings.setUnselectedBackgroundColors(_hSBArray); int[] _percents = CSSSWTColorHelper.getPercents(grad); settings.setUnselectedBackgroundPercents(_percents); _xblockexpression_19 = true; } _xifexpression_15 = _xblockexpression_19; } else { boolean _xifexpression_16 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_20 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSPrimitiveValue)value)); boolean _xifexpression_17 = false; boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { boolean _xblockexpression_21 = false; { HSB hsb = new HSB(rgb); settings.setUnselectedBackgroundColors(new HSB[] { hsb, hsb }); settings.setUnselectedBackgroundPercents(new int[] { 100 }); _xblockexpression_21 = true; } _xifexpression_17 = _xblockexpression_21; } else { boolean _xifexpression_18 = false; String _cssText = ((CSSPrimitiveValue)value).getCssText(); boolean _equals = Objects.equal(_cssText, "none"); if (_equals) { boolean _xblockexpression_22 = false; { settings.setUnselectedBackgroundColors(null); _xblockexpression_22 = true; } _xifexpression_18 = _xblockexpression_22; } else { _xifexpression_18 = false; } _xifexpression_17 = _xifexpression_18; } _xblockexpression_20 = _xifexpression_17; } _xifexpression_16 = _xblockexpression_20; } else { _xifexpression_16 = false; } _xifexpression_15 = _xifexpression_16; } _switchResult = _xifexpression_15; } } if (!_matched) { if (Objects.equal(property, "jtab-hover-tabs-background")) { _matched=true; boolean _xifexpression_17 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_21 = false; { Gradient grad = CSSCompabilityHelper.getGradient(((CSSValueList) value)); HSB[] _hSBArray = this.toHSBArray(grad); settings.setHoverBackgroundColors(_hSBArray); int[] _percents = CSSSWTColorHelper.getPercents(grad); settings.setHoverBackgroundPercents(_percents); _xblockexpression_21 = true; } _xifexpression_17 = _xblockexpression_21; } else { boolean _xifexpression_18 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_22 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSPrimitiveValue)value)); boolean _xifexpression_19 = false; boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { boolean _xblockexpression_23 = false; { HSB hsb = new HSB(rgb); settings.setHoverBackgroundColors(new HSB[] { hsb, hsb }); settings.setHoverBackgroundPercents(new int[] { 100 }); _xblockexpression_23 = true; } _xifexpression_19 = _xblockexpression_23; } else { boolean _xifexpression_20 = false; String _cssText = ((CSSPrimitiveValue)value).getCssText(); boolean _equals = Objects.equal(_cssText, "none"); if (_equals) { boolean _xblockexpression_24 = false; { settings.setHoverBackgroundColors(null); _xblockexpression_24 = true; } _xifexpression_20 = _xblockexpression_24; } else { _xifexpression_20 = false; } _xifexpression_19 = _xifexpression_20; } _xblockexpression_22 = _xifexpression_19; } _xifexpression_18 = _xblockexpression_22; } else { _xifexpression_18 = false; } _xifexpression_17 = _xifexpression_18; } _switchResult = _xifexpression_17; } } if (!_matched) { if (Objects.equal(property, "jtab-margin")) { _matched=true; boolean _xifexpression_19 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_23 = false; { Rectangle insets = this.toInset(((CSSValueList) value)); settings.setMargins(insets); _xblockexpression_23 = true; } _xifexpression_19 = _xblockexpression_23; } else { boolean _xifexpression_20 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_24 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int margin = ((int) _floatValue); Rectangle _rectangle = new Rectangle(margin, margin, margin, margin); settings.setMargins(_rectangle); _xblockexpression_24 = true; } _xifexpression_20 = _xblockexpression_24; } else { _xifexpression_20 = false; } _xifexpression_19 = _xifexpression_20; } _switchResult = _xifexpression_19; } } if (!_matched) { if (Objects.equal(property, "jtab-padding")) { _matched=true; boolean _xifexpression_21 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_25 = false; { Rectangle insets = this.toInset(((CSSValueList) value)); settings.setPaddings(insets); _xblockexpression_25 = true; } _xifexpression_21 = _xblockexpression_25; } else { boolean _xifexpression_22 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_26 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int margin = ((int) _floatValue); Rectangle _rectangle = new Rectangle(margin, margin, margin, margin); settings.setPaddings(_rectangle); _xblockexpression_26 = true; } _xifexpression_22 = _xblockexpression_26; } else { _xifexpression_22 = false; } _xifexpression_21 = _xifexpression_22; } _switchResult = _xifexpression_21; } } if (!_matched) { if (Objects.equal(property, "jtab-shadow-color")) { _matched=true; boolean _xblockexpression_27 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setShadowColor(hsb); } else { settings.setShadowColor(null); } _xblockexpression_27 = true; } _switchResult = _xblockexpression_27; } } if (!_matched) { if (Objects.equal(property, "jtab-shadow-position")) { _matched=true; boolean _xifexpression_23 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_28 = false; { Point position = this.toPoint(((CSSValueList) value)); settings.setShadowPosition(position); _xblockexpression_28 = true; } _xifexpression_23 = _xblockexpression_28; } else { boolean _xifexpression_24 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_29 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int v = ((int) _floatValue); Point _point = new Point(v, v); settings.setShadowPosition(_point); _xblockexpression_29 = true; } _xifexpression_24 = _xblockexpression_29; } else { _xifexpression_24 = false; } _xifexpression_23 = _xifexpression_24; } _switchResult = _xifexpression_23; } } if (!_matched) { if (Objects.equal(property, "jtab-shadow-radius")) { _matched=true; boolean _xifexpression_25 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_30 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int v = ((int) _floatValue); settings.setShadowRadius(v); _xblockexpression_30 = true; } _xifexpression_25 = _xblockexpression_30; } else { _xifexpression_25 = false; } _switchResult = _xifexpression_25; } } if (!_matched) { if (Objects.equal(property, "jtab-selected-text-shadow-color")) { _matched=true; boolean _xblockexpression_31 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setSelectedTextShadowColor(hsb); } else { settings.setSelectedTextShadowColor(null); } _xblockexpression_31 = true; } _switchResult = _xblockexpression_31; } } if (!_matched) { if (Objects.equal(property, "jtab-selected-text-shadow-position")) { _matched=true; boolean _xifexpression_26 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_32 = false; { Point position = this.toPoint(((CSSValueList) value)); settings.setSelectedTextShadowPosition(position); _xblockexpression_32 = true; } _xifexpression_26 = _xblockexpression_32; } else { boolean _xifexpression_27 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_33 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int v = ((int) _floatValue); Point _point = new Point(v, v); settings.setSelectedTextShadowPosition(_point); _xblockexpression_33 = true; } _xifexpression_27 = _xblockexpression_33; } else { _xifexpression_27 = false; } _xifexpression_26 = _xifexpression_27; } _switchResult = _xifexpression_26; } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-text-shadow-color")) { _matched=true; boolean _xblockexpression_34 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setUnselectedTextShadowColor(hsb); } else { settings.setUnselectedTextShadowColor(null); } _xblockexpression_34 = true; } _switchResult = _xblockexpression_34; } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-text-shadow-position")) { _matched=true; boolean _xifexpression_28 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_35 = false; { Point position = this.toPoint(((CSSValueList) value)); settings.setUnselectedTextShadowPosition(position); _xblockexpression_35 = true; } _xifexpression_28 = _xblockexpression_35; } else { boolean _xifexpression_29 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_36 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int v = ((int) _floatValue); Point _point = new Point(v, v); settings.setUnselectedTextShadowPosition(_point); _xblockexpression_36 = true; } _xifexpression_29 = _xblockexpression_36; } else { _xifexpression_29 = false; } _xifexpression_28 = _xifexpression_29; } _switchResult = _xifexpression_28; } } if (!_matched) { if (Objects.equal(property, "jtab-hover-text-shadow-color")) { _matched=true; boolean _xblockexpression_37 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setHoverTextShadowColor(hsb); } else { settings.setHoverTextShadowColor(null); } _xblockexpression_37 = true; } _switchResult = _xblockexpression_37; } } if (!_matched) { if (Objects.equal(property, "jtab-hover-text-shadow-position")) { _matched=true; boolean _xifexpression_30 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_38 = false; { Point position = this.toPoint(((CSSValueList) value)); settings.setHoverTextShadowPosition(position); _xblockexpression_38 = true; } _xifexpression_30 = _xblockexpression_38; } else { boolean _xifexpression_31 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_39 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int v = ((int) _floatValue); Point _point = new Point(v, v); settings.setHoverTextShadowPosition(_point); _xblockexpression_39 = true; } _xifexpression_31 = _xblockexpression_39; } else { _xifexpression_31 = false; } _xifexpression_30 = _xifexpression_31; } _switchResult = _xifexpression_30; } } if (!_matched) { if (Objects.equal(property, "jtab-item-padding")) { _matched=true; boolean _xifexpression_32 = false; if ((value instanceof CSSValueList)) { boolean _xblockexpression_40 = false; { Rectangle insets = this.toInset(((CSSValueList) value)); settings.setTabItemPaddings(insets); _xblockexpression_40 = true; } _xifexpression_32 = _xblockexpression_40; } else { boolean _xifexpression_33 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_41 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int margin = ((int) _floatValue); Rectangle _rectangle = new Rectangle(margin, margin, margin, margin); settings.setTabItemPaddings(_rectangle); _xblockexpression_41 = true; } _xifexpression_33 = _xblockexpression_41; } else { _xifexpression_33 = false; } _xifexpression_32 = _xifexpression_33; } _switchResult = _xifexpression_32; } } if (!_matched) { if (Objects.equal(property, "jtab-item-horizontal-spacing")) { _matched=true; boolean _xifexpression_34 = false; if ((value instanceof CSSPrimitiveValue)) { boolean _xblockexpression_42 = false; { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); int radius = ((int) _floatValue); settings.setTabItemHorizontalSpacing(radius); _xblockexpression_42 = true; } _xifexpression_34 = _xblockexpression_42; } else { _xifexpression_34 = false; } _switchResult = _xifexpression_34; } } if (!_matched) { if (Objects.equal(property, "jtab-chevron-color")) { _matched=true; boolean _xblockexpression_43 = false; { RGB rgb = CSSSWTColorHelper.getRGB(((CSSValue) value)); boolean _notEquals = (!Objects.equal(rgb, null)); if (_notEquals) { HSB hsb = new HSB(rgb.red, rgb.green, rgb.blue); settings.setChevronColor(hsb); } else { settings.setChevronColor(null); } _xblockexpression_43 = true; } _switchResult = _xblockexpression_43; } } if (!_matched) { _switchResult = false; } boolean applied = _switchResult; return applied; } public String retrieveCSSProperty(final Object element, final String property, final String pseudo, final CSSEngine engine) throws Exception { @Extension final JTabRendererHelper JTabRendererHelper = new net.jeeeyul.eclipse.themes.rendering.internal.JTabRendererHelper(); CTabFolderElement tabFolderElement = ((CTabFolderElement) element); Object _nativeWidget = tabFolderElement.getNativeWidget(); CTabFolder tabFolder = ((CTabFolder) _nativeWidget); CTabFolderRenderer _renderer = tabFolder.getRenderer(); if ((!(_renderer instanceof JeeeyulsTabRenderer))) { return null; } CTabFolderRenderer _renderer_1 = tabFolder.getRenderer(); JeeeyulsTabRenderer renderer = ((JeeeyulsTabRenderer) _renderer_1); JTabSettings settings = renderer.getSettings(); String _switchResult = null; boolean _matched = false; if (!_matched) { if (Objects.equal(property, "jtab-border-color")) { _matched=true; HSB[] _borderColors = settings.getBorderColors(); int[] _borderPercents = settings.getBorderPercents(); _switchResult = this.toHTML(_borderColors, _borderPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-selected-border-color")) { _matched=true; HSB[] _selectedBorderColors = settings.getSelectedBorderColors(); int[] _selectedBorderPercents = settings.getSelectedBorderPercents(); _switchResult = this.toHTML(_selectedBorderColors, _selectedBorderPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-border-color")) { _matched=true; HSB[] _unselectedBorderColors = settings.getUnselectedBorderColors(); int[] _unselectedBorderPercents = settings.getUnselectedBorderPercents(); _switchResult = this.toHTML(_unselectedBorderColors, _unselectedBorderPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-hover-border-color")) { _matched=true; HSB[] _hoverBorderColors = settings.getHoverBorderColors(); int[] _hoverBorderPercents = settings.getHoverBorderPercents(); _switchResult = this.toHTML(_hoverBorderColors, _hoverBorderPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-border-radius")) { _matched=true; StringConcatenation _builder = new StringConcatenation(); int _borderRadius = settings.getBorderRadius(); _builder.append(_borderRadius, ""); _builder.append("px"); _switchResult = _builder.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-spacing")) { _matched=true; StringConcatenation _builder_1 = new StringConcatenation(); int _tabSpacing = settings.getTabSpacing(); _builder_1.append(_tabSpacing, ""); _builder_1.append("px"); _switchResult = _builder_1.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-color")) { _matched=true; HSB _closeButtonColor = settings.getCloseButtonColor(); _switchResult = this.safeHTML(_closeButtonColor); } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-hot-color")) { _matched=true; HSB _closeButtonHotColor = settings.getCloseButtonHotColor(); _switchResult = this.safeHTML(_closeButtonHotColor); } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-active-color")) { _matched=true; HSB _closeButtonActiveColor = settings.getCloseButtonActiveColor(); _switchResult = this.safeHTML(_closeButtonActiveColor); } } if (!_matched) { if (Objects.equal(property, "jtab-close-button-line-width")) { _matched=true; StringConcatenation _builder_2 = new StringConcatenation(); int _closeButtonLineWidth = settings.getCloseButtonLineWidth(); _builder_2.append(_closeButtonLineWidth, ""); _builder_2.append("px"); _switchResult = _builder_2.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-header-background")) { _matched=true; Color[] _gradientColor = JTabRendererHelper.getGradientColor(tabFolder); int[] _gradientPercents = JTabRendererHelper.getGradientPercents(tabFolder); _switchResult = this.toHTML(_gradientColor, _gradientPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-selected-tab-background")) { _matched=true; Color[] _selectionGradientColor = JTabRendererHelper.getSelectionGradientColor(tabFolder); int[] _selectionGradientPercents = JTabRendererHelper.getSelectionGradientPercents(tabFolder); _switchResult = this.toHTML(_selectionGradientColor, _selectionGradientPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-tabs-background")) { _matched=true; HSB[] _unselectedBackgroundColors = settings.getUnselectedBackgroundColors(); int[] _unselectedBackgroundPercents = settings.getUnselectedBackgroundPercents(); _switchResult = this.toHTML(_unselectedBackgroundColors, _unselectedBackgroundPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-hover-tabs-background")) { _matched=true; HSB[] _hoverBackgroundColors = settings.getHoverBackgroundColors(); int[] _hoverBackgroundPercents = settings.getHoverBackgroundPercents(); _switchResult = this.toHTML(_hoverBackgroundColors, _hoverBackgroundPercents); } } if (!_matched) { if (Objects.equal(property, "jtab-hover-color")) { _matched=true; HSB _hoverForgroundColor = settings.getHoverForgroundColor(); _switchResult = this.safeHTML(_hoverForgroundColor); } } if (!_matched) { if (Objects.equal(property, "jtab-margin")) { _matched=true; StringConcatenation _builder_3 = new StringConcatenation(); Rectangle _margins = settings.getMargins(); _builder_3.append(_margins.y, ""); _builder_3.append("px "); Rectangle _margins_1 = settings.getMargins(); _builder_3.append(_margins_1.width, ""); _builder_3.append("px "); Rectangle _margins_2 = settings.getMargins(); _builder_3.append(_margins_2.height, ""); _builder_3.append("px "); Rectangle _margins_3 = settings.getMargins(); _builder_3.append(_margins_3.x, ""); _builder_3.append("px"); _switchResult = _builder_3.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-padding")) { _matched=true; StringConcatenation _builder_4 = new StringConcatenation(); Rectangle _paddings = settings.getPaddings(); _builder_4.append(_paddings.y, ""); _builder_4.append("px "); Rectangle _paddings_1 = settings.getPaddings(); _builder_4.append(_paddings_1.width, ""); _builder_4.append("px "); Rectangle _paddings_2 = settings.getPaddings(); _builder_4.append(_paddings_2.height, ""); _builder_4.append("px "); Rectangle _paddings_3 = settings.getPaddings(); _builder_4.append(_paddings_3.x, ""); _builder_4.append("px"); _switchResult = _builder_4.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-shadow-color")) { _matched=true; HSB _shadowColor = settings.getShadowColor(); _switchResult = this.safeHTML(_shadowColor); } } if (!_matched) { if (Objects.equal(property, "jtab-shadow-radius")) { _matched=true; StringConcatenation _builder_5 = new StringConcatenation(); int _shadowRadius = settings.getShadowRadius(); _builder_5.append(_shadowRadius, ""); _builder_5.append("px"); _switchResult = _builder_5.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-shadow-position")) { _matched=true; Point _shadowPosition = settings.getShadowPosition(); _switchResult = this.safeHTML(_shadowPosition); } } if (!_matched) { if (Objects.equal(property, "jtab-selected-text-shadow-color")) { _matched=true; HSB _selectedTextShadowColor = settings.getSelectedTextShadowColor(); _switchResult = this.safeHTML(_selectedTextShadowColor); } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-text-shadow-color")) { _matched=true; HSB _unselectedTextShadowColor = settings.getUnselectedTextShadowColor(); _switchResult = this.safeHTML(_unselectedTextShadowColor); } } if (!_matched) { if (Objects.equal(property, "jtab-hover-text-shadow-color")) { _matched=true; HSB _hoverTextShadowColor = settings.getHoverTextShadowColor(); _switchResult = this.safeHTML(_hoverTextShadowColor); } } if (!_matched) { if (Objects.equal(property, "jtab-selected-text-shadow-position")) { _matched=true; Point _selectedTextShadowPosition = settings.getSelectedTextShadowPosition(); _switchResult = this.safeHTML(_selectedTextShadowPosition); } } if (!_matched) { if (Objects.equal(property, "jtab-unselected-text-shadow-position")) { _matched=true; Point _unselectedTextShadowPosition = settings.getUnselectedTextShadowPosition(); _switchResult = this.safeHTML(_unselectedTextShadowPosition); } } if (!_matched) { if (Objects.equal(property, "jtab-hover-text-shadow-position")) { _matched=true; Point _hoverTextShadowPosition = settings.getHoverTextShadowPosition(); _switchResult = this.safeHTML(_hoverTextShadowPosition); } } if (!_matched) { if (Objects.equal(property, "jtab-item-padding")) { _matched=true; StringConcatenation _builder_6 = new StringConcatenation(); _builder_6.append("0px "); Rectangle _tabItemPaddings = settings.getTabItemPaddings(); _builder_6.append(_tabItemPaddings.width, ""); _builder_6.append("px 0px "); Rectangle _tabItemPaddings_1 = settings.getTabItemPaddings(); _builder_6.append(_tabItemPaddings_1.x, ""); _builder_6.append("px"); _switchResult = _builder_6.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-item-horizontal-spacing")) { _matched=true; StringConcatenation _builder_7 = new StringConcatenation(); int _tabItemHorizontalSpacing = settings.getTabItemHorizontalSpacing(); _builder_7.append(_tabItemHorizontalSpacing, ""); _builder_7.append("px"); _switchResult = _builder_7.toString(); } } if (!_matched) { if (Objects.equal(property, "jtab-chevron-color")) { _matched=true; StringConcatenation _builder_8 = new StringConcatenation(); HSB _chevronColor = settings.getChevronColor(); String _hTMLCode = _chevronColor.toHTMLCode(); _builder_8.append(_hTMLCode, ""); _switchResult = _builder_8.toString(); } } if (!_matched) { _switchResult = null; } return _switchResult; } private String safeHTML(final HSB hsb) { String _xifexpression = null; boolean _equals = Objects.equal(hsb, null); if (_equals) { _xifexpression = "none"; } else { _xifexpression = hsb.toHTMLCode(); } return _xifexpression; } private String safeHTML(final Point point) { String _xifexpression = null; boolean _equals = Objects.equal(point, null); if (_equals) { _xifexpression = "none"; } else { StringConcatenation _builder = new StringConcatenation(); _builder.append(point.x, ""); _builder.append("px "); _builder.append(point.y, ""); _builder.append("px"); _xifexpression = _builder.toString(); } return _xifexpression; } private String toHTML(final HSB[] colors, final int[] percents) { boolean _or = false; boolean _equals = Objects.equal(colors, null); if (_equals) { _or = true; } else { boolean _equals_1 = Objects.equal(percents, null); _or = _equals_1; } if (_or) { return "none"; } else { StringConcatenation _builder = new StringConcatenation(); final Function1<HSB, String> _function = new Function1<HSB, String>() { public String apply(final HSB it) { return it.toHTMLCode(); } }; String _join = IterableExtensions.<HSB>join(((Iterable<HSB>)Conversions.doWrapArray(colors)), " ", _function); _builder.append(_join, ""); _builder.append(" "); final Function1<Integer, String> _function_1 = new Function1<Integer, String>() { public String apply(final Integer it) { return (it + "%"); } }; String _join_1 = IterableExtensions.<Integer>join(((Iterable<Integer>)Conversions.doWrapArray(percents)), " ", _function_1); _builder.append(_join_1, ""); return _builder.toString(); } } private String toHTML(final Color[] colors, final int[] percents) { boolean _or = false; boolean _equals = Objects.equal(colors, null); if (_equals) { _or = true; } else { boolean _equals_1 = Objects.equal(percents, null); _or = _equals_1; } if (_or) { return "none"; } else { StringConcatenation _builder = new StringConcatenation(); final Function1<Color, String> _function = new Function1<Color, String>() { public String apply(final Color it) { RGB _rGB = it.getRGB(); HSB _hSB = new HSB(_rGB); return _hSB.toHTMLCode(); } }; String _join = IterableExtensions.<Color>join(((Iterable<Color>)Conversions.doWrapArray(colors)), " ", _function); _builder.append(_join, ""); _builder.append(" "); final Function1<Integer, String> _function_1 = new Function1<Integer, String>() { public String apply(final Integer it) { return (it + "%"); } }; String _join_1 = IterableExtensions.<Integer>join(((Iterable<Integer>)Conversions.doWrapArray(percents)), " ", _function_1); _builder.append(_join_1, ""); return _builder.toString(); } } private Rectangle toInset(final CSSValueList list) { int top = 0; int right = 0; int bottom = 0; int left = 0; int _length = list.getLength(); switch (_length) { case 4: CSSValue _item = list.item(0); int _asPX = this.asPX(_item); top = _asPX; CSSValue _item_1 = list.item(1); int _asPX_1 = this.asPX(_item_1); right = _asPX_1; CSSValue _item_2 = list.item(2); int _asPX_2 = this.asPX(_item_2); bottom = _asPX_2; CSSValue _item_3 = list.item(3); int _asPX_3 = this.asPX(_item_3); left = _asPX_3; break; case 2: CSSValue _item_4 = list.item(0); int _asPX_4 = this.asPX(_item_4); top = _asPX_4; CSSValue _item_5 = list.item(1); int _asPX_5 = this.asPX(_item_5); right = _asPX_5; CSSValue _item_6 = list.item(0); int _asPX_6 = this.asPX(_item_6); bottom = _asPX_6; CSSValue _item_7 = list.item(1); int _asPX_7 = this.asPX(_item_7); left = _asPX_7; break; } return new Rectangle(left, top, right, bottom); } private Point toPoint(final CSSValueList list) { int x = 0; int y = 0; int _length = list.getLength(); switch (_length) { case 2: CSSValue _item = list.item(0); int _asPX = this.asPX(_item); x = _asPX; CSSValue _item_1 = list.item(1); int _asPX_1 = this.asPX(_item_1); y = _asPX_1; break; } return new Point(x, y); } private int asPX(final CSSValue value) { if ((value instanceof CSSPrimitiveValue)) { float _floatValue = ((CSSPrimitiveValue) value).getFloatValue(CSSPrimitiveValue.CSS_PX); return ((int) _floatValue); } return 0; } private HSB[] toHSBArray(final Gradient grad) { final ArrayList<HSB> hsb = CollectionLiterals.<HSB>newArrayList(); List _rGBs = grad.getRGBs(); final Procedure1<Object> _function = new Procedure1<Object>() { public void apply(final Object it) { HSB _hSB = new HSB(((RGB) it)); hsb.add(_hSB); } }; IterableExtensions.<Object>forEach(_rGBs, _function); return ((HSB[])Conversions.unwrapArray(hsb, HSB.class)); } }