| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- let ViewManager = (
- function()
- {
- var _viewArray = [];
- var _viewMap = {};
- return {
- registerView(viewName,viewNode) {
- _viewMap[viewName] = viewNode;
- },
- replaceView(viewName,hideViewName) {
- if (!_viewMap[viewName]) {
- return null;
- }
- if (hideViewName) {
- var view1 = _viewMap[hideViewName];
- if (view1) {
- for (var i = 0; i < _viewArray.length; i++) {
- if (_viewArray[i].nodeName == hideViewName) {
- _viewArray[i].nodeView.active = false;
- _viewArray.splice(i, 1);
- break;
- }
- }
- }
- }
- var view2 = _viewMap[viewName];
- if (_viewArray.length > 0) {
- var i = 0;
- var viewShowed = false;
- for (i = 0; i < _viewArray.length; i++) {
- if (_viewArray[i].nodeName == viewName && _viewArray[i].nodeView.active == true) {
- viewShowed = true;
- break;
- }
- }
- if (!viewShowed) {
- for (var i = 0; i < _viewArray.length; i++) {
- _viewArray[i].nodeView.active = false;
- }
- _viewArray = [];
- _viewArray[0] = {'nodeView': view2,'nodeName': viewName};
- _viewArray[0].nodeView.active = true;
- }
- } else {
- _viewArray[0] = {'nodeView': view2, 'nodeName': viewName}
- _viewArray[0].nodeView.active = true;
- }
- return view2;
- },
- PushView(viewName) {
- if (!_viewMap[viewName]) {
- return null;
- }
- var view = _viewMap[viewName];
- _viewArray[_viewArray.length] = {'nodeView':view,'nodeName':viewName}
- _viewArray[_viewArray.length - 1].nodeView.active = true;
- return view;
- },
- PopView(viewName) {
- if (viewName == undefined) {
- var view = _viewArray[_viewArray.length - 1].nodeView.active = false;
- _viewArray.splice(_viewArray.length - 1, 1);
- return view;
- } else {
- var view = _viewMap[viewName];
- if (view) {
- for (var i = 0; i < _viewArray.length; i++) {
- if (_viewArray[i].nodeName == viewName) {
- _viewArray[i].nodeView.active = false;
- _viewArray.splice(i,1);
- break;
- }
- }
- return view;
- }
- }
- },
- PopAllView() {
- for (var i = 0; i < _viewArray.length; i++) {
- this.PopView();
- }
- },
- TopView() {
- if (_viewArray.length == 0) {
- return null;
- }
- return _viewArray[_viewArray.length - 1];
- },
- CurrentView() {
- if (_viewArray.length == 0) {
- return null;
- }
- return _viewArray[_viewArray.length - 1];
- }
- };
- }
- )();
- export default ViewManager;
|