import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
*/
public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSection<ENTITY> implements IEnableableFormElement, IExpansionListener {
- protected AbstractCdmDetailElement<ENTITY> detailElement;
+ protected ICdmDetailElement<ENTITY> detailElement;
/**
* <p>
public AbstractCdmDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
- super(formFactory, parentElement, selectionProvider,
- ExpandableComposite.CLIENT_INDENT | style);
-
- setText(getHeading());
-
- addExpansionListener(this);
-
- createControls(this, SWT.NULL);
+ this(formFactory, null, conversation, parentElement, selectionProvider, style);
}
+
public AbstractCdmDetailSection(CdmFormFactory formFactory, Class<ENTITY> clazz,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, parentElement, selectionProvider,
ExpandableComposite.CLIENT_INDENT | style);
- setText(getHeading());
+ setText(getHeading());
- addExpansionListener(this);
+ addExpansionListener(this);
- createControlsByType(this, clazz, SWT.NULL);
+ if(clazz==null){
+ createControls(this, style);
+ }
+ else{
+ createControlsByType(this, clazz, SWT.NULL);
+ }
}
/**
* @param definedTermClass
* @param null1
*/
- protected void createControlsByType(AbstractCdmDetailSection<ENTITY> abstractCdmDetailSection, Class<ENTITY> entityClass, int style) {
+ protected void createControlsByType(AbstractCdmDetailSection<ENTITY> formElement, Class<ENTITY> entityClass, int style) {
+ TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
+ layout.topMargin = 10;
+ layout.numColumns = 2;
+
+ getLayoutComposite().setLayout(layout);
+ if(entityClass==null){
+ detailElement = createCdmDetailElement(formElement, style);
+ }
+ else{
+ detailElement = createCdmDetailElementByType(formElement, entityClass, style);
+ }
}
* a int.
*/
protected void createControls(AbstractCdmDetailSection<ENTITY> formElement, int style) {
- TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
- layout.topMargin = 10;
- layout.numColumns = 2;
-
- getLayoutComposite().setLayout(layout);
- detailElement = createCdmDetailElement(formElement, style);
+ createControlsByType(formElement, null, style);
}
- //TODO: when all detail type enums are removed this can be abstract
- protected AbstractCdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style){
- return formFactory.createCdmDetailElement(getDetailType(), parentElement, style);
- }
+ protected abstract ICdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style);
- /**
- * <p>
- * getDetailType
- * </p>
- *
- * @return a
- * {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.DetailType}
- * object.
- */
- protected abstract DetailType getDetailType();
+ protected ICdmDetailElement<ENTITY> createCdmDetailElementByType(AbstractCdmDetailSection<ENTITY> parentElement, Class<ENTITY> entityClass, int style){
+ return createCdmDetailElement(parentElement, style);
+ }
/**
* <p>