/* * 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.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.JFormattedTextField; import org.lateralgm.util.PropertyLink; import org.lateralgm.util.PropertyMap; import org.lateralgm.util.PropertyMap.PropertyUpdateEvent; public class FormattedLink<K extends Enum<K>> extends PropertyLink<K,Object> implements PropertyChangeListener { public final JFormattedTextField field; public FormattedLink(JFormattedTextField f, PropertyMap<K> m, K k) { super(m,k); field = f; reset(); field.addPropertyChangeListener("value",this); } @Override protected void setComponent(Object v) { field.setValue(v); } @Override public void remove() { super.remove(); field.removePropertyChangeListener("value",this); } @Override public void updated(PropertyUpdateEvent<K> e) { editComponentIfChanged(field.getValue()); } public void propertyChange(PropertyChangeEvent evt) { editProperty(field.getValue()); } }