rutile
Version:
Factory automation for Mobile Enterprise.
89 lines (73 loc) • 2.12 kB
JavaScript
// usage:
//
// var controller = Alloy.createController('Framework/SortMethodPicker');
// controller.setListener(self);
// controller.showPickerIn(view);
//
var self = exports;
var fields = [
// field data set to picker
{ "title":L('FrameworkSearchFormElementSortMethodDesc'), "method":'FrameworkSearchFormElementSortMethodDesc' },
{ "title":L('FrameworkSearchFormElementSortMethodAsc'), "method":'FrameworkSearchFormElementSortMethodAsc' }
];
var parent; // parent view
var listener; // delegate
var value; // selected row object
var DISPLAY_WIDTH = Ti.Platform.displayCaps.platformWidth;
var DISPLAY_HEIGHT = Ti.Platform.displayCaps.platformHeight;
var STATUS_BAR_HEIGHT = 20; // iOS status bar height
var TOP_BAR_HEIGHT = 44; // navigation bar height
var ANIM_DURATION = 300;
var WRAPPER_WIDTH = DISPLAY_WIDTH;
var WRAPPER_HEIGHT = (DISPLAY_HEIGHT - STATUS_BAR_HEIGHT) * 2;
$.Wrapper.top = WRAPPER_HEIGHT / 2;
$.Wrapper.width = WRAPPER_WIDTH;
$.Wrapper.height = WRAPPER_HEIGHT;
$.CancelButton.getView().top = 0;
$.CancelButton.getView().left = 10;
$.OkButton.getView().top = 0;
$.OkButton.getView().right = 10;
$.CancelButton.setButtonHandler(function(e){
$.Wrapper.animate(
Ti.UI.createAnimation({
top : WRAPPER_HEIGHT / 2,
duration : ANIM_DURATION,
}),
function(){
parent.remove($.Container);
}
);
});
$.OkButton.setButtonHandler(function(e){
listener.listenSortMethodPicker(value);
$.Wrapper.animate(
Ti.UI.createAnimation({
top : WRAPPER_HEIGHT / 2,
duration : ANIM_DURATION,
}),
function(){
parent.remove($.Container);
}
);
});
$.Picker.add(fields);
// delgate object should have listenDatePicker()
exports.setListener = function(obj){
listener = obj;
};
exports.showPickerIn = function(view){
parent = view;
parent.add($.Container);
$.Wrapper.animate(
Ti.UI.createAnimation({
top : -1 * WRAPPER_HEIGHT / 2,
duration : ANIM_DURATION,
}),
function(){
$.Picker.addEventListener('change',function(e){
value = e.row;
});
$.Picker.setSelectedRow(0,0,false);
}
);
};