class DroolsDataObjectFieldEditor extends FieldEditor implements DroolsDataObjectFieldEditorView.Presenter {

    @Override
    protected void loadDataObjectField( DataObject dataObject,
            ObjectProperty objectField ) {
        clear();
        setReadonly( true );
        if ( dataObject != null && objectField != null ) {
            this.dataObject = dataObject;
            this.objectField = objectField;

            Annotation annotation = objectField.getAnnotation( DroolsDomainAnnotations.KEY_ANNOTATION );
            if ( annotation != null ) {
                view.setEquals( Boolean.TRUE );
            }

            annotation = objectField.getAnnotation( DroolsDomainAnnotations.POSITION_ANNOTATION );
            if ( annotation != null ) {
                Object positionValue = annotation.getValue( DroolsDomainAnnotations.VALUE_PARAM );
                String position = positionValue != null ? positionValue.toString() : "";
                view.setPosition( position );
            }

            setReadonly( getContext() == null || getContext().isReadonly() );
        }
    }

    @Inject public  DroolsDataObjectFieldEditor( DroolsDataObjectFieldEditorView view,
            DomainHandlerRegistry handlerRegistry,
            Event<DataModelerEvent> dataModelerEvent,
            DataModelCommandBuilder commandBuilder );

}