package helloworlddesklet
import ab5k.desklet.AbstractDesklet
import ab5k.desklet.DeskletContext
import ab5k.desklet.test.DeskletTester
import ab5k.desklet.DeskletContainer
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.*
import java.util.Date

/**
 *
 * @author James
 */
public class HelloWorldDesklet extends AbstractDesklet {
    def swing = new SwingBuilder()
    def text = new JLabel()
    def responseText = new JLabel()
    def count = 0
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        DeskletTester.start(HelloWorldDesklet.class)
    }
    
    public void init(DeskletContext context) {
        def panel = swing.panel(layout: new BorderLayout()) {
                button(constraints: BorderLayout.SOUTH,label:'Click me', actionPerformed: { 
                    count++
                    responseText.setText('You have clicked the button '+ count + ' times.')
                })
            }
        
        panel.add(text,BorderLayout.NORTH)
        panel.add(responseText, BorderLayout.CENTER)
        panel.setPreferredSize(new Dimension(400,75))
        context.getContainer().setContent(panel)
        context.getContainer().setResizable(false)
        context.getContainer().setVisible(true)
    }
    
    public void start() throws Exception{
        text.setText(text.getText() + " Desklet started at: " + new java.util.Date().toString())
    }
    
    public void destroy() {
        panel.setVisible(false)
    }
    
    public void stop() {
        text.setText('HelloWorldDesklet stopped at: ' + new java.util.Date().toString())
    }   
}