示例#1
0
function createHeightField(field) {
  S.Log.trace('+createHeightField');
  var value = field.value || 66;
  
  var view = Ti.UI.createView(S.combine(textFieldDefaults, {value: value, backgroundColor: 'white', borderRadius: 4}));
  
  view.gather = function() {
    S.Log.trace("+gather:  " + view.value + ' ('+view.ftField.value+ ','+view.inchField.value +')')
    view.value = parseInt(view.inchField.value) + parseInt(view.ftField.value) * 12 + '';
//    view.setValue(view.value + '');
  }
  
  view.setValue = function(value) {
    S.Log.trace("+setValue:  " + value);
    try {     
      if ('' === value) value = 0;
      if (value) {
        view.value = parseInt(value, 10);
        if (isNaN(view.value)) view.value = 0;
        if (view.value < 0) view.value = 0;
        if (view.value > 100) view.value = 0;
      }     
      view.ftField.value = Math.floor(view.value/12) + '';
      view.inchField.value = view.value % 12 + '';
    } catch(err) {
      S.Log.debug(err);
    }
    S.Log.trace("-setValue:  " + value);
  }
  
  S.Log.trace('1. createHeightField');
    
  view.ftField = Ti.UI.createTextField(S.combine(textFieldDefaults, {width: '40dp', hintText: 'ft', top: 0, left: '70dp', value: '', keyboardType: keyboardMap[exports.TYPE_NUMBER] }));
  view.ftField.addEventListener('blur', function(e) { view.gather() } );
    
  view.inchField = Ti.UI.createTextField(S.combine(textFieldDefaults, {width: '40dp', hintText: 'in', left: '140dp', top: 0, value: '', keyboardType: keyboardMap[exports.TYPE_NUMBER] }));
  view.inchField.addEventListener('blur', function(e) { view.gather() });
  
  S.Log.trace('2. createHeightField');
  view.add( Ti.UI.createLabel(S.combine(textFieldDefaults, {width: '60dp',  top: 0,  left: '5dp', text: 'Height' })));
  view.add( Ti.UI.createLabel(S.combine(textFieldDefaults, {width: '120dp',  top: 0, left: '120dp', text: 'ft' })));
  view.add( Ti.UI.createLabel(S.combine(textFieldDefaults, {width: '180dp',  top: 0, left: '190dp', text: 'inches' })));
  
  S.Log.trace('3. createHeightField');
  view.add(view.ftField);
  view.add(view.inchField);
  S.Log.trace('-createHeightField');
  return view;  
}
示例#2
0
function checkbox2(field) {
  S.Log.print('+checkbox');
  S.Log.print(field);

  var checkbox = Ti.UI.createView(S.combine(textFieldDefaults, { backgroundColor: 'black', borderRadius: 4 }));

  var height;
  var width;
  var left;
  
  if (Ti.Platform.osname == "iphone"){
    height = 30;
    width = 30;
    left = 50;
  } else if (Ti.Platform.osname == "android"){
    height = 50;
    width = 50;
    left = 65;
  }
  
  var check = Ti.UI.createButton({
      title: "\u2713",
      top: 10,
      left: 10,
      width: width,
      height: height,
      borderColor: 'none',
      borderWidth: 0,
      borderRadius: 0,
      backgroundImage: 'none',
      color: '#fff',
      font:{fontSize: 25, fontWeight: 'bold'},
      image:'/images/buttons/checkbox.png'
  });
   
  //Attach some simple on/off actions
  checkbox.on = function() {
      // check.backgroundColor = '#159902'; // '#aaa';
      // check.title = "\u2713";
      check.image='/images/buttons/checkbox-tick.png';
      checkbox.value = true;
  };
   
  checkbox.off = function() {
      // check.backgroundColor = S.Cfg.color.Salmon; // '#159902';
      // check.title = 'X';
      check.image='/images/buttons/checkbox.png';
      checkbox.value = false;
  };
   
  checkbox.addEventListener('click', function(e) {
      S.Log.print(e);
      if(false === checkbox.value) {
          S.Log.print('on');
          checkbox.on();
      } else {
          S.Log.print('off');
          checkbox.off();
      }
  });
  
  checkbox.add(check);
  if (field.value) {
    checkbox.on();
  } else {
    checkbox.off();
  }
  checkbox.check = check;
  
  var label = Ti.UI.createLabel({left: left, text: field.title, color:'white' });
  
  checkbox.add(label);
      
  return checkbox;  
}
示例#3
0
var addField = function(field, fieldRefs) {
  var title = field.title || ('field' + ctr++);
  var id = field.id || title;
  var type = field.type || exports.TYPE_TEXT;
  var form = this;
  var fieldObject = undefined;
  
  if (field.size === 'small') {
    textFieldDefaults.width = '125dp'; 
  } else {
    textFieldDefaults.width = '250dp'; // default
  }
  
  if (type === exports.TYPE_TEXT ||
    type === exports.TYPE_EMAIL ||
    type === exports.TYPE_NUMBER ||
    type === exports.TYPE_PHONE ||
    type === exports.TYPE_PASSWORD) {
    fieldObject = Ti.UI.createTextField(textFieldDefaults);
    if (field.value) {
      fieldObject.value = field.value;
    }
    
    // be sure this works on Android
    fieldObject.keyboardType = keyboardMap[type];       
    
    fieldObject.passwordMask = type === exports.TYPE_PASSWORD;
    if (type === exports.TYPE_EMAIL) {
      fieldObject.autocorrect = false,
      fieldObject.autocapitalization = Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE;
      fieldObject.clearButtonMode= Titanium.UI.INPUT_BUTTONMODE_ONFOCUS;
      fieldObject.keyboardType= Titanium.UI.KEYBOARD_EMAIL;
    }
    handleStyle(form, fieldObject, title);
  } else if (type === exports.TYPE_LABEL) {
    fieldObject = createLabel(field);
//    handleStyle(form, fieldObject, title);
  } else if (type === exports.TYPE_CHECKBOX) {
    fieldObject = checkbox(field);
    handleStyle(form, fieldObject, title);
  } else if (type === exports.TYPE_CHECKBOX1) {
    fieldObject = checkbox1(field);
    handleStyle(form, fieldObject, title);
  } else if (type === exports.TYPE_CHECKBOX2) {
    fieldObject = checkbox2(field);
    handleStyle(form, fieldObject, title);
  } else if (type == exports.TYPE_HEIGHT) {        
        fieldObject = createHeightField(field);
        handleStyle(form, fieldObject, title);                
  } else if (type === exports.TYPE_DATE) {
            
      if (isAndroid) {
        
        //For adding datepicker as spinner because of 13 yeary birthday issue.
        fieldObject = Ti.UI.createTextField(textFieldDefaults);
        handleStyle(form, fieldObject, title);
        setupPickerAndroid(fieldObject, Ti.UI.PICKER_TYPE_DATE);
        
      } else {              
        fieldObject = Ti.UI.createTextField(textFieldDefaults);
        handleStyle(form, fieldObject, title);
        setupPickerTextField(fieldObject, Ti.UI.PICKER_TYPE_DATE);
    }
  } else if (type === exports.TYPE_PICKER) {
    if (isAndroid) {
      fieldObject = Ti.UI.createPicker({
        type: Ti.UI.PICKER_TYPE_PLAIN,
        width: '250dp'
      });
      handleStyle(form, undefined, title);
      for (var i in field.data) {
        fieldObject.add(Ti.UI.createPickerRow({title:field.data[i]}));  
      }
      
      fieldObject._data = field.data;
      
      fieldObject.setValue = function(value) {
        var self = fieldObject;
        var data = self._data;
        self.value = value;
        S.Log.trace('Picker Set Value: ' + value);
        var sel = 0;
    
        for (var i = 0; i < data.length; i++) {
          Ti.API.log('==' + value + ' ?= ' + data[i]);
          if (value === data[i]) {
            sel = i;
          }           
          self.setSelectedRow(0, sel)
          Ti.API.log('setSelected: ' + sel);
        }          
      }

      fieldObject.getValue = function() {
        var self = fieldObject;
        var data = self._data;
        
        S.Log.trace('Picker Get Value');
        var value= self.getSelectedRow(0).title;
        S.Log.print(value);
        return value; 
      }

      fieldObject.clearValue = function() {
          S.Log.trace('Picker Clear Selected Value');
          var self = fieldObject;
          self.setSelectedRow(0, 0);                   
      }
      
      
    } else {
      fieldObject = Ti.UI.createTextField(textFieldDefaults);
      handleStyle(form, fieldObject, title);
      setupPickerTextField(fieldObject, Ti.UI.PICKER_TYPE_PLAIN, field.data);
    }

    
  } else if (type === exports.TYPE_SUBMIT) {
    var button;
    
    if (field.name) {
      button = S.UI.createButton({
        title: title,
        top:'10dp',
        name: field.name
      });
    } else {
       button = S.UI.createButton(S.combine(ui.properties.Button, {
        title: title,
        top:'10dp'
      }));
    }

    button.addEventListener('click', function(e) {
      var blurred = false;
      S.Log.trace('form button click');     
      var values = {};
      values = getData(form, fieldRefs);
      
      S.Log.print_r(fieldRefs);
          
      for (var i in fieldRefs) {
        // values[i] = fieldRefs[i].value;
        // Force Keyboard to hide
        if (! blurred) {
          if (fieldRefs[i].type === exports.TYPE_TEXT) {
            fieldRefs[i].blur();
            blurred = true;
          }
        }
                  
      }
      S.Log.print(values)
      form.fireEvent(id, {values:values});  
    }); 
    form.container.add(button);
  } else if (type === exports.TYPE_TEXTIMAGE) {
  	textFieldImage.backgroundImage=field.backgroundImage;
  	fieldObject = Ti.UI.createTextField(textFieldImage);
    if (field.value) {
      fieldObject.value = field.value;
    }
    
    // be sure this works on Android
    fieldObject.keyboardType = keyboardMap[type];       
    
      fieldObject.autocorrect = false,
      fieldObject.autocapitalization = Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE;
      fieldObject.clearButtonMode= Titanium.UI.INPUT_BUTTONMODE_ONFOCUS;
      fieldObject.keyboardType= Titanium.UI.KEYBOARD_EMAIL;
      handleStyle(form, fieldObject, title);
  } else if (type === exports.TYPE_PASSWORDIMAGE) {
  	passwordFieldImage.backgroundImage=field.backgroundImage;
  	fieldObject = Ti.UI.createTextField(passwordFieldImage);
    if (field.value) {
      fieldObject.value = field.value;
    }
    
    // be sure this works on Android
    fieldObject.keyboardType = keyboardMap[type];       
    
    fieldObject.passwordMask = type === exports.TYPE_PASSWORDIMAGE;
      fieldObject.autocorrect = false,
      fieldObject.autocapitalization = Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE;
      fieldObject.clearButtonMode= Titanium.UI.INPUT_BUTTONMODE_ONFOCUS;
      fieldObject.keyboardType= Titanium.UI.KEYBOARD_EMAIL;
      handleStyle(form, fieldObject, title);
  }
  
  // Set the value
  if (field.value) {
    try {
        if (fieldObject.setValue) {
          fieldObject.setValue(field.value + '');        
        } else {
          fieldObject.value = field.value + '';
        }
    } catch(err) {
      S.Log.debug(err);
    }    
  }  
  
  // Add our prepared UI component to the form
  if (fieldObject) {
    form.container.add(fieldObject);
    if ('label' !== type) { fieldRefs[id] = fieldObject };
  }
};