use of org.openforis.collect.metamodel.CollectAnnotations in project collect by openforis.
the class TaxonAttributeDefinitionFormObject method loadFrom.
@Override
public void loadFrom(TaxonAttributeDefinition source, String languageCode) {
super.loadFrom(source, languageCode);
taxonomy = source.getTaxonomy();
highestRank = source.getHighestTaxonRank() == null ? null : source.getHighestTaxonRank().getName();
qualifiers = new ArrayList<String>(source.getQualifiers());
CollectSurvey survey = (CollectSurvey) source.getSurvey();
CollectAnnotations annotations = survey.getAnnotations();
showFamily = annotations.isShowFamily(source);
includeUniqueVernacularName = annotations.isIncludeUniqueVernacularName(source);
allowUnlisted = annotations.isAllowUnlisted(source);
codeFieldLabel = source.getFieldLabel(CODE_FIELD_NAME, languageCode);
scientificNameFieldLabel = source.getFieldLabel(SCIENTIFIC_NAME_FIELD_NAME, languageCode);
vernacularNameFieldLabel = source.getFieldLabel(VERNACULAR_NAME_FIELD_NAME, languageCode);
languageCodeFieldLabel = source.getFieldLabel(LANGUAGE_CODE_FIELD_NAME, languageCode);
languageVarietyFieldLabel = source.getFieldLabel(LANGUAGE_VARIETY_FIELD_NAME, languageCode);
familyCodeFieldLabel = source.getFieldLabel(FAMILY_CODE_FIELD_NAME, languageCode);
familyNameFieldLabel = source.getFieldLabel(FAMILY_SCIENTIFIC_NAME_FIELD_NAME, languageCode);
}
use of org.openforis.collect.metamodel.CollectAnnotations in project collect by openforis.
the class TextAttributeDefinitionFormObject method saveTo.
@Override
public void saveTo(T dest, String languageCode) {
super.saveTo(dest, languageCode);
Type typeEnum = TextAttributeDefinition.Type.valueOf(type);
dest.setType(typeEnum);
dest.setAnnotation(Annotation.AUTOCOMPLETE.getQName(), autocompleteGroup);
UIOptions uiOptions = getUIOptions(dest);
uiOptions.setAutoUppercase(dest, autoUppercase);
CollectAnnotations annotations = ((CollectSurvey) dest.getSurvey()).getAnnotations();
TextInput textInput = TextInput.valueOf(input);
annotations.setTextInput(dest, textInput);
annotations.setGeometry(dest, geometry);
}
use of org.openforis.collect.metamodel.CollectAnnotations in project collect by openforis.
the class CollectEarthProjectFileCreatorImpl method calculateDistanceBetweenSamplePoints.
private int calculateDistanceBetweenSamplePoints(CollectSurvey survey) {
CollectAnnotations annotations = survey.getAnnotations();
double plotWidth = Math.sqrt(annotations.getCollectEarthPlotArea() * HECTARES_TO_SQUARE_METERS_CONVERSION_FACTOR);
int samplePoints = annotations.getCollectEarthSamplePoints();
if (samplePoints <= 1) {
return 0;
}
double pointsPerWidth = Math.sqrt(samplePoints);
int frameDistance = calculateFrameDistance(survey);
int distanceInMeters = Double.valueOf(Math.floor((double) ((plotWidth - (frameDistance * 2)) / (pointsPerWidth - 1)))).intValue();
return distanceInMeters;
}
use of org.openforis.collect.metamodel.CollectAnnotations in project collect by openforis.
the class CollectEarthProjectFileCreatorImpl method calculateFrameDistance.
private int calculateFrameDistance(CollectSurvey survey) {
CollectAnnotations annotations = survey.getAnnotations();
double plotWidth = Math.sqrt(annotations.getCollectEarthPlotArea() * HECTARES_TO_SQUARE_METERS_CONVERSION_FACTOR);
int samplePoints = annotations.getCollectEarthSamplePoints();
if (samplePoints == 0) {
return Double.valueOf(Math.floor((double) (plotWidth / 2))).intValue();
}
double pointsPerSide = Math.sqrt(samplePoints);
int frameDistance = Double.valueOf(Math.floor((double) ((plotWidth / pointsPerSide) / 2))).intValue();
return frameDistance;
}
use of org.openforis.collect.metamodel.CollectAnnotations in project collect by openforis.
the class CollectEarthBalloonGenerator method createComponent.
private CEComponent createComponent(NodeDefinition def, int entityPosition) {
String label = def.getLabel(Type.INSTANCE, language);
if (label == null && !isDefaultLanguage()) {
label = def.getLabel(Type.INSTANCE);
}
if (label == null) {
label = def.getName();
}
boolean multiple = def.isMultiple();
UIOptions uiOptions = survey.getUIOptions();
boolean hideWhenNotRelevant = uiOptions.isHideWhenNotRelevant(def);
CEComponent comp;
if (def instanceof EntityDefinition) {
if (def.isMultiple() && ((EntityDefinition) def).isEnumerable()) {
comp = createEnumeratedEntityComponent((EntityDefinition) def);
} else {
String tooltip = def.getDescription(language);
CEFieldSet fieldSet = new CEFieldSet(def.getName(), label, tooltip);
for (NodeDefinition child : ((EntityDefinition) def).getChildDefinitions()) {
if (!uiOptions.isHidden(child)) {
fieldSet.addChild(createComponent(child));
}
}
comp = fieldSet;
}
} else {
AttributeDefinition attrDef = (AttributeDefinition) def;
String htmlParameterName;
boolean insideEnumeratedEntity = def.getParentEntityDefinition().isEnumerable();
if (insideEnumeratedEntity) {
htmlParameterName = getEnumeratedEntityComponentHtmlParameterName(def.getParentEntityDefinition(), entityPosition, def);
} else {
htmlParameterName = getHtmlParameterName(def);
}
String tooltip = attrDef.getDescription(language);
CEFieldType type = getFieldType(def);
boolean key = def instanceof KeyAttributeDefinition ? ((KeyAttributeDefinition) def).isKey() : false;
if (insideEnumeratedEntity && key) {
comp = new CEEnumeratingCodeField(htmlParameterName, def.getName(), label, tooltip, multiple, type, key);
} else if (def instanceof CodeAttributeDefinition) {
CodeAttributeDefinition codeAttrDef = (CodeAttributeDefinition) def;
CodeList list = codeAttrDef.getList();
Integer listLevelIndex = codeAttrDef.getListLevelIndex();
Map<Integer, List<CodeListItem>> codeItemsByParentCodeItemId = getCodeListItemsByParentId(list, listLevelIndex);
CodeAttributeDefinition parentCodeAttributeDef = codeAttrDef.getParentCodeAttributeDefinition();
String parentName = parentCodeAttributeDef == null ? null : getHtmlParameterName(parentCodeAttributeDef);
comp = new CECodeField(htmlParameterName, def.getName(), label, tooltip, type, multiple, key, codeItemsByParentCodeItemId, parentName);
} else {
comp = new CEField(htmlParameterName, def.getName(), label, tooltip, multiple, type, key);
}
CollectAnnotations annotations = survey.getAnnotations();
if (attrDef.isCalculated() || (annotations.isFromCollectEarthCSV(attrDef) && annotations.isShowReadOnlyFieldInCollectEarth(attrDef))) {
((CEField) comp).setReadOnly(true);
}
}
comp.hideWhenNotRelevant = hideWhenNotRelevant;
componentByName.put(comp.getName(), comp);
return comp;
}
Aggregations