UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

198 lines (150 loc) 4.98 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Sebastian Werner (wpbasti) * Fabian Jakobs (fjakobs) ************************************************************************ */ qx.Class.define("qxl.demobrowser.demo.widget.Slider", { extend : qx.application.Standalone, members : { main: function() { this.base(arguments); this.getRoot().add(this._createVerticalLayout(), {left:20, top:20}); this.getRoot().add(this._createHorizontalLayout(), {left:20, top:340}); }, _createVerticalLayout : function() { var sliders = [] sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ maximum: 1000, value: 100 }))); sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ minimum: -100, maximum: 100, singleStep: 5, pageStep: 20, value: 0 }))); sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ minimum: -600, maximum: -200, singleStep: 10, pageStep: 50, value: -300 }))); sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ minimum: 25, maximum: 75, singleStep: 5, pageStep: 10, value: 25 }))); var grid = new qx.ui.layout.Grid(); var container = new qx.ui.container.Composite(grid); container.setPadding(20); container.setWidth(530); container.setHeight(300); grid.setSpacing(5); grid.setRowFlex(0, 1); grid.setRowFlex(1, 1); grid.setRowFlex(2, 1); grid.setRowAlign(0, "left", "top"); grid.setRowAlign(1, "left", "middle"); grid.setRowAlign(2, "left", "bottom"); var col = 0; for (var i=0; i<sliders.length; i++) { var group = sliders[i]; group.slider.setOrientation("vertical"); container.add(group.slider, {row: 0, column: col, rowSpan: 3, colSpan: 1}); container.add(group.minimum, {row: 0, column: col+1}); container.add(group.value, {row: 1, column: col+1}); container.add(group.maximum, {row: 2, column: col+1}); grid.setColumnMinWidth(col+1, 80); grid.setColumnWidth(col+2, 20); col += 3; } return container; }, _createHorizontalLayout : function() { var sliders = [] sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ maximum: 1000, value: 100 }))); sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ minimum: -100, maximum: 100, singleStep: 5, pageStep: 20, value: 0 }))); sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ minimum: -600, maximum: -200, singleStep: 10, pageStep: 50, value: -300 }))); sliders.push(this._createSliderGroup(new qx.ui.form.Slider().set({ minimum: 25, maximum: 75, singleStep: 5, pageStep: 10, value: 25 }))); var grid = new qx.ui.layout.Grid(); var container = new qx.ui.container.Composite(grid); container.setPadding(20); container.setWidth(400); container.setHeight(400); grid.setSpacing(5); grid.setColumnFlex(0, 1); grid.setColumnFlex(1, 1); grid.setColumnFlex(2, 1); grid.setColumnAlign(0, "left", "bottom"); grid.setColumnAlign(1, "center", "bottom"); grid.setColumnAlign(2, "right", "bottom"); var row = 0; for (var i=0; i<sliders.length; i++) { var group = sliders[i]; group.slider.setOrientation("horizontal"); group.value.setWidth(100); group.value.setTextAlign("center"); container.add(group.minimum, {row: row, column: 0}); container.add(group.value, {row: row, column: 1}); container.add(group.maximum, {row: row, column: 2}); container.add(group.slider, {row: row+1, column: 0, colSpan: 3, rowSpan: 1}); grid.setRowHeight(row+2, 20); row += 3; } return container; }, _createSliderGroup : function(slider) { var group = { slider: slider, minimum: new qx.ui.basic.Label("Min: " + slider.getMinimum().toString()), maximum: new qx.ui.basic.Label("Max: " + slider.getMaximum().toString()), value: new qx.ui.basic.Label(slider.getValue().toString()) }; slider.addListener("changeValue", function(e) { group.value.setValue(slider.getValue().toString()); }); return group; } } });