Package org.joshy.sketch.controls

Source Code of org.joshy.sketch.controls.GenericColorPickerPopup

package org.joshy.sketch.controls;

import org.joshy.gfx.draw.FlatColor;
import org.joshy.gfx.draw.GFX;
import org.joshy.gfx.event.ActionEvent;
import org.joshy.gfx.event.Callback;
import org.joshy.gfx.event.EventBus;
import org.joshy.gfx.node.Node;
import org.joshy.gfx.node.control.Button;
import org.joshy.gfx.node.control.Control;
import org.joshy.gfx.node.layout.Container;
import org.joshy.gfx.node.layout.Panel;
import org.joshy.gfx.util.u;

/**
* Created by IntelliJ IDEA.
* User: josh
* Date: 12/29/11
* Time: 3:52 PM
* To change this template use File | Settings | File Templates.
*/
public class GenericColorPickerPopup extends Container {
    private FreerangeColorPickerPopup freerange;
    private HSVColorPicker hsv;
    private AbstractColorPickerPopup active;
    private Button freeButton;
    private Button hsvButton;
    private FreerangeColorPicker delegate;

    public GenericColorPickerPopup(FreerangeColorPicker delegate, int width, int height, boolean hideOnSelect) {
        super();
        this.delegate = delegate;
        freerange = new FreerangeColorPickerPopup(this,200,100,true);
        hsv = new HSVColorPicker(this,150,150);
        active = freerange;
        freerange.setVisible(true);
        active = freerange;
        hsv.setVisible(false);
        freeButton = new Button("free");
        hsvButton = new Button("hsv");
        add(freeButton);
        add(hsvButton);
        add(freerange);
        add(hsv);

        freeButton.onClicked(new Callback<ActionEvent>() {
            public void call(ActionEvent event) throws Exception {
                active = freerange;
                freerange.setVisible(true);
                hsv.setVisible(false);
            }
        });

        hsvButton.onClicked(new Callback<ActionEvent>() {
            public void call(ActionEvent event) throws Exception {
                active = hsv;
                freerange.setVisible(false);
                hsv.setVisible(true);
            }
        });
    }

    @Override
    public void doLayout() {
        freeButton.setWidth(55);
        freeButton.setHeight(35);
        hsvButton.setWidth(55);
        hsvButton.setHeight(35);
        freeButton.setTranslateX(0);
        freeButton.setTranslateY(0);
        hsvButton.setTranslateX(freeButton.getVisualBounds().getX2()+1);
        hsvButton.setTranslateY(0);
        freerange.setTranslateX(0);
        freerange.setTranslateY(freeButton.getVisualBounds().getY2()+1);
        hsv.setTranslateX(0);
        hsv.setTranslateY(freeButton.getVisualBounds().getY2()+1);
        super.doLayout();
    }

    public void positionAt(double x, double y, FlatColor color) {
        //To change body of created methods use File | Settings | File Templates.
    }

    public void takeoverDrag() {
        active.startDrag();
        EventBus.getSystem().setPressedNode((Node) active);
    }

    public void setSelectedColor(FlatColor color) {
        if(delegate != null) {
            delegate.setSelectedColor(color);
        }
    }

    @Override
    public void draw(GFX g) {
        if(!isVisible()) return;
        g.setOpacity(getOpacity());
        //drawSelf(g);
        for(Node child : children) {
            if(!child.isVisible()) continue;
            g.translate(child.getTranslateX(),child.getTranslateY());
            child.draw(g);
            g.translate(-child.getTranslateX(),-child.getTranslateY());
        }
        this.drawingDirty = false;
        g.setOpacity(1.0);
    }
}
TOP

Related Classes of org.joshy.sketch.controls.GenericColorPickerPopup

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.