/**
* Copyright 2011-2013 Universite Joseph Fourier, LIG, ADELE team
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* SwingButtonImpl.java - 2 juil. 2013
*/
package fr.imag.adele.apam.tutorials.lights.button;
import java.awt.event.ActionListener;
import fr.imag.adele.apam.tutorials.lights.devices.SimpleButton;
import fr.imag.adele.apam.tutorials.lights.devices.messages.ButtonPressed;
/**
* @author thibaud
*
*/
public class SwingButtonImpl implements ActionListener, SimpleButton {
private javax.swing.JFrame frame;
private javax.swing.JButton btn;
private String name ="APAM Simple Button";
private String myLocation;
private String myName;
public void started() {
System.out.println("A button named "+myName+" have been started in the "+myLocation);
frame = new javax.swing.JFrame(name);
initComponents();
frame.setVisible(true);
}
public void stopped() {
System.out.println("A button have been stopped in the "+myLocation);
if (frame != null) {
frame.dispose();
frame = null;
}
}
private void initComponents() {
frame.setSize(200, 80);
btn = new javax.swing.JButton("Button "+myLocation);
btn.addActionListener(this);
frame.setLayout(new java.awt.BorderLayout());
frame.add(btn, java.awt.BorderLayout.CENTER);
}
public void actionPerformed(java.awt.event.ActionEvent e) {
pressButton();
}
/* (non-Javadoc)
* @see fr.imag.adele.apam.tutorials.lights.devices.SimpleButton#pressButton()
*/
public ButtonPressed pressButton() {
return new ButtonPressed();
}
public String getName() {
return myName;
}
public String getLocation() {
return myLocation;
}
}