@Override public Object getDisplayValue(AnnotationLayer aObject) { return aObject.getUiName(); } });
@Override public Object getDisplayValue(AnnotationLayer aObject) { return aObject.getUiName(); } });
public static String generateMessage(AnnotationLayer aLayer, String aLabel, boolean aDeleted) { String action = aDeleted ? "deleted" : "created/updated"; String msg = "The [" + aLayer.getUiName() + "] annotation has been " + action + "."; if (StringUtils.isNotBlank(aLabel)) { msg += " Label: [" + aLabel + "]"; } return msg; } }
private static String generateMessage(AnnotationLayer aLayer, String aLabel, boolean aDeleted) { String action = aDeleted ? "deleted" : "created/updated"; String msg = "The [" + aLayer.getUiName() + "] annotation has been " + action + "."; if (StringUtils.isNotBlank(aLabel)) { msg += " Label: [" + aLabel + "]"; } return msg; }
@Override protected void onUpdate(AjaxRequestTarget target) { String modelValue = StringUtils.capitalize(getModelObject().getUiName()); layerName = modelValue; } });
@Override public List<Pair<LogMessage, AnnotationFS>> validate(JCas aJCas) { List<Pair<LogMessage, AnnotationFS>> messages = new ArrayList<>(); for (SpanLayerBehavior behavior : behaviors) { long startTime = currentTimeMillis(); messages.addAll(behavior.onValidate(this, aJCas)); log.trace("Validation for [{}] on [{}] took {}ms", behavior.getClass().getSimpleName(), getLayer().getUiName(), currentTimeMillis() - startTime); } return messages; } }
@Override public List<Pair<LogMessage, AnnotationFS>> validate(JCas aJCas) { List<Pair<LogMessage, AnnotationFS>> messages = new ArrayList<>(); for (SpanLayerBehavior behavior : behaviors) { long startTime = currentTimeMillis(); messages.addAll(behavior.onValidate(this, aJCas)); log.trace("Validation for [{}] on [{}] took {}ms", behavior.getClass().getSimpleName(), getLayer().getUiName(), currentTimeMillis() - startTime); } return messages; } }
@Override public List<Pair<LogMessage, AnnotationFS>> validate(JCas aJCas) { List<Pair<LogMessage, AnnotationFS>> messages = new ArrayList<>(); for (RelationLayerBehavior behavior : behaviors) { long startTime = currentTimeMillis(); messages.addAll(behavior.onValidate(this, aJCas)); log.trace("Validation for [{}] on [{}] took {}ms", behavior.getClass().getSimpleName(), getLayer().getUiName(), currentTimeMillis() - startTime); } return messages; } }
private static EntityType configureEntityType(AnnotationLayer aLayer) { String bratTypeName = getBratTypeName(aLayer); return new EntityType(aLayer.getName(), aLayer.getUiName(), bratTypeName); }
private static EntityType configureEntityType(AnnotationLayer aLayer) { String bratTypeName = getBratTypeName(aLayer); return new EntityType(aLayer.getName(), aLayer.getUiName(), bratTypeName); }
@Override public List<FeatureType> getSupportedFeatureTypes(AnnotationLayer aAnnotationLayer) { List<FeatureType> types = new ArrayList<>(); // Slot features are only supported on span layers if (WebAnnoConst.SPAN_TYPE.equals(aAnnotationLayer.getType())) { // Add layers of type SPAN available in the project for (AnnotationLayer spanLayer : annotationService .listAnnotationLayer(aAnnotationLayer.getProject())) { if ( Token.class.getName().equals(spanLayer.getName()) || Sentence.class.getName().equals(spanLayer.getName())) { continue; } if (WebAnnoConst.SPAN_TYPE.equals(spanLayer.getType())) { types.add(new FeatureType(spanLayer.getName(), "Link: " + spanLayer.getUiName(), featureSupportId)); } } // Also allow the user to use any annotation type as slot filler types.add(new FeatureType(CAS.TYPE_NAME_ANNOTATION, "Link: <Any>", featureSupportId)); } return types; }
@Override public List<FeatureType> getSupportedFeatureTypes(AnnotationLayer aAnnotationLayer) { List<FeatureType> types = new ArrayList<>(); // Slot features are only supported on span layers if (WebAnnoConst.SPAN_TYPE.equals(aAnnotationLayer.getType())) { // Add layers of type SPAN available in the project for (AnnotationLayer spanLayer : annotationService .listAnnotationLayer(aAnnotationLayer.getProject())) { if ( Token.class.getName().equals(spanLayer.getName()) || Sentence.class.getName().equals(spanLayer.getName())) { continue; } if (WebAnnoConst.SPAN_TYPE.equals(spanLayer.getType())) { types.add(new FeatureType(spanLayer.getName(), "Link: " + spanLayer.getUiName(), featureSupportId)); } } // Also allow the user to use any annotation type as slot filler types.add(new FeatureType(CAS.TYPE_NAME_ANNOTATION, "Link: <Any>", featureSupportId)); } return types; }
private void fix(Project aProject, Class<? extends TOP> aLayer, String aLayerType, AnnotationLayer aTokenLayer, String aFeature) { if (annotationSchemaService.existsLayer(aLayer.getName(), aLayerType, aProject)) { AnnotationLayer layer = annotationSchemaService.getLayer(aLayer.getName(), aProject); if (layer.getAttachFeature() == null) { layer.setAttachFeature(annotationSchemaService.getFeature(aFeature, aTokenLayer)); log.info("DATABASE UPGRADE PERFORMED: Fixed attach-feature of layer " + "[{}] ({}) in project [{}] ({})", layer.getUiName(), layer.getId(), aProject.getName(), aProject.getId()); } } } }
private void fix(Project aProject, Class<? extends TOP> aLayer, String aLayerType, AnnotationLayer aTokenLayer, String aFeature) { if (annotationSchemaService.existsLayer(aLayer.getName(), aLayerType, aProject)) { AnnotationLayer layer = annotationSchemaService.getLayer(aLayer.getName(), aProject); if (layer.getAttachFeature() == null) { layer.setAttachFeature(annotationSchemaService.getFeature(aFeature, aTokenLayer)); log.info("DATABASE UPGRADE PERFORMED: Fixed attach-feature of layer " + "[{}] ({}) in project [{}] ({})", layer.getUiName(), layer.getId(), aProject.getName(), aProject.getId()); } } } }
@Override protected void populateItem(ListItem<AnnotationListItem> aItem) { aItem.setModel(CompoundPropertyModel.of(aItem.getModel())); aItem.add(new Label("type", aItem.getModelObject().layer.getUiName())); LambdaAjaxLink link = new LambdaAjaxLink("annotationLink", _target -> actionSelect(_target, aItem.getModelObject())); link.add(new Label("label")); aItem.add(link); } };
@Override protected void populateItem(ListItem<AnnotationListItem> aItem) { aItem.setModel(CompoundPropertyModel.of(aItem.getModel())); aItem.add(new Label("type", aItem.getModelObject().layer.getUiName())); LambdaAjaxLink link = new LambdaAjaxLink("annotationLink", _target -> actionSelect(_target, aItem.getModelObject())); link.add(new Label("label")); aItem.add(link); } };
private String generateName(Recommender aRecommender) { if (aRecommender.getFeature() == null || aRecommender.getLayer() == null || aRecommender.getTool() == null) { return null; } else { RecommendationEngineFactory factory = recommenderRegistry .getFactory(aRecommender.getTool()); return String.format(Locale.US, "[%s@%s] %s", aRecommender.getLayer().getUiName(), aRecommender.getFeature().getUiName(), factory.getName()); } }
void updateRememberLayer() { AnnotatorState state = getModelObject(); if (state.getPreferences().isRememberLayer()) { if (state.getDefaultAnnotationLayer() == null) { state.setDefaultAnnotationLayer(state.getSelectedAnnotationLayer()); } } else if (!state.getSelection().isArc()) { state.setDefaultAnnotationLayer(state.getSelectedAnnotationLayer()); } // if no layer is selected in Settings if (state.getSelectedAnnotationLayer() != null) { selectedAnnotationLayer.setDefaultModelObject( state.getSelectedAnnotationLayer().getUiName()); } }
@Override public CreateSpanAnnotationRequest onCreate(TypeAdapter aAdapter, CreateSpanAnnotationRequest aRequest) throws AnnotationException { if (aAdapter.getLayer().isAllowStacking()) { return aRequest; } final CAS aCas = aRequest.getJcas().getCas(); final int aBegin = aRequest.getBegin(); final int aEnd = aRequest.getEnd(); // If stacking is not allowed and there already is an annotation, then return the address // of the existing annotation. Type type = getType(aCas, aAdapter.getAnnotationTypeName()); for (AnnotationFS fs : selectCovered(aCas, type, aBegin, aEnd)) { if (fs.getBegin() == aBegin && fs.getEnd() == aEnd) { throw new AnnotationException("Cannot create another annotation of layer [" + aAdapter.getLayer().getUiName() + "] at this location - stacking is not " + "enabled for this layer."); } } return aRequest; }
@Override public CreateSpanAnnotationRequest onCreate(TypeAdapter aAdapter, CreateSpanAnnotationRequest aRequest) throws AnnotationException { if (aAdapter.getLayer().isAllowStacking()) { return aRequest; } final CAS aCas = aRequest.getJcas().getCas(); final int aBegin = aRequest.getBegin(); final int aEnd = aRequest.getEnd(); // If stacking is not allowed and there already is an annotation, then return the address // of the existing annotation. Type type = getType(aCas, aAdapter.getAnnotationTypeName()); for (AnnotationFS fs : selectCovered(aCas, type, aBegin, aEnd)) { if (fs.getBegin() == aBegin && fs.getEnd() == aEnd) { throw new AnnotationException("Cannot create another annotation of layer [" + aAdapter.getLayer().getUiName() + "] at this location - stacking is not " + "enabled for this layer."); } } return aRequest; }