001 /* 002 Copyright (C) 2001-2003 Renaud Pawlak, Laurent Martelli 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, 010 but WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 012 GNU Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public License 015 along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 017 018 package org.objectweb.jac.aspects.gui; 019 020 import org.objectweb.jac.core.rtti.ClassItem; 021 022 023 024 /** 025 * This interface is implemented to define different value editors 026 * depending on the type of the value to edit. */ 027 028 public interface FieldEditor extends FieldView { 029 030 /** 031 * Gets the value of the edited object. 032 * 033 * @return an object of the edited type */ 034 035 Object getValue(); 036 037 /** 038 * Sets wether the editor is embedded in a view. 039 */ 040 void setEmbedded(boolean isEmbedded); 041 042 /** 043 * Called when the focus is given to the editor 044 * 045 * @param extraOption an optional parameter 046 */ 047 void onSetFocus(Object extraOption); 048 049 /** 050 * Commits the changes in this editor. 051 */ 052 void commit(); 053 054 boolean isEnabled(); 055 void setEnabled(boolean enabled); 056 057 /** 058 * Sets the type of the edited value 059 * @param type the type of the edited value 060 */ 061 void setEditedType(ClassItem type); 062 } 063