-// $Id$
/**
* Copyright (C) 2007 EDIT
* European Distributed Institute of Taxonomy
package eu.etaxonomy.taxeditor.ui.section.description;
+import org.eclipse.e4.ui.di.UISynchronize;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.swt.SWT;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
+import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
import eu.etaxonomy.taxeditor.ui.section.description.operation.ChangeDescriptionElementType;
+import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
/**
* <p>DescriptionElementDetailSection class.</p>
@Override
protected Control createToolbar() {
- if(! hasSpecificElement()){
- return null;
- }
ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
- final String destinationString = (getEntity() instanceof TextData) ? "the specific element" : "free text";
+ final String destinationString = (getEntity().isInstanceOf(TextData.class)) ? "the specific element" : "free text";
final String label = "Change to " + destinationString;
- Action addAction = new Action("Change Type", Action.AS_PUSH_BUTTON) {
+ Action addAction = new Action("Change Type", IAction.AS_PUSH_BUTTON) {
/* (non-Javadoc)
* @see org.eclipse.jface.action.Action#run()
*/
@Override
public void run() {
- boolean confirmed = StoreUtil.confirmDialog("Confirmation", "Do you really want to change to "
+ boolean confirmed = MessagingUtils.confirmDialog("Confirmation", "Do you really want to change to "
+ destinationString + "? Current data will be lost.");
if (confirmed) {
- // FIXME
- ChangeDescriptionElementType operation = new ChangeDescriptionElementType(label,
- getEntity(), StoreUtil.getDetailsView(), StoreUtil.getUndoContext());
- StoreUtil.executeOperation(operation);
+ EPartService partService = formFactory.getContext().get(EPartService.class);
+ DetailsPartE4 detailsView = AbstractUtility.getDetailsView(partService);
+ ChangeDescriptionElementType operation = new ChangeDescriptionElementType(label,
+ getEntity(), detailsView, StoreUtil.getUndoContext());
+ AbstractUtility.executeOperation(operation, formFactory.getContext().get(UISynchronize.class));
}
}
};
// TODO enable this once a proper icon has been found
+ // ticket #5043
// addAction.setImageDescriptor(new ImageDescriptor() {
//
// @Override
/** {@inheritDoc} */
@Override
protected void setSectionTitle() {
- this.setText(getHeading() + ": " + getEntity().getFeature().getLabel(CdmStore.getDefaultLanguage()));
- setTextClient(createToolbar());
+ this.setText(getHeading() + ": " + getEntity().getFeature().getPreferredRepresentation(CdmStore.getDefaultLanguage()));
+ //getLabel(CdmStore.getDefaultLanguage()));
+
+ if(IsMoreThanOneTypeSupported()){
+ setTextClient(createToolbar());
+ }
}
- private boolean hasSpecificElement(){
- return getEntity().getFeature().isSupportsCategoricalData()
- || getEntity().getFeature().isSupportsCommonTaxonName()
- || getEntity().getFeature().isSupportsDistribution()
- || getEntity().getFeature().isSupportsIndividualAssociation()
- || getEntity().getFeature().isSupportsQuantitativeData()
- || getEntity().getFeature().isSupportsTaxonInteraction();
+ private boolean IsMoreThanOneTypeSupported(){
+ int count = 0;
+ Feature feature = getEntity().getFeature();
+ if(feature.isSupportsCategoricalData()){count++;}
+ if(feature.isSupportsCommonTaxonName()){count++;}
+ if(feature.isSupportsDistribution()){count++;}
+ if(feature.isSupportsIndividualAssociation()){count++;}
+ if(feature.isSupportsQuantitativeData()){count++;}
+ if(feature.isSupportsTaxonInteraction()){count++;}
+ if(feature.isSupportsTextData()){count++;}
+ return count > 1;
}
/* (non-Javadoc)