245 lines
6.5 KiB
JavaScript
245 lines
6.5 KiB
JavaScript
|
|
var SwitchScreen = defineObject(BaseScreen,
|
|
{
|
|
_switchWindow: null,
|
|
_pageChanger: null,
|
|
_isLocalView: false,
|
|
_localSwitchArray: null,
|
|
_globalSwitchArray: null,
|
|
|
|
setScreenData: function(screenParam) {
|
|
this._prepareScreenMemberData(screenParam);
|
|
this._completeScreenMemberData(screenParam);
|
|
},
|
|
|
|
moveScreenCycle: function() {
|
|
var result;
|
|
|
|
this._pageChanger.movePage();
|
|
|
|
if (this._pageChanger.checkPage()) {
|
|
this._changeSwitchPage();
|
|
}
|
|
|
|
result = this._switchWindow.moveWindow();
|
|
if (result === MoveResult.END) {
|
|
this._finishSwitchArray(this._localSwitchArray, this._getLocalSwitchTable());
|
|
this._finishSwitchArray(this._globalSwitchArray, this._getGlobalSwitchTable());
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
drawScreenCycle: function() {
|
|
var x = LayoutControl.getCenterX(-1, this._switchWindow.getWindowWidth());
|
|
var y = LayoutControl.getCenterY(-1, this._switchWindow.getWindowHeight());
|
|
|
|
this._switchWindow.drawWindow(x, y);
|
|
this._pageChanger.drawPage(x, y);
|
|
},
|
|
|
|
drawScreenBottomText: function(textui) {
|
|
var switchTable, text;
|
|
var index = this._switchWindow.getSwitchIndex();
|
|
|
|
if (this._isLocalView) {
|
|
switchTable = this._getLocalSwitchTable();
|
|
}
|
|
else {
|
|
switchTable = this._getGlobalSwitchTable();
|
|
}
|
|
|
|
text = switchTable.getSwitchDescription(index);
|
|
TextRenderer.drawScreenBottomText(text, textui);
|
|
},
|
|
|
|
getScreenInteropData: function() {
|
|
return root.queryScreen('Switch');
|
|
},
|
|
|
|
_prepareScreenMemberData: function(screenParam) {
|
|
this._switchWindow = createWindowObject(SwitchWindow, this);
|
|
this._pageChanger = createObject(HorizontalPageChanger);
|
|
this._isLocalView = true;
|
|
this._localSwitchArray = [];
|
|
this._globalSwitchArray = [];
|
|
},
|
|
|
|
_completeScreenMemberData: function(screenParam) {
|
|
this._createSwitchArray(this._localSwitchArray, this._getLocalSwitchTable());
|
|
this._createSwitchArray(this._globalSwitchArray, this._getGlobalSwitchTable());
|
|
|
|
this._switchWindow.setSwitchWindowData(this._getLocalSwitchTable());
|
|
this._switchWindow.setSwitchPage(this._localSwitchArray);
|
|
this._pageChanger.setPageData(6, this._switchWindow.getWindowWidth(), this._switchWindow.getWindowHeight());
|
|
},
|
|
|
|
_changeSwitchPage: function() {
|
|
this._isLocalView = !this._isLocalView;
|
|
|
|
if (this._isLocalView) {
|
|
this._switchWindow.setSwitchPage(this._localSwitchArray, this._getLocalSwitchTable());
|
|
}
|
|
else {
|
|
this._switchWindow.setSwitchPage(this._globalSwitchArray, this._getGlobalSwitchTable());
|
|
}
|
|
},
|
|
|
|
_createSwitchArray: function(switchArray, switchTable) {
|
|
var i, count, data;
|
|
|
|
count = switchTable.getSwitchCount();
|
|
for (i = 0; i < count; i++) {
|
|
data = {};
|
|
data.name = switchTable.getSwitchName(i);
|
|
data.isSwitchOn = switchTable.isSwitchOn(i);
|
|
data.handle = switchTable.getSwitchResourceHandle(i);
|
|
switchArray.push(data);
|
|
}
|
|
},
|
|
|
|
_finishSwitchArray: function(switchArray, switchTable) {
|
|
var i;
|
|
var count = switchArray.length;
|
|
|
|
for (i = 0; i < count; i++) {
|
|
if (switchArray[i].isSwitchOn !== switchTable.isSwitchOn(i)) {
|
|
switchTable.setSwitch(i, switchArray[i].isSwitchOn);
|
|
}
|
|
}
|
|
},
|
|
|
|
_getLocalSwitchTable: function() {
|
|
var table;
|
|
|
|
if (root.getBaseScene() === SceneType.REST) {
|
|
table = root.getCurrentSession().getLocalSwitchTable();
|
|
}
|
|
else {
|
|
table = root.getCurrentSession().getCurrentMapInfo().getLocalSwitchTable();
|
|
}
|
|
|
|
return table;
|
|
},
|
|
|
|
_getGlobalSwitchTable: function() {
|
|
return root.getMetaSession().getGlobalSwitchTable();
|
|
}
|
|
}
|
|
);
|
|
|
|
var SwitchWindow = defineObject(BaseWindow,
|
|
{
|
|
_scrollbar: null,
|
|
_objectArray: null,
|
|
_switchTable: null,
|
|
|
|
setSwitchWindowData: function(switchTable) {
|
|
var count = LayoutControl.getObjectVisibleCount(DefineControl.getTextPartsHeight(), 12);
|
|
|
|
this._scrollbar = createScrollbarObject(SwitchScrollbar, this);
|
|
this._scrollbar.setActive(true);
|
|
this._scrollbar.setScrollFormation(1, count);
|
|
|
|
this._switchTable = switchTable;
|
|
},
|
|
|
|
setSwitchPage: function(objectArray) {
|
|
this._objectArray = objectArray;
|
|
this._scrollbar.setObjectArray(objectArray);
|
|
},
|
|
|
|
moveWindowContent: function() {
|
|
var i, count, data;
|
|
var input = this._scrollbar.moveInput();
|
|
var result = MoveResult.CONTINUE;
|
|
|
|
if (input === ScrollbarInput.SELECT) {
|
|
data = this._scrollbar.getObject();
|
|
data.isSwitchOn = !data.isSwitchOn;
|
|
}
|
|
else if (input === ScrollbarInput.CANCEL) {
|
|
count = this._objectArray.length;
|
|
for (i = 0; i < count; i++) {
|
|
if (this._objectArray[i].isSwitchOn !== this._switchTable.isSwitchOn(i)) {
|
|
this._switchTable.setSwitch(i, this._objectArray[i].isSwitchOn);
|
|
}
|
|
}
|
|
|
|
result = MoveResult.END;
|
|
}
|
|
|
|
return result;
|
|
},
|
|
|
|
drawWindowContent: function(x, y) {
|
|
this._scrollbar.drawScrollbar(x, y);
|
|
},
|
|
|
|
getWindowWidth: function() {
|
|
return this._scrollbar.getScrollbarWidth() + (this.getWindowXPadding() * 2);
|
|
},
|
|
|
|
getWindowHeight: function() {
|
|
return this._scrollbar.getScrollbarHeight() + (this.getWindowYPadding() * 2);
|
|
},
|
|
|
|
getSwitchIndex: function() {
|
|
return this._scrollbar.getIndex();
|
|
}
|
|
}
|
|
);
|
|
|
|
var SwitchScrollbar = defineObject(BaseScrollbar,
|
|
{
|
|
drawScrollContent: function(x, y, object, isSelect, index) {
|
|
this._drawName(x, y, object, isSelect, index);
|
|
this._drawSwitch(x, y, object, isSelect, index);
|
|
this._drawIcon(x, y, object, isSelect, index);
|
|
},
|
|
|
|
getObjectWidth: function() {
|
|
return 400;
|
|
},
|
|
|
|
getObjectHeight: function() {
|
|
return DefineControl.getTextPartsHeight();
|
|
},
|
|
|
|
_drawName: function(x, y, object, isSelect, index) {
|
|
var length = this._getTextLength();
|
|
var textui = this.getParentTextUI();
|
|
var color = textui.getColor();
|
|
var font = textui.getFont();
|
|
|
|
x += GraphicsFormat.ICON_WIDTH;
|
|
TextRenderer.drawKeywordText(x, y, object.name, length, color, font);
|
|
},
|
|
|
|
_drawSwitch: function(x, y, object, isSelect, index) {
|
|
var color, text;
|
|
var textui = this.getParentTextUI();
|
|
var font = textui.getFont();
|
|
|
|
if (object.isSwitchOn) {
|
|
color = ColorValue.KEYWORD;
|
|
text = StringTable.Select_On;
|
|
}
|
|
else {
|
|
color = ColorValue.DISABLE;
|
|
text = StringTable.Select_Off;
|
|
}
|
|
|
|
x += (this.getObjectWidth() - 50);
|
|
TextRenderer.drawKeywordText(x, y, text, -1, color, font);
|
|
},
|
|
|
|
_drawIcon: function(x, y, object, isSelect, index) {
|
|
GraphicsRenderer.drawImage(x, y, object.handle, GraphicsType.ICON);
|
|
},
|
|
|
|
_getTextLength: function() {
|
|
return this.getObjectWidth();
|
|
}
|
|
}
|
|
);
|