$(function() { var $body = $("body"), $panel = $("
") .attr({ id: "panel" }) .appendTo($body), objects = { "Button": [ { options: { style: "symbol", title: "add", type: "image" }, title: "Symbol Button" }, { options: { title: "add", type: "image", }, title: "Image Button" }, { options: { title: "Button", }, title: "Text Button" }, { options: { selectable: true, title: "Button", }, title: "Selectable Button" }, { options: { disabled: true, title: "Button", }, title: "Disabled Button" }, { options: { title: [ {id: "one", title: "expand"}, {id: "two", title: "collapse"}, ], type: "image" }, title: "Multi-Title Image Button" }, { options: { selectable: true, title: [ {id: "off", title: "Off"}, {id: "on", title: "On"}, ], width: 32 }, title: "Multi-Title Selectable Text Button" } ], "ButtonGroup": [ { options: { buttons: [ { id: "", title: "close" }, { id: "", title: "remove" }, { id: "", title: "add" }, { id: "", title: "check" }, { id: "", title: "edit" }, { id: "", title: "find" }, { id: "", title: "select" }, { id: "", title: "unlock" }, { id: "", title: "lock" }, { id: "", title: "previous" }, { id: "", title: "next" }, { id: "", title: "above" }, { id: "", title: "below" }, { id: "", title: "play" }, { id: "", title: "pause" }, { id: "", title: "mute" }, { id: "", title: "volume" }, { id: "", title: "unmute" }, { id: "", title: "expand" }, { id: "", title: "collapse" }, { id: "", title: "info" }, { id: "", title: "help" }, { id: "", title: "warning" }, { id: "", title: "user" }, { id: "", title: "location" }, { id: "", title: "date" }, { id: "", title: "time" }, ], id: "buttonGroupImage", type: "image" }, title: "Image ButtonGroup" }, { options: { buttons: [ { id: "one", title: "do something", }, { id: "two", title: "do something else", } ], id: "buttonGroupText" }, title: "Text ButtonGroup" }, { options: { buttons: [ { id: "either", title: "select me", }, { id: "or1", title: "or select me", }, { id: "or2", title: "or select me", } ], id: "selectableButtonGroupOne", selectable: true }, title: "Selectable ButtonGroup, select one" }, { options: { buttons: [ { id: "both", title: "select me", }, { id: "and", title: "and select me", }, { id: "or", title: "or select me", } ], id: "selectableButtonGroupOneTwo", max: 2, min: 1, selectable: true }, title: "Selectable ButtonGroup, select one or two" }, { options: { buttons: [ { id: "both", title: "select me", }, { id: "and", title: "and select me", }, { id: "or", title: "or select me", } ], id: "selectableButtonGroupTwo", max: 2, min: 2, selectable: true }, title: "Selectable ButtonGroup, select two" }, { options: { buttons: [ { id: "both", title: "select me", }, { id: "and1", title: "and select me", }, { id: "and2", title: "and select me", } ], id: "selectableButtonGroupAny", max: -1, min: 0, selectable: true }, title: "Selectable ButtonGroup, select any" }, { options: { buttons: [ { id: "either", title: "select me", }, { id: "or1", title: "or select me", }, { id: "or2", title: "or select me", } ], id: "tabButtonGroup", selectable: true, style: "tab" }, title: "Tab ButtonGroup" } ], "Checkbox": [ { options: {}, title: "Checkbox" }, { options: { title: "check me", }, title: "Checkbox with Title" }, { options: { disabled: true, title: "check me", }, title: "Disabled Checkbox with Title" }, { options: { title: "check me", width: 300, }, title: "Checkbox with Title and Width" } ], "CheckboxGroup": [ { options: { checkboxes: [ {id: "either", title: "check me"}, {id: "or1", title: "or check me"}, {id: "or2", title: "or check me"}, ], id: "CheckboxGroupOne", width: 300 }, title: "CheckboxGroup, select one" }, { options: { checkboxes: [ {id: "either", title: "check me"}, {id: "or1", title: "or check me"}, {id: "or2", title: "or check me"}, ], id: "CheckboxGroupTwo", max: 2, min: 2, width: 300 }, title: "CheckboxGroup, select two" }, { options: { checkboxes: [ {id: "both", title: "check me"}, {id: "and1", title: "and check me"}, {id: "and2", title: "and check me"}, ], id: "CheckboxGroupAny", max: -1, min: 0, width: 300 }, title: "CheckboxGroup, select any" }, ], "ColorInput": [ { options: { id: "colorInput", value: "255, 0, 0" }, title: "ColorInput" } ], "DateInput": [ { options: { id: "dateInputShort" }, title: "Short DateInput" }, { options: { format: "medium", id: "dateInputMedium" }, title: "Medium DateInput" }, { options: { format: "long", id: "dateInputLong", }, title: "Long DateInput" }, { options: { id: "dateInputShortValue", value: "2000-01-01" }, title: "Short DateInput with Value" }, { options: { format: "medium", id: "dateInputMediumWeekday", weekday: true }, title: "Medium DateInput with Weekday" }, { options: { format: "long", id: "dateInputLongWeekday", weekday: true }, title: "Long DateInput with Weekday" } ], "DateTimeInput": [ { options: { id: "dateTimeInputShort" }, title: "Short DateTimeInput" }, { options: { ampm: true, format: "long", id: "dateTimeInputLong", seconds: true, weekday: true, }, title: "Long DateTimeInput" }, ], "FormElementGroup": [ { options: { elements: [ new Ox.Select({ id: "select", items: [ {id: "one", title: "Find: One"}, {id: "two", title: "Find: Two"}, {id: "three", title: "Find: Three"} ], overlap: "right", width: 128 }), new Ox.Input({ id: "input", width: 128 }) ], id: "formElementGroupSelectInput" }, title: "FormElementGroup (Select and Input)" }, { options: { elements: [ new Ox.Input({ id: "input_", width: 128 }), new Ox.Select({ id: "select_", items: [ {id: "kb", title: "KB"}, {id: "mb", title: "MB"}, {id: "gb", title: "GB"}, {id: "tb", title: "TB"} ], overlap: "left", width: 128 }), ], float: "right", id: "formElementGroupInputSelect" }, title: "FormElementGroup (Input and Select)" }, { options: { elements: [ new Ox.Select({ id: "selectOne", items: [ {id: "one", title: "Title"}, {id: "two", title: "Date"}, {id: "three", title: "Place"} ], overlap: "right", width: 128 }), new Ox.Select({ id: "selectTwo", items: [ {id: "one", title: "is"}, {id: "two", title: "is between"}, {id: "three", title: "is not between"} ], overlap: "right", width: 128 }), new Ox.InputGroup({ id: "input", inputs: [ new Ox.DateInput({ id: "inputOne", width: { day: 36, month: 36, year: 56 } }), new Ox.DateInput({ id: "inputTwo", width: { day: 36, month: 36, year: 56 } }), ], separators: [ {title: "and", width: 32} ] }) ], id: "formElementGroupSelectSelectInput" }, title: "FormElementGroup (two Selects, one Input)" } ], "Input": [ { options: { value: "Value" }, title: "Input" }, { options: { disabled: true, value: "Disabled" }, title: "Disabled Input" }, { options: { placeholder: "Placeholder" }, title: "Input with Placeholder" }, { options: { label: "Label" }, title: "Input with Label" }, { options: { clear: true }, title: "Input with Clear Button" }, { options: { clear: true, label: "Label", placeholder: "Placeholder", width: 256 }, title: "Input with Label, Placeholder and Button" }, { options: { type: "password" }, title: "Password Input" }, { options: { clear: true, placeholder: "Password", type: "password" }, title: "Password Input with Placeholder" }, { options: { type: "float" }, title: "Float Input (0.0 - 100.0)" }, { options: { max: 255, type: "integer" }, title: "Integer Input (0 - 255)" }, { options: { clear: true, id: "integerClear", max: 255, type: "integer" }, title: "Integer Input with Clear Button" }, { options: { arrows: true, id: "integerArrows", max: 255, type: "integer" }, title: "Integer Input with Arrows" }, { options: { autocomplete: $.map(Ox.getCountries(), function(v, i) { return v.name; }), autocompleteReplace: true, id: "autocompleteReplace" }, title: "Autocomplete with Replace" }, { options: { autocomplete: $.map(Ox.getCountries(), function(v, i) { return v.name; }), autocompleteReplace: true, autocompleteReplaceCorrect: true, id: "autocompleteReplaceCorrect" }, title: "Autocomplete with Replace and Correct" }, { options: { autocomplete: $.map(Ox.getCountries(), function(v, i) { return v.name; }), autocompleteSelect: true, autocompleteSelectHighlight: true, id: "autocompleteSelect" }, title: "Autocomplete with Select" }, { options: { autocomplete: $.map(Ox.getCountries(), function(v, i) { return v.name; }), autocompleteReplace: true, autocompleteSelect: true, autocompleteSelectHighlight: true, id: "autocompleteReplaceSelect" }, title: "Autocomplete with Replace and Select" }, { options: { autocomplete: $.map(Ox.getCountries(), function(v, i) { return v.name; }), autocompleteReplace: true, autocompleteReplaceCorrect: true, autocompleteSelect: true, autocompleteSelectHighlight: true, id: "autocompleteReplaceCorrectSelect" }, title: "Autocomplete with Replace, Correct and Select" }, /* { options: { autocomplete: function(value, callback) { callback([value]); }, autocompleteSelect: true, autocompleteSelectHighlight: true, id: "autocompleteFunction" }, title: "Autocomplete with Select (Function)" }, { options: { autocorrect: /\d/, }, title: "Autocorrect with RegExp (Integer)" }, { options: { autocorrect: function(value, blur, callback) { var length = value.length; value = $.map(value.toLowerCase().split(""), function(v, i) { Ox.print(new RegExp("[\d" + ((i == 0 || (i == length - 1 && blur)) ? "" : "\.") + "]")) if (new RegExp("[\\d" + ((i == 0 || (i == length - 1 && blur) || i != value.indexOf(".")) ? "" : "\\.") + "]")(v)) { return v; } else { return null; } }).join(""); callback(blur ? parseFloat(value) : value); }, }, title: "Autocorrect with Function (Float)" }, */ ], "InputGroup": [ { options: { id: "inputGroup", inputs: [ Ox.Input({id: "width", placeholder: "Width", width: 64}), Ox.Input({id: "height", placeholder: "Height", width: 64}) ], separators: [ {title: "x", width: 16} ] }, title: "InputGroup" }, { options: { id: "inputGroupWithWidth", inputs: [ Ox.Input({id: "width", placeholder: "Width"}), Ox.Input({id: "height", placeholder: "Height"}) ], separators: [ {title: "x", width: 16} ], width: 128 }, title: "InputGroup with Width" }, { options: { id: "inputGroupUsernamePassword", inputs: [ Ox.Input({clear: true, id: "username", label: "Username", labelWidth: 80, placeholder: "Username"}), Ox.Input({clear: true, id: "password", label: "Password", labelWidth: 80, placeholder: "Password", type: "password"}) ], separators: [ {title: "", width: 8}, ], width: 400 }, title: "Complex InputGroup" }, { options: { id: "inputGroupTest", inputs: [ Ox.Select({ id: "select", items: [ {id: "one", title: "One"}, {id: "two", title: "Two"}, {id: "three", title: "Three"} ], overlap: "right", width: 128 }), Ox.Input({ id: "input", placeholder: "Placeholder", width: 128 }) ], separators: [ {title: "", width: 0} ] } } ], "Label": [ { options: { title: "Title" }, title: "Label" }, { options: { disabled: true, title: "Title" }, title: "Disabled Label" }, { options: { title: "Title", width: 128 }, title: "Label with Width" }, { options: { textAlign: "right", title: "Title", width: 128 }, title: "Right-Aligned Label" } ], "PlaceInput": [ { options: { id: "placeInput" }, title: "PlaceInput" } ], "Range": [ { options: { id: "range" }, title: "Range" }, { options: { arrows: true, id: "rangeArrows" }, title: "Range with Arrows" }, { options: { arrows: true, id: "rangeThumbValue", max: 10, min: 0, thumbSize: 32, thumbValue: true, }, title: "Range with Thumb Value" }, { options: { id: "rangeValueNames", max: 1, min: 0, size: 48, thumbSize: 32, thumbValue: true, valueNames: ["Off", "On"] }, title: "Range with Value Names" }, { options: { id: "rangeTrackColors", max: 255, min: 0, size: 400, thumbSize: 40, thumbValue: true, trackColors: [ "rgb(0, 0, 0)", "rgb(255, 255, 255)" ], }, title: "Range with Track Colors" }, { options: { id: "rangeTrackColorsColor", max: 359, min: 0, size: 400, thumbSize: 40, thumbValue: true, trackColors: [ "rgb(255, 0, 0)", "rgb(255, 255, 0)", "rgb(0, 255, 0)", "rgb(0, 255, 255)", "rgb(0, 0, 255)", "rgb(255, 0, 255)", "rgb(255, 0, 0)" ] }, title: "Range with Track Colors" }, { options: { id: "rangeTrackImage", size: 400, trackImages: ["png/timeline.png"] }, title: "Range with Track Image" }, { options: { id: "rangeTrackImages", max: 5, size: 386, thumbValue: true, trackImages: [ "png/red.png", "png/yellow.png", "png/green.png", "png/cyan.png", "png/blue.png", "png/magenta.png" ], valueNames: ["Red", "Yellow", "Green", "Cyan", "Blue", "Magenta"] }, title: "Range with Track Images" }, { options: { id: "rangeTrackImages", max: 9, size: 240, trackImages: [ "jpg/Children's Games.jpg", "jpg/Dulle Griet.jpg", "jpg/Landscape With the Fall of Icarus.jpg", "jpg/Netherlandish Proverbs.jpg", "jpg/The Fight Between Carnival and Lent.jpg", "jpg/The Hunters in the Snow.jpg", "jpg/The Procession to Calvary.jpg", "jpg/The Tower of Babel.jpg", "jpg/The Triumph of Death.jpg", "jpg/Winter Landscape With a Bird Trap.jpg", ] }, title: "Range with Track Images" }, ], "Select": [ { options: { id: "imageSelectOne", items: [ {id: "one", title: "select me"}, {id: "two", title: "or select me"}, {id: "three", title: "or select me"} ], type: "image" }, title: "Image Select, select one" }, { options: { id: "imageSelectTwo", items: [ {id: "one", title: "select me"}, {id: "two", title: "or select me"}, {id: "three", title: "or select me"} ], max: 2, min: 2, type: "image" }, title: "Image Select, select two" }, { options: { id: "imageSelectAny", items: [ {id: "one", title: "select me"}, {id: "two", title: "and select me"}, {id: "three", title: "and select me"} ], max: -1, min: 0, type: "image" }, title: "Image Select, select any" }, { options: { id: "textSelectOne", items: [ {id: "one", title: "Item One"}, {id: "two", title: "Item Two"}, {id: "three", title: "Item Three"} ] }, title: "Text Select, select one" }, { options: { id: "textSelectAny", items: [ {id: "one", title: "Item One"}, {id: "two", title: "Item Two"}, {id: "three", title: "Item Three"} ], max: -1, min: 0, title: "Title..." }, title: "Text Select, select any" }, { options: { id: "textSelectNone", items: [ {id: "one", title: "Item One"}, {id: "two", title: "Item Two"}, {id: "three", title: "Item Three"} ], selectable: false, title: "Title..." }, title: "Text Select, select none" }, { options: { id: "textSelectWidth", items: [ {id: "one", title: "Item One"}, {id: "two", title: "Item Two"}, {id: "three", title: "Item Three Has a Long Title"} ], width: 128 }, title: "Text Select with Width" } ], "TimeInput": [ { options: { id: "timeInput", width: 72 }, title: "TimeInput" }, { options: { id: "timeInputSeconds", seconds: true, width: 112 }, title: "TimeInput with Seconds" }, { options: { id: "timeInputMilliseconds", milliseconds: true, //width: 168 }, title: "TimeInput with Milliseconds" }, { options: { ampm: true, id: "timeInputAmPm", seconds: true, width: 152 }, title: "TimeInput with am/pm" }, { options: { id: "timeInputValue", seconds: true, value: "00:00:00", width: 112 }, title: "TimeInput with Value" } ] }; $.each(objects, function(object, elements) { var $div = $("
").appendTo($panel); new Ox.Label({ title: "Ox." + object, width: 840 }) .addClass("margin") .appendTo($div); $("
").appendTo($panel); // if (object != "PlaceInput") return; $.each(elements, function(i, element) { var $div = $("
").appendTo($panel), $label, $element, $button; $label = Ox.Label({ textAlign: "right", title: element.title, width: 256 }) .addClass("margin") .appendTo($div); try { $label.attr({ title: "Ox." + object + "(" + JSON.stringify(element.options) + ")" }); } catch(error) { } $element = new Ox[object](element.options) .addClass("margin") .appendTo($div); if (object != "Button" && object != "Label") { $button = new Ox.Button({ id: "id" + Ox.uid(), title: "Value" }) .addClass("margin") .bindEvent("click", function() { var value = $element.options("value"), $dialog = new Ox.Dialog({ buttons: [ new Ox.Button({ id: 'close', title: 'Close' }).bindEvent({ click: function() { $dialog.close(); } }) ], content: Ox.isUndefined(value) ? "undefined" : value, height: 128, id: "value", title: "Value", width: 256 }) .open(); }) .appendTo($div); } $("
").appendTo($panel); }); }); $("
") .css({ height: "256px" }) .appendTo($panel); });