001/* 002 * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games. 003 * Copyright (C) 2000-2011 The Gridarta Developers. 004 * 005 * This program is free software; you can redistribute it and/or modify 006 * it under the terms of the GNU General Public License as published by 007 * the Free Software Foundation; either version 2 of the License, or 008 * (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU General Public License for more details. 014 * 015 * You should have received a copy of the GNU General Public License along 016 * with this program; if not, write to the Free Software Foundation, Inc., 017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 018 */ 019 020package net.sf.gridarta.gui.dialog.plugin.parameter; 021 022import javax.swing.JTextField; 023import javax.swing.event.DocumentEvent; 024import javax.swing.event.DocumentListener; 025import net.sf.gridarta.model.archetype.Archetype; 026import net.sf.gridarta.model.gameobject.GameObject; 027import net.sf.gridarta.model.maparchobject.MapArchObject; 028import net.sf.gridarta.plugin.parameter.PluginParameter; 029 030public class ParameterDescriptionEditor<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends JTextField { 031 032 private static final long serialVersionUID = 1L; 033 034 private final PluginParameter<G, A, R, ?> parameter; 035 036 public ParameterDescriptionEditor(final PluginParameter<G, A, R, ?> param) { 037 parameter = param; 038 setText(param.getDescription()); 039 getDocument().addDocumentListener(new DocumentListener() { 040 041 @Override 042 public void changedUpdate(final DocumentEvent e) { 043 change(); 044 } 045 046 @Override 047 public void insertUpdate(final DocumentEvent e) { 048 change(); 049 } 050 051 @Override 052 public void removeUpdate(final DocumentEvent e) { 053 change(); 054 } 055 056 private void change() { 057 parameter.setDescription(getText()); 058 } 059 }); 060 } 061 062}