diff --git a/src/case/colorchooser/colorchooser.custom.js b/src/case/colorchooser/colorchooser.custom.js index 49091a10a..c34d92500 100644 --- a/src/case/colorchooser/colorchooser.custom.js +++ b/src/case/colorchooser/colorchooser.custom.js @@ -19,13 +19,15 @@ BI.CustomColorChooser = BI.inherit(BI.Widget, { BI.CustomColorChooser.superclass._init.apply(this, arguments); var self = this, o = this.options; this.editor = BI.createWidget(o.editor, { - type: "bi.simple_hex_color_picker_editor" + type: "bi.simple_hex_color_picker_editor", + value: o.value }); this.editor.on(BI.ColorPickerEditor.EVENT_CHANGE, function () { self.setValue(this.getValue()); }); this.farbtastic = BI.createWidget({ - type: "bi.farbtastic" + type: "bi.farbtastic", + value: o.value }); this.farbtastic.on(BI.Farbtastic.EVENT_CHANGE, function () { self.setValue(this.getValue()); @@ -66,4 +68,4 @@ BI.CustomColorChooser = BI.inherit(BI.Widget, { } }); BI.CustomColorChooser.EVENT_CHANGE = "EVENT_CHANGE"; -BI.shortcut("bi.custom_color_chooser", BI.CustomColorChooser); \ No newline at end of file +BI.shortcut("bi.custom_color_chooser", BI.CustomColorChooser); diff --git a/src/case/colorchooser/colorchooser.js b/src/case/colorchooser/colorchooser.js index 698afa714..737b3a189 100644 --- a/src/case/colorchooser/colorchooser.js +++ b/src/case/colorchooser/colorchooser.js @@ -33,6 +33,7 @@ BI.ColorChooser = BI.inherit(BI.Widget, { ref: function (_ref) { self.trigger = _ref; }, + value: o.value, width: o.el.type ? o.width : o.width - 2, height: o.el.type ? o.height : o.height - 2 }, o.el), diff --git a/src/case/colorchooser/colorchooser.popup.hex.js b/src/case/colorchooser/colorchooser.popup.hex.js index 24ede8718..b8c98cb36 100644 --- a/src/case/colorchooser/colorchooser.popup.hex.js +++ b/src/case/colorchooser/colorchooser.popup.hex.js @@ -141,6 +141,7 @@ BI.HexColorChooserPopup = BI.inherit(BI.Widget, { title: BI.i18nText("BI-Custom_Color"), el: { type: "bi.custom_color_chooser", + value: o.value, editor: o.editor, ref: function (_ref) { self.customColorChooser = _ref; diff --git a/src/case/colorchooser/farbtastic/farbtastic.js b/src/case/colorchooser/farbtastic/farbtastic.js index 58eb563ca..a5ec6736b 100644 --- a/src/case/colorchooser/farbtastic/farbtastic.js +++ b/src/case/colorchooser/farbtastic/farbtastic.js @@ -127,42 +127,11 @@ BI.Farbtastic = BI.inherit(BI.BasicButton, { }, _HSLToRGB: function (hsl) { - var m1, m2, r, g, b; - var h = hsl[0], s = hsl[1], l = hsl[2]; - m2 = (l <= 0.5) ? l * (s + 1) : l + s - l * s; - m1 = l * 2 - m2; - return [this._hueToRGB(m1, m2, h + 0.33333), - this._hueToRGB(m1, m2, h), - this._hueToRGB(m1, m2, h - 0.33333)]; - }, - - _hueToRGB: function (m1, m2, h) { - h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h); - if (h * 6 < 1) return m1 + (m2 - m1) * h * 6; - if (h * 2 < 1) return m2; - if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6; - return m1; + return BI.DOM.hsl2rgb(hsl); }, _RGBToHSL: function (rgb) { - var min, max, delta, h, s, l; - var r = rgb[0], g = rgb[1], b = rgb[2]; - min = Math.min(r, Math.min(g, b)); - max = Math.max(r, Math.max(g, b)); - delta = max - min; - l = (min + max) / 2; - s = 0; - if (l > 0 && l < 1) { - s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l)); - } - h = 0; - if (delta > 0) { - if (max == r && max != g) h += (g - b) / delta; - if (max == g && max != b) h += (2 + (b - r) / delta); - if (max == b && max != r) h += (4 + (r - g) / delta); - h /= 6; - } - return [h, s, l]; + return BI.DOM.rgb2hsl(rgb); }, _updateDisplay: function () { diff --git a/src/core/platform/web/dom.js b/src/core/platform/web/dom.js index 63583c0c3..fbb9aac56 100644 --- a/src/core/platform/web/dom.js +++ b/src/core/platform/web/dom.js @@ -205,6 +205,45 @@ return hexColour; }, + _hue2rgb: function (m1, m2, h) { + h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h); + if (h * 6 < 1) return m1 + (m2 - m1) * h * 6; + if (h * 2 < 1) return m2; + if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6; + return m1; + }, + + hsl2rgb: function (hsl) { + var m1, m2, r, g, b; + var h = hsl[0], s = hsl[1], l = hsl[2]; + m2 = (l <= 0.5) ? l * (s + 1) : l + s - l * s; + m1 = l * 2 - m2; + return [this._hue2rgb(m1, m2, h + 0.33333), + this._hue2rgb(m1, m2, h), + this._hue2rgb(m1, m2, h - 0.33333)]; + }, + + rgb2hsl: function (rgb) { + var min, max, delta, h, s, l; + var r = rgb[0], g = rgb[1], b = rgb[2]; + min = Math.min(r, Math.min(g, b)); + max = Math.max(r, Math.max(g, b)); + delta = max - min; + l = (min + max) / 2; + s = 0; + if (l > 0 && l < 1) { + s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l)); + } + h = 0; + if (delta > 0) { + if (max == r && max != g) h += (g - b) / delta; + if (max == g && max != b) h += (2 + (b - r) / delta); + if (max == b && max != r) h += (4 + (r - g) / delta); + h /= 6; + } + return [h, s, l]; + }, + rgb2json: function (rgbColour) { if (!rgbColour) { return {}; @@ -346,7 +385,8 @@ }, isInnerLeftSpaceEnough: function (combo, popup, extraWidth) { - var viewBounds = popup.element.bounds(),windowBounds = BI.Widget._renderEngine.createElement("body").bounds(); + var viewBounds = popup.element.bounds(), + windowBounds = BI.Widget._renderEngine.createElement("body").bounds(); return BI.DOM.getInnerLeftPosition(combo, popup, extraWidth).left + viewBounds.width <= windowBounds.width; },