com.trolltech.qt.gui
Class QItemEditorCreatorBase

java.lang.Object
  extended by com.trolltech.qt.internal.QSignalEmitterInternal
      extended by com.trolltech.qt.QSignalEmitter
          extended by com.trolltech.qt.QtJambiObject
              extended by com.trolltech.qt.gui.QItemEditorCreatorBase
All Implemented Interfaces:
QtJambiInterface
Direct Known Subclasses:
QItemEditorCreator, QStandardItemEditorCreator

public abstract class QItemEditorCreatorBase
extends QtJambiObject

The QItemEditorCreatorBase class provides an abstract base class that must be subclassed when implementing new item editor creators. QItemEditorCreatorBase objects are specialized widget factories that provide editor widgets for one particular QVariant data type. They are used by QItemEditorFactory to create editors for QItemDelegates. Creator bases must be registered with QItemEditorFactory::registerEditor().

An editor should provide a user property for the data it edits. QItemDelagates can then access the property using Qt's meta-object system to set and retrieve the editing data. A property is set as the user property with the USER keyword:

    @QtPropertyReader
    @QtPropertyUser
    public QColor color() { return color; }

    @QtPropertyWriter
    public void setColor(QColor color) { this.color = color; }
If the editor does not provide a user property, it must return the name of the property from valuePropertyName(); delegates will then use the name to access the property. If a user property exists, item delegates will not call valuePropertyName().

QStandardItemEditorCreator is a convenience template class that can be used to register widgets without the need to subclass QItemEditorCreatorBase.

See also:
QStandardItemEditorCreator, QItemEditorFactory, Model/View Programming, and Color Editor Factory Example.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
QSignalEmitter.AbstractSignal, QSignalEmitter.PrivateSignal0, QSignalEmitter.PrivateSignal1, QSignalEmitter.PrivateSignal2, QSignalEmitter.PrivateSignal3, QSignalEmitter.PrivateSignal4, QSignalEmitter.PrivateSignal5, QSignalEmitter.PrivateSignal6, QSignalEmitter.PrivateSignal7, QSignalEmitter.PrivateSignal8, QSignalEmitter.PrivateSignal9, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9
 
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal
 
Field Summary
 
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
currentSender
 
Constructor Summary
QItemEditorCreatorBase()
          This is an overloaded method provided for convenience.
 
Method Summary
abstract  QWidget createWidget(QWidget parent)
          Returns an editor widget with the given parent.
abstract  QByteArray valuePropertyName()
          Returns the name of the property used to get and set values in the creator's editor widgets.
 
Methods inherited from class com.trolltech.qt.QtJambiObject
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr
 
Methods inherited from class com.trolltech.qt.QSignalEmitter
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread
 
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
__qt_signalInitialization
 
Methods inherited from class java.lang.Object
clone, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.trolltech.qt.QtJambiInterface
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership
 

Constructor Detail

QItemEditorCreatorBase

public QItemEditorCreatorBase()
This is an overloaded method provided for convenience.

Method Detail

createWidget

public abstract QWidget createWidget(QWidget parent)
Returns an editor widget with the given parent.

When implementing this function in subclasses of this class, you must construct and return new editor widgets with the parent widget specified.


valuePropertyName

public abstract QByteArray valuePropertyName()
Returns the name of the property used to get and set values in the creator's editor widgets.

When implementing this function in subclasses, you must ensure that the editor widget's property specified by this function can accept the type the creator is registered for. For example, a creator which constructs QCheckBox widgets to edit boolean values would return the checkable property name from this function, and must be registered in the item editor factory for the QVariant::Bool type.

Note: Since Qt 4.2 the item delegates query the user property of widgets, and only call this function if the widget has no user property. You can override this behavior by reimplementing QAbstractItemDelegate::setModelData() and QAbstractItemDelegate::setEditorData().

See also:
QMetaObject::userProperty(), and QItemEditorFactory::registerEditor().