/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* SimpleEditor.java
*
* Created on 10. August 2004, 17:05
*/
package Sirius.navigator.ui.attributes.editor;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
/**
* Ein einfacher Editor zum editieren von primitiven Datententypen oder Objekten als String (toString / fromString).
*
* <p>Abgeleitet von TableCellEditor um auch in einer JTable verwendet werden zu k\u00F6nnen.<br>
* Handelt es sich beim zu bearbeitenden Objekt um ein komplexes Objekt (d.h. ein zusammengesetztes Objekt, eine
* Collection, eine Java Bean, etc.) kann aus diesem einfachen Editor heraus ein komplexer Editor aufgerufen werden
* siehe Methode getEditorComponent(ComplexContainer, ComplexEditor complexEditor, Object, Object)) .</p>
*
* @author Pascal
* @version $Revision$, $Date$
* @see ComplexEditor
*/
public interface SimpleEditor extends BasicEditor, TableCellEditor {
//~ Instance fields --------------------------------------------------------
/** Eigenschaft f\u00FCr den Klassenenamen eines komplexen Editors. */
String PROPERTY_COMLPEX_EDTIOR = "complexEditor"; // NOI18N
/** Eigenschaft f\u00FCr den Klassenenamen eines komplexen Editors. */
String PROPERTY_READ_ONLY = "readOnly"; // NOI18N
//~ Methods ----------------------------------------------------------------
/**
* Initialisiert die Komponente (z.B. ein JPanel) um das einfache Object (value) zu bearbeiten und gibt dieses
* zur\u00FCck.
*
* @param parentContainer DOCUMENT ME!
* @param id die eindeutige id des zu bearbeitenden Objekts
* @param value das zu bearbeitende Object
*
* @return DOCUMENT ME!
*/
Component getEditorComponent(BasicContainer parentContainer, Object id, Object value);
/**
* Diese Methode sollte addComlplexEditor() des Superinterfaces ComplexContainer aufrufen, um das Bearbeiten des
* komplexen Objekts im \u00FCbergebenen komplexen Editor zu erm\u00F6glichen.<br>
* Dabei sollte standardm\u00E4\u00DFig das aktuelle Editor UI durch das UI des neuen komplexen Editors ersetzt
* werden. Alternativ kann auch ein *modaler* Dialog erzeugt werden, der das neue Editor UI enth\u00E4lt.<br>
* Dadurch wird garantier15t, da\u00DF die Ereigniskette zum Speichern / Abbrechen aller untergeordneten Editoren
* korrekt durchlaufen wird!
*
* @param parentContainer der Container in dem dieser Komplexe Editor dargestellt werden soll
* @param complexChildEditor der komplexe Editor der aus deisem Editor heraus aufgerufen werden kann
* @param id die eindeutige id des zu bearbeitenden Objekts
* @param value das zu bearbeitende Object
*
* @return DOCUMENT ME!
*/
Component getEditorComponent(BasicContainer parentContainer,
ComplexEditor complexChildEditor,
Object id,
Object value);
}