import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
import eu.etaxonomy.cdm.api.service.dto.SpecimenRowWrapperDTO;
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.description.Character;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
private FreezeLayer freezeLayer;
- private List<Feature> features;
+ private List<Character> features;
private CharacterMatrixPart part;
natTable.doCommand(new ClientAreaResizeCommand(natTable));
}
- private List<Feature> initFeatureList(FeatureNode node){
- List<Feature> features = new ArrayList<>();
+ private List<Character> initFeatureList(FeatureNode node){
+ List<Character> features = new ArrayList<>();
node.getChildNodes().forEach(childNode->
{
- Feature feature = childNode.getFeature();
+ DefinedTermBase feature = childNode.getTerm();
+ // FIXME #8146 this is currently checked via the termType of the tree
+ // in the init() method. This may be solved by adding generics to FeatureNode
+ // so that getTerm is typified. This would make this check obsolete
if(feature.isInstanceOf(Character.class)){
- features.add(childNode.getFeature());
+ features.add((Character) feature);
}
features.addAll(initFeatureList(childNode));
});
return new File(WorkbenchUtility.getBaseLocation(), CHARACTER_MATRIX_STATE_PROPERTIES);
}
- public List<Feature> getFeatures() {
+ public List<Character> getFeatures() {
return features;
}
import eu.etaxonomy.cdm.api.service.IDescriptionService;
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.api.service.dto.RowWrapperDTO;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
public void init(UUID descriptiveDataSetUuid, boolean treeView) {
this.descriptiveDataSet = CdmStore.getService(IDescriptiveDataSetService.class).load(descriptiveDataSetUuid, WS_PROPERTY_PATH);
if(descriptiveDataSet!=null){
- if(descriptiveDataSet.getDescriptiveSystem()==null){
+ if(descriptiveDataSet.getDescriptiveSystem()==null
+ || descriptiveDataSet.getDescriptiveSystem().getTermType()==null
+ || !descriptiveDataSet.getDescriptiveSystem().getTermType().equals(TermType.Character)){
MessagingUtils.informationDialog(Messages.CharacterMatrixPart_COULD_NOT_OPEN, Messages.CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE);
return;
}
CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE=Errors during row creation
CharacterMatrixBottomToolbar_YES=Yes
CharacterMatrixPart_COULD_NOT_OPEN=Editor could not be opened
-CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=The descriptive data set has no feature tree selected.
+CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=The descriptive data set has no character tree selected or the tree contains elements that are not characters.
CharacterMatrixPart_LOADING_MATRIX=Loading matrix...
SwapSynonymAndAcceptedOperation_NOT_IMPLEMENTED=Not yet implemented
SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON=Swap Synonym And Accepted Taxon Operation
CharacterMatrixBottomToolbar_ERROR_ROW_CREATION_TITLE=Fehler bei der Erstellung der Zeilen
CharacterMatrixBottomToolbar_YES=Ja
CharacterMatrixPart_COULD_NOT_OPEN=Editor konnte nicht geöffnet werden
-CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=Das Dataset hat keinen Merkmalsbaum ausgewählt.
+CharacterMatrixPart_COULD_NOT_OPEN_MESSAGE=Das Dataset hat keinen Character-Baum ausgewählt oder enthält Elemente, die keine Character sind.
CharacterMatrixPart_LOADING_MATRIX=Lade Matrix...
SwapSynonymAndAcceptedOperation_NOT_IMPLEMENTED=Noch nicht implementiert
SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON=Tausche Synonym und akzeptiertes Taxon