-// $Id$
/**
* Copyright (C) 2007 EDIT
* European Distributed Institute of Taxonomy
package eu.etaxonomy.taxeditor.ui.section;
+import java.util.ArrayList;
+import java.util.Collection;
+
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.swt.SWT;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.TextData;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
*
* @author n.hoffmann
* @created Feb 26, 2010
- * @version 1.0
*/
-public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSection<ENTITY> implements IEnableableFormElement, IExpansionListener {
+public abstract class AbstractCdmDetailSection<ENTITY>
+ extends AbstractFormSection<ENTITY>
+ implements IEnableableFormElement, IExpansionListener {
- protected ICdmDetailElement<ENTITY> detailElement;
+ protected AbstractCdmDetailElement<ENTITY> detailElement;
public AbstractCdmDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
}
}
+ @Override
+ public void setText(String title) {
+ super.setText(StoreUtil.cleanTitleString(title));
+ }
+
protected void createControlsByType(AbstractCdmDetailSection<ENTITY> formElement, Class<ENTITY> entityClass, int style) {
TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
layout.topMargin = 10;
createControlsByType(formElement, null, style);
}
- protected abstract ICdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style);
+ protected abstract AbstractCdmDetailElement<ENTITY> createCdmDetailElement(AbstractCdmDetailSection<ENTITY> parentElement, int style);
- protected ICdmDetailElement<ENTITY> createCdmDetailElementByType(AbstractCdmDetailSection<ENTITY> parentElement, Class<ENTITY> entityClass, int style){
+ protected AbstractCdmDetailElement<ENTITY> createCdmDetailElementByType(AbstractCdmDetailSection<ENTITY> parentElement, Class<ENTITY> entityClass, int style){
return createCdmDetailElement(parentElement, style);
}
public void setEntity(ENTITY entity) {
if (detailElement != null) {
detailElement.setEntity(entity);
+ Collection<Object> except = new ArrayList<Object>();
+ for(ICdmFormElement formElement:detailElement.getElements()){
+ if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
+ except.add(formElement);
+ }
+ }
+ detailElement.setEnabled(isEnabled(), except);
}
super.setEntity(entity);
setSectionTitle();
layout();
+
}
protected void setSectionTitle() {
String title = "";
+ String label = "";
if (getEntity() != null && (getEntity() instanceof IdentifiableEntity) && !(getEntity() instanceof SpecimenOrObservationBase)) {
- title = ": " + ((IdentifiableEntity) getEntity()).getTitleCache();
- // we have to duplicate ampersands otherwise they are treated as
- // mnenomic (see Label.setText() documentation)
- // see also #4302
- title = title.replace("&", "&&");
+ if (getEntity() instanceof DefinedTermBase<?> ){
+ label = ((DefinedTermBase<?>)getEntity()).getLabel(PreferencesUtil.getGlobalLanguage());
+ if (label == null){
+ label = ((DefinedTermBase<?>)getEntity()).getLabel();
+ }
+
+ } else if (getEntity() instanceof TextData){
+ label = ((TextData)getEntity()).getLanguageText(PreferencesUtil.getGlobalLanguage()).getText();
+ if (label == null){
+ label = ((TextData)getEntity()).getLanguageText(Language.DEFAULT()).getText();
+ }
+ } else{
+ label =((IdentifiableEntity) getEntity()).getTitleCache();
+ }
+ title = ": " + label;
}
this.setText(String.format("%s%s", getHeading(), title));
setTextClient(createToolbar());
@Override
public void setIrrelevant(boolean irrelevant) {
if (detailElement != null) {
+
detailElement.setIrrelevant(irrelevant);
}
}