Guest User

Untitled

a guest
Apr 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function DropDown() {
  2.  
  3.     var self = this;
  4.  
  5.     this.data = null;
  6.     this.defaultValue = null;
  7.     this.initialized = false;
  8.     this.selectedIndex = 0;
  9.     this.selectedValue = null;
  10.     this.left = 0;
  11.     this.top = 0;
  12.     this.width = 200;
  13.     this.container = null;
  14.  
  15.     this.init = function (params) {
  16.  
  17.         if (!self.initialized) {
  18.             self.container = params.container;
  19.             self.left = params.left;
  20.             self.top = params.top;
  21.             self.width = params.width;
  22.             self.data = params.data;
  23.             self.defaultValue = params.defaultValue;
  24.             self.selectedValue = params.defaultValue;
  25.             var rows = self.createRows();
  26.             if (utils.isAndroid) {
  27.                 self.displayAndroid(rows);
  28.             }
  29.             else {
  30.                 //self.displayHtml();
  31.                 self.displayIPhone(rows);
  32.             }
  33.         }
  34.  
  35.     }
  36.  
  37.     this.createRows = function () {
  38.  
  39.         var rows = [];
  40.         for (var k = 0; k < self.data.length; k++) {
  41.             rows[k] = Titanium.UI.createPickerRow({ title: self.data[k].Name.replace("&", "&"), Id: self.data[k].Id });
  42.             if (self.data[k].Id == self.defaultValue) {
  43.                 self.selectedIndex = k;
  44.             }
  45.         }
  46.         return rows;
  47.  
  48.     }
  49.  
  50.     this.displayIPhone = function (data) {
  51.  
  52.         var text = self.data[self.selectedIndex].Name;
  53.         var lblName = new Label(tt.combine($$.picker, { text: text,
  54.             top: self.top + 23, left: self.left + 10, zIndex: 10
  55.         }));
  56.         var dropdownimage = new ImageView({ image: "/images/self.png", width: 250, height: 64,
  57.             top: self.top, left: self.left });
  58.         dropdownimage.addEventListener("click", function () {
  59.             if (!self.initialized) {
  60.                 self.modalPicker = new ModalPicker();
  61.                 self.modalPicker.init();
  62.             }
  63.             self.modalPicker.show({
  64.                 data: data,
  65.                 on_select: function (e) {
  66.                     lblName.text = self.modalPicker.picker.getSelectedRow(0).title;
  67.                     self.selectedValue = self.modalPicker.picker.getSelectedRow(0).Id;
  68.                     self.modalPicker.hide();
  69.                 }
  70.             });
  71.             if (!self.initialized) {
  72.                 self.modalPicker.picker.setSelectedRow(0, self.selectedIndex, true);
  73.                 self.initialized = true;
  74.             }
  75.         });
  76.         self.container.add(lblName);
  77.         self.container.add(dropdownimage);
  78.  
  79.     }
  80.  
  81.     this.displayAndroid = function (data) {
  82.  
  83.         var picker = new Picker({ left: self.left, top: self.top, selectionIndicator: true });
  84.         picker.add(data);
  85.         picker.setSelectedRow(0, self.selectedIndex, false);
  86.         picker.addEventListener("change", function (e) {
  87.             self.selectedValue = e.row.Id;
  88.         });
  89.         self.container.add(picker);
  90.  
  91.     }
  92.  
  93.     this.displayHtml = function () {
  94.  
  95.         Ti.App.addEventListener("setDropdownValue", function (e) {
  96.             self.selectedValue = e.value;
  97.         });
  98.         var html = "<html><body>";
  99.         html += "<select id='dropdown' style='width: " + (self.width - 10) + "px; font-size: 20px;'>";
  100.         for (var k = 0; k < self.data.length; k++) {
  101.             html += "<option value=\"" + self.data[k].Id + "\"" +
  102.                 (self.data[k].Id == self.defaultValue ? " selected=\"selected\"" : "") + ">" + self.data[k].Name + "</option>";
  103.         }
  104.         html += "</select>";
  105.         html += "<script type='text/javascript'>";
  106.         html += "var dropdown = document.getElementById('dropdown');";
  107.         html += "self.onchange = function(){ Ti.App.fireEvent('setDropdownValue',{value: this.value }); };";
  108.         html += "</script>";
  109.         html += "</body></html>";
  110.         self.container.add(new WebView({ left: self.left, top: self.top,
  111.             width: self.width, height: 46, html: html
  112.         }));
  113.  
  114.     }
  115.  
  116.     this.getSelectedValue = function () {
  117.  
  118.         return self.selectedValue;
  119.  
  120.     }
  121.  
  122. }
Add Comment
Please, Sign In to add comment