de.fzi.fhemapi.view.vaadin.ui.devicepanels.OnOffDetails.java Source code

Java tutorial

Introduction

Here is the source code for de.fzi.fhemapi.view.vaadin.ui.devicepanels.OnOffDetails.java

Source

/*******************************************************************************
 * Copyright 2007-2014 FZI, http://www.fzi.de
 *                 Forschungszentrum Informatik - Information Process Engineering (IPE)
 *  
 *                 See the NOTICE file distributed with this work for additional
 *                 information regarding copyright ownership
 *                
 *                 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.
 * @author tzentek - <a href="mailto:zentek@fzi.de">Tom Zentek</a>
 * @author cyumusak - <a href="mailto:canyumusak@gmail.com">Can Yumusak</a>
 ******************************************************************************/
package de.fzi.fhemapi.view.vaadin.ui.devicepanels;

import java.util.LinkedList;
import java.util.List;

import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;

import de.fzi.fhemapi.model.devicetypes.Device;
import de.fzi.fhemapi.model.devicetypes.OnOffActuator;
import de.fzi.fhemapi.view.vaadin.ui.DeviceDetailsPanel;
import de.fzi.fhemapi.view.vaadin.ui.model.DeviceDetailEntry;

/**
 * Shows the OnOffDetails of OnOffActuators
 * @author Can Yumusak
 *
 */
public class OnOffDetails extends DeviceDetailsAbst {

    public OnOffDetails(Device device, DeviceDetailsPanel parent) {
        super(device, parent);
    }

    @Override
    public List<DeviceDetailEntry> getDeviceDetails() {
        List<DeviceDetailEntry> entries = new LinkedList<DeviceDetailEntry>();

        final Button switchButton = new Button();
        switchButton.setImmediate(true);
        String buttonLabel = "?";
        if (((OnOffActuator) device).state != null)
            buttonLabel = ((OnOffActuator) device).state ? "An" : "Aus";
        switchButton.setCaption(buttonLabel);
        switchButton.addListener(new Button.ClickListener() {

            public void buttonClick(ClickEvent event) {
                if (((OnOffActuator) device).state) {
                    ((OnOffActuator) device).turnOff();
                } else {
                    ((OnOffActuator) device).turnOn();
                }

                String buttonLabel = "?";
                if (((OnOffActuator) device).state != null)
                    buttonLabel = ((OnOffActuator) device).state ? "An" : "Aus";
                switchButton.setCaption(buttonLabel);
                parent.reloadPage();
            }
        });

        entries.add(new DeviceDetailEntry("Schalten", switchButton));

        return entries;
    }

    @Override
    public boolean matchesDevice() {
        boolean bla = getDevice().derivesFromClass(OnOffActuator.class);
        return bla;

    }

}