Package fr.imag.adele.apam.tutorials.lights.binarylight

Source Code of fr.imag.adele.apam.tutorials.lights.binarylight.SwingBinaryLightImpl

/**
* 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.
*
* SwingBinaryLightImpl.java - 2 juil. 2013
*/
package fr.imag.adele.apam.tutorials.lights.binarylight;

import java.awt.Color;
import java.util.Iterator;

import fr.imag.adele.apam.tutorials.lights.devices.BinaryLight;
import fr.imag.adele.apam.tutorials.lights.devices.messages.ButtonPressed;
import fr.imag.adele.apam.tutorials.lights.devices.messages.LightStatusChanged;

/**
* @author thibaud
*
*/
public class SwingBinaryLightImpl extends BinaryLightImpl
              implements BinaryLight {

  /**
     */
  public SwingBinaryLightImpl() {
    super(false);
  }
 
    private javax.swing.JFrame         frame;
    private javax.swing.JLabel        light;
    private String name ="APAM Simple Binary Light";
    private String myLocation;
    private String myName;


    public void started() {
      System.out.println("A light named " + myName+" have been started in the "+myLocation);
        frame = new javax.swing.JFrame(name);
        initComponents();
        frame.setVisible(true);
    }

    public void stopped() {
      System.out.println("The light named "+myName+" have been stopped in the "+myLocation);
        if (frame != null) {
            frame.dispose();
            frame = null;
        }
    }

    private void initComponents() {
        frame.setSize(100, 80);
        light= new javax.swing.JLabel();
        light.setOpaque(true);
        light.setText(myLocation);
        setLightOff();
        frame.setLayout(new java.awt.BorderLayout());
        frame.add(light, java.awt.BorderLayout.CENTER);
    }
   
    private void setLightOn() {
        light.setBackground(Color.YELLOW);
        frame.repaint();     
    }
   
    private void setLightOff() {
        light.setBackground(Color.GRAY);
        frame.repaint();     
    }
   

  /* (non-Javadoc)
   * @see fr.imag.adele.apam.tutorials.lights.devices.BinaryLight#setLightStatus(boolean)
   */
  public void setLightStatus(boolean newStatus) {
    currentStatus=newStatus;
    if(currentStatus)
      setLightOn();
    else setLightOff();
        fireLightStatus();

  }

  /* (non-Javadoc)
   * @see fr.imag.adele.apam.tutorials.lights.devices.BinaryLight#switchLightStatus()
   */
  public void switchLightStatus() {
    if(currentStatus)
      currentStatus=false;
    else currentStatus=true;
   
    this.setLightStatus(currentStatus);
        fireLightStatus();
  }

    @Override
    public LightStatusChanged fireLightStatus() {
        return new LightStatusChanged(currentStatus);
    }

    @Override
    public String getName() {
        return myName;
    }

    @Override
    public String getLocation() {
        return myLocation;
    }
}
TOP

Related Classes of fr.imag.adele.apam.tutorials.lights.binarylight.SwingBinaryLightImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.