catjs
Version:
(Mobile) Web Automation Framework
251 lines (169 loc) • 7.13 kB
JavaScript
var scrollDelay = true;
_cat.plugins.sencha = function () {
var getItemById = function(idName) {
return Ext.ComponentQuery.query('#' + idName)[0];
};
var fireItemTapFunc = function (extElement, index) {
extElement.fireEvent('itemtap', extElement, index);
},
fireTapFunc = function (extElement) {
extElement.fireEvent('tap');
},
setTextHelp = function (extElement, str) {
if (extElement.hasListener('painted')) {
extElement.setValue(str);
} else {
extElement.addListener('painted', function () {
extElement.setValue(str);
});
}
};
return {
actions: {
fireTap: function (extElement) {
// check number of args
if (arguments.length === 1) {
if (extElement.hasListener('painted')) {
fireTapFunc(extElement);
} else {
extElement.addListener('painted', fireTapFunc(extElement));
}
} else {
// in case of list
var index = arguments[1];
if (extElement.hasListener('painted')) {
fireItemTapFunc(extElement, index);
} else {
extElement.addListener('painted', fireItemTapFunc(extElement, index));
if (extElement.hasListener('painted')) {
fireItemTapFunc(extElement, index);
} else {
extElement.addListener('painted', fireItemTapFunc(extElement, index));
}
}
}
},
setText: function (extElement, str) {
setTextHelp(extElement, str);
},
setTextValue: function (extElement, str) {
var element = getItemById(extElement);
element.setValue(str);
},
tapButton : function (btn) {
var button = getItemById(btn);
var buttonHandler = button.getHandler();
button.fireAction("tap", buttonHandler());
},
setChecked : function (checkItem) {
var checkbox = getItemById(checkItem);
checkbox.setChecked(true);
},
setUnchecked : function (checkItem) {
var checkbox = getItemById(checkItem);
checkbox.setChecked(false);
},
setSliderValue : function (sliderId, value) {
var slider = getItemById(sliderId);
slider.setValue(value);
},
setSliderValues : function (sliderId, value1, value2) {
var slider = getItemById(sliderId);
slider.setValues([value1, value2]);
},
setToggle : function (toggleId, value) {
var toggle = getItemById(toggleId);
if (value) {
toggle.setValues(true);
} else {
toggle.setValues(false);
}
},
changeTab : function (barId, value) {
var bar = getItemById(barId);
bar.setActiveItem(value);
},
scrollBy : function (itemId, horizontalValue, verticalValue) {
var item = getItemById(itemId);
if (scrollDelay) {
item.getScrollable().getScroller().scrollTo(horizontalValue,verticalValue, {
duration : 1000
}) ;
} else {
item.getScrollable().getScroller().scrollTo(horizontalValue,verticalValue);
}
},
scrollToTop : function (itemId) {
var item = getItemById(itemId);
if (scrollDelay) {
item.getScrollable().getScroller().scrollTo(-1, -1, {
duration : 1000
}) ;
} else {
item.getScrollable().getScroller().scrollTo(-1, -1);
}
},
scrollToEnd : function (itemId) {
var item = getItemById(itemId);
if (scrollDelay) {
item.getScrollable().getScroller().scrollToEnd(true);
} else {
item.getScrollable().getScroller().scrollToEnd(true);
}
},
scrollToListIndex : function (listId, index) {
var list = getItemById(listId);
var scroller = list.getScrollable().getScroller();
var item = list.getItemAt(index);
var verticalValue = item.renderElement.dom.offsetTop;
var horizontalValue = 0;
if (scrollDelay) {
scroller.scrollTo(horizontalValue,verticalValue, {
duration : 1000
}) ;
} else {
scroller.scrollTo(horizontalValue,verticalValue);
}
},
carouselNext : function (carouselId) {
var carousel = getItemById(carouselId);
carousel.next();
},
carouselPrevious : function (carouselId) {
var carousel = getItemById(carouselId);
carousel.previous();
},
nestedlistSelect : function (nestedlistId, index) {
var nestedlist = getItemById(nestedlistId);
var indexItem = nestedlist.getActiveItem().getStore().getRange()[index];
if (indexItem.isLeaf()) {
var activelist= nestedlist.getActiveItem();
nestedlist.fireEvent('itemtap', nestedlist, activelist,index,{},{});
} else {
nestedlist.goToNode(indexItem);
}
},
nestedlistBack : function (nestedlistId) {
var nestedlist = getItemById(nestedlistId);
var node = nestedlist.getLastNode();
nestedlist.goToNode(node.parentNode);
},
listSelectIndex : function (listId, index) {
var list = getItemById(listId);
list.select(index);
},
changeView : function (viewName) {
var firststep = Ext.create(viewName);
Ext.Viewport.setActiveItem(firststep);
},
removePanel : function (panelId) {
var panel = getItemById(panelId);
Ext.Viewport.remove(panel);
},
setDate : function (dateItemId, year, month, day) {
var dateItem = getItemById(dateItemId);
dateItem.setValue(new Date(year, month - 1, day));
}
}
};
}();