Package org.itsnat.feashow.features.comp.buttons.toggle

Source Code of org.itsnat.feashow.features.comp.buttons.toggle.FreeRadioButtonTreeNode

/*
* This file is not part of the ItsNat framework.
*
* Original source code use and closed source derivatives are authorized
* to third parties with no restriction or fee.
* The original source code is owned by the author.
*
* This program is distributed AS IS in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* (C) Innowhere Software a service of Jose Maria Arranz Santamaria, Spanish citizen.
*/

package org.itsnat.feashow.features.comp.buttons.toggle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JToggleButton.ToggleButtonModel;
import org.itsnat.comp.ItsNatComponentManager;
import org.itsnat.comp.button.ItsNatButtonGroup;
import org.itsnat.comp.button.toggle.ItsNatFreeRadioButton;
import org.itsnat.core.ItsNatDocument;
import org.itsnat.feashow.FeatureTreeNode;
import org.w3c.dom.Element;
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.events.EventTarget;

public class FreeRadioButtonTreeNode extends FeatureTreeNode implements EventListener,ActionListener,ItemListener
{
    protected ItsNatFreeRadioButton buttonComp1;
    protected ItsNatFreeRadioButton buttonComp2;

    public FreeRadioButtonTreeNode()
    {
    }

    public void startExamplePanel()
    {
        ItsNatDocument itsNatDoc = getItsNatDocument();
        ItsNatComponentManager compMgr = itsNatDoc.getItsNatComponentManager();

        this.buttonComp1 = (ItsNatFreeRadioButton)compMgr.createItsNatComponentById("buttonId1","freeRadioButton",null);
        buttonComp1.addEventListener("click",this);

        this.buttonComp2 = (ItsNatFreeRadioButton)compMgr.createItsNatComponentById("buttonId2","freeRadioButton",null);
        buttonComp2.addEventListener("click",this);

        ButtonGroup group = new ButtonGroup();
        ItsNatButtonGroup compGroup = compMgr.getItsNatButtonGroup(group);
        compGroup.addButton(buttonComp1);
        compGroup.addButton(buttonComp2);


        ToggleButtonModel dataModel1 = buttonComp1.getToggleButtonModel();
        dataModel1.addActionListener(this);
        dataModel1.addItemListener(this);

        ToggleButtonModel dataModel2 = buttonComp2.getToggleButtonModel();
        dataModel2.addActionListener(this);
        dataModel2.addItemListener(this);
    }

    public void endExamplePanel()
    {
        this.buttonComp1.dispose();
        this.buttonComp1 = null;

        this.buttonComp2.dispose();
        this.buttonComp2 = null;
    }

    public void handleEvent(Event evt)
    {
        EventTarget currentTarget = evt.getCurrentTarget();
        String button;
        if (currentTarget == buttonComp1.getElement())
            button = "button 1";
        else
            button = "button 2";

        log(evt,button);
    }

    public void actionPerformed(ActionEvent e)
    {
        String button;
        if (e.getSource() == buttonComp1.getToggleButtonModel())
            button = "button 1";
        else
            button = "button 2";

        log(e.getClass().toString() + " " + button);
    }

    public void itemStateChanged(ItemEvent e)
    {
        String fact;
        int state = e.getStateChange();
        if (state == ItemEvent.SELECTED)
            fact = "selected";
        else
            fact = "deselected";

        if (e.getItem() == buttonComp1.getToggleButtonModel())
            fact += " 1";
        else
            fact += " 2";

        log(e.getClass().toString() + " " + fact);

        if (e.getItem() == buttonComp1.getToggleButtonModel())
            updateDecoration(buttonComp1);
        else
            updateDecoration(buttonComp2);
    }

    public void updateDecoration(ItsNatFreeRadioButton buttonComp)
    {
        Element buttonElem = buttonComp.getElement();
        ToggleButtonModel model = buttonComp.getToggleButtonModel();
        if (model.isSelected())
            setAttribute(buttonElem,"style","background: rgb(253,147,173);"); // weak red
        else
            buttonElem.removeAttribute("style");
    }

    public static void setAttribute(Element elem,String name,String value)
    {
        String old = elem.getAttribute(name);
        if (old.equals(value)) return; // Avoids redundant operations

        elem.setAttribute(name,value);
    }
}
TOP

Related Classes of org.itsnat.feashow.features.comp.buttons.toggle.FreeRadioButtonTreeNode

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.