/* * Copyright (C) 2009 Quadduc <quadduc@gmail.com> * * This file is part of LateralGM. * LateralGM is free software and comes with ABSOLUTELY NO WARRANTY. * See LICENSE for details. */ package org.lateralgm.ui.swing.propertylink; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonModel; import org.lateralgm.util.PropertyLink; import org.lateralgm.util.PropertyMap; import org.lateralgm.util.PropertyMap.PropertyUpdateEvent; public class ButtonModelLink<K extends Enum<K>> extends PropertyLink<K,Boolean> implements ActionListener { public final ButtonModel model; public ButtonModelLink(ButtonModel bm, PropertyMap<K> m, K k) { super(m,k); model = bm; reset(); bm.addActionListener(this); } protected void setComponent(Boolean s) { model.setSelected(s); } @Override public void remove() { super.remove(); model.removeActionListener(this); } public void actionPerformed(ActionEvent e) { boolean s = model.isSelected(); if (Boolean.valueOf(s).equals(map.get(key))) return; editProperty(s); } public void updated(PropertyUpdateEvent<K> e) { editComponentIfChanged(model.isSelected()); } }