Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function DropDown() {
- var self = this;
- this.data = null;
- this.defaultValue = null;
- this.initialized = false;
- this.selectedIndex = 0;
- this.selectedValue = null;
- this.left = 0;
- this.top = 0;
- this.width = 200;
- this.container = null;
- this.init = function (params) {
- if (!self.initialized) {
- self.container = params.container;
- self.left = params.left;
- self.top = params.top;
- self.width = params.width;
- self.data = params.data;
- self.defaultValue = params.defaultValue;
- self.selectedValue = params.defaultValue;
- var rows = self.createRows();
- if (utils.isAndroid) {
- self.displayAndroid(rows);
- }
- else {
- //self.displayHtml();
- self.displayIPhone(rows);
- }
- }
- }
- this.createRows = function () {
- var rows = [];
- for (var k = 0; k < self.data.length; k++) {
- rows[k] = Titanium.UI.createPickerRow({ title: self.data[k].Name.replace("&", "&"), Id: self.data[k].Id });
- if (self.data[k].Id == self.defaultValue) {
- self.selectedIndex = k;
- }
- }
- return rows;
- }
- this.displayIPhone = function (data) {
- var text = self.data[self.selectedIndex].Name;
- var lblName = new Label(tt.combine($$.picker, { text: text,
- top: self.top + 23, left: self.left + 10, zIndex: 10
- }));
- var dropdownimage = new ImageView({ image: "/images/self.png", width: 250, height: 64,
- top: self.top, left: self.left });
- dropdownimage.addEventListener("click", function () {
- if (!self.initialized) {
- self.modalPicker = new ModalPicker();
- self.modalPicker.init();
- }
- self.modalPicker.show({
- data: data,
- on_select: function (e) {
- lblName.text = self.modalPicker.picker.getSelectedRow(0).title;
- self.selectedValue = self.modalPicker.picker.getSelectedRow(0).Id;
- self.modalPicker.hide();
- }
- });
- if (!self.initialized) {
- self.modalPicker.picker.setSelectedRow(0, self.selectedIndex, true);
- self.initialized = true;
- }
- });
- self.container.add(lblName);
- self.container.add(dropdownimage);
- }
- this.displayAndroid = function (data) {
- var picker = new Picker({ left: self.left, top: self.top, selectionIndicator: true });
- picker.add(data);
- picker.setSelectedRow(0, self.selectedIndex, false);
- picker.addEventListener("change", function (e) {
- self.selectedValue = e.row.Id;
- });
- self.container.add(picker);
- }
- this.displayHtml = function () {
- Ti.App.addEventListener("setDropdownValue", function (e) {
- self.selectedValue = e.value;
- });
- var html = "<html><body>";
- html += "<select id='dropdown' style='width: " + (self.width - 10) + "px; font-size: 20px;'>";
- for (var k = 0; k < self.data.length; k++) {
- html += "<option value=\"" + self.data[k].Id + "\"" +
- (self.data[k].Id == self.defaultValue ? " selected=\"selected\"" : "") + ">" + self.data[k].Name + "</option>";
- }
- html += "</select>";
- html += "<script type='text/javascript'>";
- html += "var dropdown = document.getElementById('dropdown');";
- html += "self.onchange = function(){ Ti.App.fireEvent('setDropdownValue',{value: this.value }); };";
- html += "</script>";
- html += "</body></html>";
- self.container.add(new WebView({ left: self.left, top: self.top,
- width: self.width, height: 46, html: html
- }));
- }
- this.getSelectedValue = function () {
- return self.selectedValue;
- }
- }
Add Comment
Please, Sign In to add comment