Author: titmuss
Date: Fri Jan 18 07:14:01 2008
New Revision: 1501
URL: http://svn.slimdevices.com?rev=1501&root=Jive&view=rev
Log:
Bug: N/A
Description:
Clean up code and handle some edge cases better.
Modified:
trunk/jive/src/pkg/jive/share/applets/SetupSlimServers/SetupSlimServersApplet.lua
Modified:
trunk/jive/src/pkg/jive/share/applets/SetupSlimServers/SetupSlimServersApplet.lua
URL:
http://svn.slimdevices.com/trunk/jive/src/pkg/jive/share/applets/SetupSlimServers/SetupSlimServersApplet.lua?rev=1501&root=Jive&r1=1500&r2=1501&view=diff
==============================================================================
---
trunk/jive/src/pkg/jive/share/applets/SetupSlimServers/SetupSlimServersApplet.lua
(original)
+++
trunk/jive/src/pkg/jive/share/applets/SetupSlimServers/SetupSlimServersApplet.lua
Fri Jan 18 07:14:01 2008
@@ -77,19 +77,23 @@
jnt:subscribe(self)
+ -- Discover slimservers in this window
+ self.sdApplet:discover()
+ window:addTimer(1000, function() self.sdApplet:discover() end)
+
+
-- slimservers on the poll list
local poll = self.sdApplet:pollList()
for address,_ in pairs(poll) do
if address ~= "255.255.255.255" then
- self:_addServerItem(address)
+ self:_addServerItem(nil, address)
end
end
-- discovered slimservers
for _,server in self.sdApplet:allServers() do
- local id, port = server:getIpPort()
- self:_addServerItem(id, port, server)
+ self:_addServerItem(server)
end
local item = {
@@ -124,9 +128,6 @@
menu:addItem(item)
--]]
- -- Discover slimservers in this window
- window:addTimer(1000, function() self.sdApplet:discover() end)
-
-- Store the applet settings when the window is closed
window:addListener(EVENT_WINDOW_POP,
function()
@@ -139,27 +140,31 @@
end
-function _addServerItem(self, id, port, server)
- log:debug("_addServerItem ", id, " " , port, " ", server)
+function _addServerItem(self, server, address)
+ log:debug("_addServerItem ", server, " " , port)
+
+ local id = server or address
-- remove existing entry
if self.serverList[id] then
self.serverMenu:removeItem(self.serverList[id])
end
+ if server and self.serverList[server:getIpPort()] then
+ self.serverMenu:removeItem(self.serverList[server:getIpPort()])
+ end
-- new entry
local item = {
- text = server and server:getName() or id,
+ text = server and server:getName() or address,
sound = "WINDOWSHOW",
- callback = function() self:_serverMenu(id, server) end,
+ callback = function() self:_serverMenu(server, address) end,
weight = 1
}
-- this is the current server if _server.id == id .. ":" .. port
local currentPlayer = self.sdApplet:getCurrentPlayer()
if currentPlayer then
- local currentServer = currentPlayer:getSlimServer()
- if currentServer:getIpPort() == id then
+ if server == currentPlayer:getSlimServer() then
item.style = 'checked'
end
end
@@ -169,22 +174,27 @@
end
-function _delServerItem(self, id, server)
+function _delServerItem(self, server, address)
-- remove entry
+ local id = server or address
if self.serverList[id] then
self.serverMenu:removeItem(self.serverList[id])
self.serverList[id] = nil
end
-- new entry if server is on poll list
- local poll = self.sdApplet:pollList()
- if poll[id] then
- self:_addServerItem(id)
- end
-end
-
-function _serverMenu(self, id, server)
- local name = server and server:getName() or id
+ if server then
+ local poll = self.sdApplet:pollList()
+ local address = server:getIpPort()
+ if poll[address] then
+ self:_addServerItem(nil, address)
+ end
+ end
+end
+
+
+function _serverMenu(self, server, address)
+ local name = server and server:getName() or address
local window = Window("window", name)
local menu = SimpleMenu("menu", items)
@@ -213,12 +223,14 @@
end
local poll = self.sdApplet:pollList()
+ local id = address or server:getIpPort()
if poll[id] then
menu:addItem({
text = self:string("SLIMSERVER_FORGET",
name),
sound = "WINDOWHIDE",
callback = function()
self:_del(id)
+
self:_delServerItem(nil, id)
window:hide()
end
})
@@ -230,20 +242,18 @@
function notify_serverNew(self, server)
- local id = server:getIpPort()
- self:_addServerItem(id, server)
+ self:_addServerItem(server)
end
function notify_serverDelete(self, server)
- local id = server:getIpPort()
- self:_delServerItem(id, server)
+ self:_delServerItem(server)
end
function _updateServerList(self, server)
for id, item in pairs(self.serverList) do
- if server and server:getIpPort() == id then
+ if server == id then
item.style = 'checked'
else
item.style = nil
@@ -374,7 +384,7 @@
local input = Textinput("textinput", v,
function(_, value)
self:_add(value:getValue())
- self:_addServerItem(value:getValue())
+ self:_addServerItem(nil,
value:getValue())
window:playSound("WINDOWSHOW")
window:hide(Window.transitionPushLeft)
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins