/*
Teppefall Network
network.js
*/
importPackage(Packages.java.awt)
importPackage(Packages.java.awt.event)
importPackage(Packages.java.beans)
importClass(Packages.java.io.BufferedInputStream,Packages.java.io.FileInputStream)
importPackage(Packages.javax.swing)
importPackage(Packages.com.teppefall.ds)
importPackage(Packages.com.teppefall.ds.console)
importPackage(Packages.com.teppefall.ds.script)
importPackage(Packages.com.teppefall.ds.layout.jxml)
importPackage(Packages.com.teppefall.ds.util)

function decode(xml) {
    decoder = XMLDecoder(BufferedInputStream(FileInputStream(xml)))
    return decoder.readObject()
}
/*for(i in arguments) {
    Console.info(this, i + "="+ arguments[i])
}*/

var app = new Application("Teppefall Network", arguments, new Dimension(272, 410))
//app.setRunningAutoUpdate(true)
app.setVersion("1.0")
app.setBuild("0")
//app.setIcon(new ImageIcon("twitter_57.png")) // broken
//app.getApplicationFrame().setIconImage(new ImageIcon("twitter_57.png").getImage())


ui = decode("network_app/network.xml")
//Console.info(this, ui)
app.getApplicationFrame().add(status = new StatusBar(), BorderLayout.SOUTH)
status.setStatus(app.getVersion())
//app.setStatus(status)
app.getApplicationFrame().add(ui.getPanel(), BorderLayout.CENTER)
//app.getApplicationFrame().pack();
error = ui.getComponentById("error")
error.setText(" ")

properties = State.load(app)
usernameState = properties.get("username")
passwordState = properties.get("password")
rememberState = properties.get("rememberme")

username = ui.getComponentById("username")
password = ui.getComponentById("password")
remember = ui.getComponentById("remember")
signin = ui.getComponentById("signin")
createanewaccount = ui.getComponentById("createanewaccount")

username.setText("teppefall")
password.requestFocus()

al = new ActionListener({
    actionPerformed : function(e) {
        switch(e.getSource()) {
            case createanewaccount:
                View.browse("http://app.teppefall.com/signup")
            break;
            case signin:
                //Console.info(this, e)
                username.setEnabled(!username.isEnabled())
                password.setEnabled(!password.isEnabled())
                remember.setEnabled(!remember.isEnabled())
            break;
        }
    }
})
signin.addActionListener(al)
createanewaccount.addActionListener(al)

ApplicationTray.createApplicationTray(app)
app.showApplication()
ManagerRuntime.createAndExecute(app, "network_app/network_plugins.js")

