class ServerSelector

this file is part of manqod-server-console manqod is distributed under the CDDL licence the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/ServerSelector.rb, line 6
def initialize
        super()
        servers={ "localhost" =>{ :uri => "druby://127.0.0.1:5549", :bind => "druby://:0"}}
        begin
                path=File::expand_path(File.join(File.join(File::dirname(__FILE__),".."),"etc"))
                conf=""
                conf=File.new(File::expand_path(File.join(path,"server.conf"))).read
                servers=eval(conf)
        rescue => err
                Gtk.warn("no server.conf","#{err}\n\nusing default:\n#{servers.inspect}\n")
        end
        add(Gtk::HBox.new.
                pack_start(Gtk::Label.new("Select server")).
                pack_start(server_combo=Gtk::ComboBox.new(model=Gtk::ListStore.new(String,String,String)).
                        pack_start(renderer=Gtk::CellRendererText.new,true).add_attribute(renderer,:text,0)
                ).
                pack_start(ok=Gtk::Button.new(Gtk::Stock::CONNECT)).
                pack_start(quit=Gtk::Button.new(Gtk::Stock::QUIT))
        )
        quit.signal_connect("clicked"){|me|
                Gtk.main_quit if Gtk::ask("Are you sure, you want to quit?") 
        }
        ok.signal_connect("clicked"){|me|
                if i=server_combo.active_iter
                        ServerConsole.new(i[0],i[1],i[2])
                        hide
                end
        }
        servers.each_pair{|conn,addr|
                i=model.append
                i[0]=conn
                i[1]=addr[:uri]
                i[2]=addr[:bind]
        }
        show_all
end