219 lines
6.8 KiB
Plaintext
219 lines
6.8 KiB
Plaintext
SelectServerPanel = class("SelectServerPanel",BaseView)
|
|
|
|
autoImport('ServerItemCell')
|
|
autoImport("ServerStCell")
|
|
autoImport("RegionCell")
|
|
|
|
SelectServerPanel.ViewType = UIViewType.PopUpLayer
|
|
|
|
SelectServerPanel.ServerSt = {}
|
|
SelectServerPanel.ServerConfig = {
|
|
Normal = 1,
|
|
Crowd = 2,
|
|
Hot = 3,
|
|
Maintain = 0,
|
|
}
|
|
|
|
SelectServerPanel.ServerSt = {
|
|
{id = SelectServerPanel.ServerConfig.Normal,name = ZhString.SelectServerPanel_StateNormal},
|
|
{id = SelectServerPanel.ServerConfig.Crowd,name = ZhString.SelectServerPanel_StateCrowd},
|
|
{id = SelectServerPanel.ServerConfig.Hot,name = ZhString.SelectServerPanel_StateHot},
|
|
{id = SelectServerPanel.ServerConfig.Maintain,name = ZhString.SelectServerPanel_StateMaintain},
|
|
}
|
|
|
|
local tempVector3 = LuaVector3.zero
|
|
function SelectServerPanel:Init()
|
|
self:initView();
|
|
self:initData();
|
|
self:addViewEventListener()
|
|
end
|
|
|
|
function SelectServerPanel:initView()
|
|
-- self.serverContainer = GameObjectUtil.Instance:DeepFindChild(self.gameObject,"Container").transform;
|
|
-- self.serverPfb = GameObjectUtil.Instance:DeepFindChild(self.gameObject,"ServerPfb");
|
|
self.serversGrid = self:FindGO("allServers"):GetComponent(UIGrid);
|
|
self.serverList = UIGridListCtrl.new(self.serversGrid, ServerItemCell, "ServerItemCell")
|
|
self.serverList:AddEventListener(MouseEvent.MouseClick,self.serverCellClick,self)
|
|
|
|
local panelTitle = self:FindGO("panelTitle"):GetComponent(UILabel)
|
|
panelTitle.text = ZhString.SelectServerPanel_PanelTitle
|
|
self.serverStGrid = self:FindGO("serverStGrid"):GetComponent(UIGrid)
|
|
self.serverStGrid = UIGridListCtrl.new(self.serverStGrid,ServerStCell,"ServerStCell")
|
|
|
|
self.RegionGrid = self:FindGO("RegionGrid"):GetComponent(UIGrid)
|
|
self.RegionGrid = UIGridListCtrl.new(self.RegionGrid,RegionCell,"RegionCell")
|
|
self.RegionGrid:AddEventListener(MouseEvent.MouseClick,self.regionCellClick,self)
|
|
|
|
local recentLoginTitle = self:FindGO("recentLoginTitle"):GetComponent(UILabel)
|
|
recentLoginTitle.text = ZhString.SelectServerPanel_RecentLogin
|
|
local hasRolesTitle = self:FindGO("hasRolesTitle"):GetComponent(UILabel)
|
|
hasRolesTitle.text = ZhString.SelectServerPanel_HasRoles
|
|
|
|
local recentLoginGrid = self:FindGO("recentLoginGrid"):GetComponent(UIGrid)
|
|
self.recentGrid = UIGridListCtrl.new(recentLoginGrid,ServerItemCell,"ServerItemCell")
|
|
self.recentGrid:AddEventListener(MouseEvent.MouseClick,self.serverCellClick,self)
|
|
local recentLogin = self:FindGO("recentLogin")
|
|
local hasRoles = self:FindGO("hasRoles")
|
|
|
|
local bound = NGUIMath.CalculateRelativeWidgetBounds(recentLogin.transform)
|
|
local y = bound.size.y
|
|
local _,posY,_ = LuaGameObject.GetLocalPosition(recentLogin.transform)
|
|
|
|
y = posY - y
|
|
|
|
local x,_,z = LuaGameObject.GetLocalPosition(hasRoles.transform)
|
|
|
|
tempVector3:Set(x,y-30,z)
|
|
hasRoles.transform.localPosition = tempVector3
|
|
|
|
self:Hide(hasRoles)
|
|
local hasRolesGrid = self:FindGO("hasRolesGrid"):GetComponent(UIGrid)
|
|
self.hasRolesGrid = UIGridListCtrl.new(hasRolesGrid,ServerItemCell,"ServerItemCell")
|
|
self.hasRolesGrid:AddEventListener(MouseEvent.MouseClick,self.serverCellClick,self)
|
|
|
|
local RegionCellHolder = self:FindGO("RegionCellHolder")
|
|
RegionCellHolder = Game.AssetManager_UI:CreateAsset(ResourcePathHelper.UICell("RegionCell"), RegionCellHolder);
|
|
tempVector3:Set(0,0,0)
|
|
RegionCellHolder.transform.localPosition = tempVector3
|
|
self.myRegionCell = RegionCell.new(RegionCellHolder)
|
|
local data = {}
|
|
data.type = 1
|
|
data.name = ZhString.SelectServerPanel_MyServer
|
|
self.myRegionCell:SetData(data)
|
|
self.myRegionCell:AddEventListener(MouseEvent.MouseClick,self.regionCellClick,self)
|
|
self.myServers = self:FindGO("myServers")
|
|
|
|
self.scrollview = self:FindGO("ScrollView"):GetComponent(UIScrollView);
|
|
self.leftContent = self:FindGO("leftContent")
|
|
self.Bg = self:FindComponent("Bg",UISprite)
|
|
end
|
|
|
|
function SelectServerPanel:serverCellClick( cellCtl )
|
|
-- body
|
|
self:sendNotification(ServiceEvent.ChooseServer, cellCtl.data)
|
|
self:CloseSelf()
|
|
end
|
|
|
|
function SelectServerPanel:regionCellClick( child )
|
|
-- body
|
|
--click region
|
|
-- printGreen("click")
|
|
if(not child)then
|
|
return
|
|
end
|
|
local data = child.data
|
|
if(data.type == 1)then
|
|
self.myRegionCell:setIsSelected(true)
|
|
self:Show(self.myServers)
|
|
self:Hide(self.serversGrid.gameObject)
|
|
else
|
|
self.myRegionCell:setIsSelected(false)
|
|
self:Hide(self.myServers)
|
|
self:Show(self.serversGrid.gameObject)
|
|
end
|
|
local cells = self.RegionGrid:GetCells()
|
|
for i=1,#cells do
|
|
local single = cells[i]
|
|
if(single ~= child)then
|
|
single:setIsSelected(false)
|
|
else
|
|
single:setIsSelected(true)
|
|
self.serverList:ResetDatas(data.list)
|
|
end
|
|
end
|
|
end
|
|
|
|
function SelectServerPanel:initRightContent()
|
|
local recentList = {}
|
|
local serverData
|
|
if(sdkEnable)then
|
|
serverData = FunctionLogin.Me():getDefaultServerData()
|
|
else
|
|
serverData = Table_ServerList[self.viewdata.index]
|
|
end
|
|
if(serverData)then
|
|
table.insert(recentList,serverData)
|
|
end
|
|
self.recentGrid:ResetDatas(recentList)
|
|
self.serverStGrid:ResetDatas(SelectServerPanel.ServerSt)
|
|
end
|
|
|
|
function SelectServerPanel:initLeftContent()
|
|
local list = {}
|
|
local sdkEnable = FunctionLogin.Me():getSdkEnable()
|
|
local servers
|
|
if (sdkEnable) then
|
|
servers = FunctionLogin.Me():getServerDatas()
|
|
else
|
|
servers = Table_ServerList
|
|
end
|
|
local count = #servers % 10 == 0 and #servers / 10 or math.floor(#servers / 10) + 1
|
|
|
|
for i = 1, count do
|
|
data = {}
|
|
data.type = 2
|
|
data.state = SelectServerPanel.ServerConfig.Normal
|
|
data.isNew = true
|
|
local name = ((i - 1) * 10 + 1) .. "-"
|
|
local LCount = 0
|
|
if (i * 10 > #servers) then
|
|
name = name .. #servers
|
|
LCount = #servers
|
|
else
|
|
name = name .. (i * 10)
|
|
LCount = 10 * i
|
|
end
|
|
data.name = name .. ZhString.SelectServerPanel_Region
|
|
local tmpList = {}
|
|
for j = (i - 1) * 10 + 1, LCount do
|
|
table.insert(tmpList, servers[j])
|
|
end
|
|
data.list = tmpList
|
|
table.insert(list, data)
|
|
end
|
|
self.RegionGrid:ResetDatas(list)
|
|
|
|
if (#list >= 1) then
|
|
self.Bg.width = 1080
|
|
self:Show(self.leftContent)
|
|
self:regionCellClick(self.myRegionCell)
|
|
else
|
|
self.Bg.width = 1074
|
|
self:Hide(self.leftContent)
|
|
self:regionCellClick(self.myRegionCell)
|
|
end
|
|
|
|
self.scrollview:ResetPosition();
|
|
end
|
|
|
|
function SelectServerPanel:initData()
|
|
local sdkEnable = FunctionLogin.Me():getSdkEnable( )
|
|
local servers
|
|
if(sdkEnable)then
|
|
servers = FunctionLogin.Me():getServerDatas()
|
|
else
|
|
servers = Table_ServerList
|
|
end
|
|
|
|
if(not servers)then
|
|
return
|
|
end
|
|
self:initLeftContent()
|
|
self:initRightContent()
|
|
-- local cells = self.serverList:GetCells()
|
|
-- for i=1,#cells do
|
|
-- local single = cells[i]
|
|
-- if(single.data.id == self.viewdata.index)then
|
|
-- single:SetCurrentServer(true)
|
|
-- break
|
|
-- end
|
|
-- end
|
|
end
|
|
|
|
function SelectServerPanel:addViewEventListener( )
|
|
-- body
|
|
end
|
|
|
|
function SelectServerPanel:OnExit( )
|
|
-- body
|
|
end |