class MainDataObjectEditor extends ObjectEditor implements MainDataObjectEditorView.Presenter {

    @Override
    protected void loadDataObject(DataObject dataObject) {
        clear();
        setReadonly(true);
        if (dataObject != null) {
            this.dataObject = dataObject;

            view.setName(dataObject.getName());

            Annotation annotation = dataObject.getAnnotation(MainDomainAnnotations.LABEL_ANNOTATION);
            if (annotation != null) {
                view.setLabel(AnnotationValueHandler.getStringValue(annotation,
                                                                    MainDomainAnnotations.VALUE_PARAM));
            }

            annotation = dataObject.getAnnotation(MainDomainAnnotations.DESCRIPTION_ANNOTATION);
            if (annotation != null) {
                view.setDescription(AnnotationValueHandler.getStringValue(annotation,
                                                                          MainDomainAnnotations.VALUE_PARAM));
            }

            view.setPackageName(dataObject.getPackageName());

            initSuperClassList(false);

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

    @Inject public  MainDataObjectEditor(MainDataObjectEditorView view,
                                DomainHandlerRegistry handlerRegistry,
                                Event<DataModelerEvent> dataModelerEvent,
                                DataModelCommandBuilder commandBuilder,
                                ValidatorService validatorService,
                                Caller<DataModelerService> modelerService,
                                ShowAssetUsagesDisplayer showAssetUsagesDisplayer);

}