Package nodebox.client.port

Source Code of nodebox.client.port.FloatControl

package nodebox.client.port;

import nodebox.node.Port;
import nodebox.ui.DraggableNumber;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class FloatControl extends AbstractPortControl implements ChangeListener, ActionListener {

    private DraggableNumber draggable;

    public FloatControl(String nodePath, Port port) {
        super(nodePath, port);
        setLayout(new FlowLayout(FlowLayout.LEADING, 0, 0));
        draggable = new DraggableNumber();
        draggable.addChangeListener(this);
        draggable.setMinimumValue(null);
        draggable.setMinimumValue(port.getMinimumValue());
        draggable.setMaximumValue(port.getMaximumValue());
        setPreferredSize(draggable.getPreferredSize());
        add(draggable);
        setValueForControl(port.getValue());
    }

    @Override
    public void setEnabled(boolean enabled) {
        super.setEnabled(enabled);
        draggable.setEnabled(enabled);
    }

    public void setValueForControl(Object v) {
        if (v instanceof Float) {
            draggable.setValue((Float) v);
        } else if (v instanceof Double) {
            draggable.setValue(((Double) v).floatValue());
        } else if (v instanceof Integer) {
            draggable.setValue(((Integer) v).floatValue());
        } else {
            throw new IllegalArgumentException("Value " + v + " is not a number.");
        }
    }

    public void stateChanged(ChangeEvent e) {
        setValueFromControl();
    }

    public void actionPerformed(ActionEvent e) {
        setValueFromControl();
    }

    private void setValueFromControl() {
        double value = draggable.getValue();
        setPortValue(value);
    }

}
TOP

Related Classes of nodebox.client.port.FloatControl

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.