Search in sources :

Example 1 with FeatureState

use of de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState in project webanno by webanno.

the class AnnotationDetailEditorPanel method internalCommitAnnotation.

private void internalCommitAnnotation(AjaxRequestTarget aTarget, JCas aJCas) throws AnnotationException, IOException {
    AnnotatorState state = getModelObject();
    LOG.trace("actionAnnotate() selectedLayer: {}", state.getSelectedAnnotationLayer().getUiName());
    LOG.trace("actionAnnotate() defaultLayer: {}", state.getDefaultAnnotationLayer().getUiName());
    if (state.getSelectedAnnotationLayer() == null) {
        error("No layer is selected. First select a layer.");
        aTarget.addChildren(getPage(), IFeedback.class);
        return;
    }
    if (state.getSelectedAnnotationLayer().isReadonly()) {
        error("Layer is not editable.");
        aTarget.addChildren(getPage(), IFeedback.class);
        return;
    }
    // Verify if input is valid according to tagset
    LOG.trace("actionAnnotate() verifying feature values in editors");
    List<FeatureState> featureStates = getModelObject().getFeatureStates();
    for (FeatureState featureState : featureStates) {
        AnnotationFeature feature = featureState.feature;
        if (CAS.TYPE_NAME_STRING.equals(feature.getType())) {
            String value = (String) featureState.value;
            // Check if tag is necessary, set, and correct
            if (value != null && feature.getTagset() != null && !feature.getTagset().isCreateTag() && !annotationService.existsTag(value, feature.getTagset())) {
                error("[" + value + "] is not in the tag list. Please choose from the existing tags");
                return;
            }
        }
    }
    // #186 - After filling a slot, the annotation detail panel is not updated
    aTarget.add(annotationFeatureForm.getFeatureEditorPanel());
    TypeAdapter adapter = annotationService.getAdapter(state.getSelectedAnnotationLayer());
    // If this is an annotation creation action, create the annotation
    if (state.getSelection().getAnnotation().isNotSet()) {
        // Load the feature editors with the remembered values (if any)
        loadFeatureEditorModels(aJCas, aTarget);
        createNewAnnotation(aTarget, adapter, aJCas);
    }
    // Update the features of the selected annotation from the values presently in the
    // feature editors
    writeFeatureEditorModelsToCas(adapter, aJCas);
    // Update progress information
    LOG.trace("actionAnnotate() updating progress information");
    int sentenceNumber = getSentenceNumber(aJCas, state.getSelection().getBegin());
    state.setFocusUnitIndex(sentenceNumber);
    state.getDocument().setSentenceAccessed(sentenceNumber);
    // persist changes
    writeEditorCas(aJCas);
    // Remember the current feature values independently for spans and relations
    LOG.trace("actionAnnotate() remembering feature editor values");
    state.rememberFeatures();
    // Loading feature editor values from CAS
    loadFeatureEditorModels(aJCas, aTarget);
    // onAnnotate callback
    LOG.trace("onAnnotate()");
    onAnnotate(aTarget);
}
Also used : AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) TypeAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.TypeAdapter) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState) AnnotationFeature(de.tudarmstadt.ukp.clarin.webanno.model.AnnotationFeature)

Example 2 with FeatureState

use of de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState in project webanno by webanno.

the class AnnotationDetailEditorPanel method actionReverse.

@Override
public void actionReverse(AjaxRequestTarget aTarget) throws IOException, AnnotationException {
    aTarget.addChildren(getPage(), IFeedback.class);
    JCas jCas = getEditorCas();
    AnnotatorState state = getModelObject();
    AnnotationFS idFs = selectByAddr(jCas, state.getSelection().getAnnotation().getId());
    jCas.removeFsFromIndexes(idFs);
    AnnotationFS originFs = selectByAddr(jCas, state.getSelection().getOrigin());
    AnnotationFS targetFs = selectByAddr(jCas, state.getSelection().getTarget());
    List<FeatureState> featureStates = getModelObject().getFeatureStates();
    TypeAdapter adapter = annotationService.getAdapter(state.getSelectedAnnotationLayer());
    if (adapter instanceof ArcAdapter) {
        // If no features, still create arc #256
        AnnotationFS arc = ((ArcAdapter) adapter).add(targetFs, originFs, jCas, state.getWindowBeginOffset(), state.getWindowEndOffset());
        state.getSelection().setAnnotation(new VID(getAddr(arc)));
        for (FeatureState featureState : featureStates) {
            adapter.setFeatureValue(state, jCas, getAddr(arc), featureState.feature, featureState.value);
        }
    } else {
        error("chains cannot be reversed");
        return;
    }
    // persist changes
    writeEditorCas(jCas);
    int sentenceNumber = getSentenceNumber(jCas, originFs.getBegin());
    state.setFocusUnitIndex(sentenceNumber);
    state.getDocument().setSentenceAccessed(sentenceNumber);
    if (state.getPreferences().isScrollPage()) {
        autoScroll(jCas, false);
    }
    info("The arc has been reversed");
    state.rememberFeatures();
    // in case the user re-reverse it
    state.getSelection().reverseArc();
    onChange(aTarget);
}
Also used : VID(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.VID) AnnotationFS(org.apache.uima.cas.text.AnnotationFS) ArcAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ArcAdapter) AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) TypeAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.TypeAdapter) JCas(org.apache.uima.jcas.JCas) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState)

Example 3 with FeatureState

use of de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState in project webanno by webanno.

the class AnnotationDetailEditorPanel method createNewChainElement.

private void createNewChainElement(ChainAdapter aAdapter, JCas aJCas) throws AnnotationException {
    LOG.trace("createNewChainElement()");
    AnnotatorState state = getModelObject();
    Selection selection = state.getSelection();
    List<FeatureState> featureStates = state.getFeatureStates();
    for (FeatureState featureState : featureStates) {
        Serializable spanValue = aAdapter.getSpan(aJCas, selection.getBegin(), selection.getEnd(), featureState.feature, null);
        if (spanValue != null) {
            // allow modification for forward annotation
            if (state.isForwardAnnotation()) {
                featureState.value = spanValue;
                featureStates.get(0).value = spanValue;
                String selectedTag = annotationFeatureForm.getBindTags().entrySet().stream().filter(e -> e.getValue().equals(spanValue)).map(Map.Entry::getKey).findFirst().orElse(null);
                annotationFeatureForm.setSelectedTag(selectedTag);
            }
        }
    }
    selection.setAnnotation(new VID(aAdapter.addSpan(aJCas, selection.getBegin(), selection.getEnd())));
    selection.setText(aJCas.getDocumentText().substring(selection.getBegin(), selection.getEnd()));
}
Also used : TypeAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.TypeAdapter) SpringBean(org.apache.wicket.spring.injection.annot.SpringBean) SpanAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.SpanAdapter) LoggerFactory(org.slf4j.LoggerFactory) NoResultException(javax.persistence.NoResultException) WebAnnoCasUtil(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil) AnnotationException(de.tudarmstadt.ukp.clarin.webanno.api.annotation.exception.AnnotationException) LinkMode(de.tudarmstadt.ukp.clarin.webanno.model.LinkMode) StringUtils(org.apache.commons.lang3.StringUtils) Type(org.apache.uima.cas.Type) Selection(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.Selection) AnnotationEditorExtensionRegistry(de.tudarmstadt.ukp.clarin.webanno.api.annotation.AnnotationEditorExtensionRegistry) Map(java.util.Map) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) WebAnnoCasUtil.isSame(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.isSame) FeatureStructure(org.apache.uima.cas.FeatureStructure) IModel(org.apache.wicket.model.IModel) WebAnnoCasUtil.getSentenceNumber(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.getSentenceNumber) UIMAException(org.apache.uima.UIMAException) JCas(org.apache.uima.jcas.JCas) Tag(de.tudarmstadt.ukp.clarin.webanno.model.Tag) MultiValueMode(de.tudarmstadt.ukp.clarin.webanno.model.MultiValueMode) WebAnnoConst(de.tudarmstadt.ukp.clarin.webanno.api.WebAnnoConst) Set(java.util.Set) Component(org.apache.wicket.Component) ValuesGenerator(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.ValuesGenerator) IFeedback(org.apache.wicket.feedback.IFeedback) Serializable(java.io.Serializable) ArcAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ArcAdapter) Objects(java.util.Objects) List(java.util.List) TypeUtil(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.TypeUtil) AnnotationLayer(de.tudarmstadt.ukp.clarin.webanno.model.AnnotationLayer) ExceptionUtils(org.apache.commons.lang3.exception.ExceptionUtils) AnnotationFS(org.apache.uima.cas.text.AnnotationFS) ProjectService(de.tudarmstadt.ukp.clarin.webanno.api.ProjectService) SourceDocumentState(de.tudarmstadt.ukp.clarin.webanno.model.SourceDocumentState) AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) WebAnnoCasUtil.selectByAddr(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.selectByAddr) CAS(org.apache.uima.cas.CAS) Feature(org.apache.uima.cas.Feature) Mode(de.tudarmstadt.ukp.clarin.webanno.model.Mode) PossibleValue(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.PossibleValue) WebAnnoCasUtil.setFeature(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.setFeature) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) AnnotationSchemaService(de.tudarmstadt.ukp.clarin.webanno.api.AnnotationSchemaService) Project(de.tudarmstadt.ukp.clarin.webanno.model.Project) AjaxFormValidatingBehavior(org.apache.wicket.ajax.form.AjaxFormValidatingBehavior) LinkWithRoleModel(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.LinkWithRoleModel) WebAnnoCasUtil.getAddr(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.getAddr) DocumentService(de.tudarmstadt.ukp.clarin.webanno.api.DocumentService) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) WebAnnoCasUtil.selectAt(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.selectAt) CurationDocumentService(de.tudarmstadt.ukp.clarin.webanno.curation.storage.CurationDocumentService) AnnotationActionHandler(de.tudarmstadt.ukp.clarin.webanno.api.annotation.action.AnnotationActionHandler) IOException(java.io.IOException) CasUtil(org.apache.uima.fit.util.CasUtil) Panel(org.apache.wicket.markup.html.panel.Panel) AnnotationFeature(de.tudarmstadt.ukp.clarin.webanno.model.AnnotationFeature) Evaluator(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.Evaluator) ChainAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ChainAdapter) VID(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.VID) RulesIndicator(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.RulesIndicator) VID(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.VID) Serializable(java.io.Serializable) Selection(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.Selection) AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState)

Example 4 with FeatureState

use of de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState in project webanno by webanno.

the class AnnotationDetailEditorPanel method writeFeatureEditorModelsToCas.

private void writeFeatureEditorModelsToCas(TypeAdapter aAdapter, JCas aJCas) throws IOException {
    AnnotatorState state = getModelObject();
    List<FeatureState> featureStates = state.getFeatureStates();
    LOG.trace("writeFeatureEditorModelsToCas()");
    List<AnnotationFeature> features = new ArrayList<>();
    for (FeatureState featureState : featureStates) {
        features.add(featureState.feature);
        // For string features with extensible tagsets, extend the tagset
        if (CAS.TYPE_NAME_STRING.equals(featureState.feature.getType())) {
            String value = (String) featureState.value;
            if (value != null && featureState.feature.getTagset() != null && featureState.feature.getTagset().isCreateTag() && !annotationService.existsTag(value, featureState.feature.getTagset())) {
                Tag selectedTag = new Tag();
                selectedTag.setName(value);
                selectedTag.setTagSet(featureState.feature.getTagset());
                annotationService.createTag(selectedTag);
            }
        }
        LOG.trace("writeFeatureEditorModelsToCas() " + featureState.feature.getUiName() + " = " + featureState.value);
        aAdapter.setFeatureValue(state, aJCas, state.getSelection().getAnnotation().getId(), featureState.feature, featureState.value);
    }
    // Generate info message
    if (state.getSelection().getAnnotation().isSet()) {
        String bratLabelText = TypeUtil.getUiLabelText(aAdapter, selectByAddr(aJCas, state.getSelection().getAnnotation().getId()), features);
        info(generateMessage(state.getSelectedAnnotationLayer(), bratLabelText, false));
    }
}
Also used : AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) ArrayList(java.util.ArrayList) Tag(de.tudarmstadt.ukp.clarin.webanno.model.Tag) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState) AnnotationFeature(de.tudarmstadt.ukp.clarin.webanno.model.AnnotationFeature)

Example 5 with FeatureState

use of de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState in project webanno by webanno.

the class AnnotationDetailEditorPanel method createNewSpanAnnotation.

private void createNewSpanAnnotation(AjaxRequestTarget aTarget, SpanAdapter aAdapter, JCas aJCas) throws IOException, AnnotationException {
    LOG.trace("createNewSpanAnnotation()");
    AnnotatorState state = getModelObject();
    Selection selection = state.getSelection();
    List<FeatureState> featureStates = state.getFeatureStates();
    if ((aAdapter.isAllowMultipleToken() || aAdapter.isLockToTokenOffsets()) && selection.getBegin() == selection.getEnd()) {
        throw new AnnotationException("Cannot create zero-width annotation on layers that lock to token boundaries.");
    }
    for (FeatureState featureState : featureStates) {
        Serializable spanValue = aAdapter.getSpan(aJCas, selection.getBegin(), selection.getEnd(), featureState.feature, null);
        if (spanValue != null) {
            // allow modification for forward annotation
            if (state.isForwardAnnotation()) {
                featureState.value = spanValue;
                featureStates.get(0).value = spanValue;
                String selectedTag = annotationFeatureForm.getBindTags().entrySet().stream().filter(e -> e.getValue().equals(spanValue)).map(Map.Entry::getKey).findFirst().orElse(null);
                annotationFeatureForm.setSelectedTag(selectedTag);
            } else {
                actionClear(aTarget);
                throw new AnnotationException("Cannot create another annotation of layer [" + state.getSelectedAnnotationLayer().getUiName() + "] at this" + " location - stacking is not enabled for this layer.");
            }
        }
    }
    int annoId = aAdapter.add(state, aJCas, selection.getBegin(), selection.getEnd());
    AnnotationFS annoFs = WebAnnoCasUtil.selectByAddr(aJCas, annoId);
    selection.selectSpan(new VID(annoId), aJCas, annoFs.getBegin(), annoFs.getEnd());
}
Also used : TypeAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.TypeAdapter) SpringBean(org.apache.wicket.spring.injection.annot.SpringBean) SpanAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.SpanAdapter) LoggerFactory(org.slf4j.LoggerFactory) NoResultException(javax.persistence.NoResultException) WebAnnoCasUtil(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil) AnnotationException(de.tudarmstadt.ukp.clarin.webanno.api.annotation.exception.AnnotationException) LinkMode(de.tudarmstadt.ukp.clarin.webanno.model.LinkMode) StringUtils(org.apache.commons.lang3.StringUtils) Type(org.apache.uima.cas.Type) Selection(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.Selection) AnnotationEditorExtensionRegistry(de.tudarmstadt.ukp.clarin.webanno.api.annotation.AnnotationEditorExtensionRegistry) Map(java.util.Map) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) WebAnnoCasUtil.isSame(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.isSame) FeatureStructure(org.apache.uima.cas.FeatureStructure) IModel(org.apache.wicket.model.IModel) WebAnnoCasUtil.getSentenceNumber(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.getSentenceNumber) UIMAException(org.apache.uima.UIMAException) JCas(org.apache.uima.jcas.JCas) Tag(de.tudarmstadt.ukp.clarin.webanno.model.Tag) MultiValueMode(de.tudarmstadt.ukp.clarin.webanno.model.MultiValueMode) WebAnnoConst(de.tudarmstadt.ukp.clarin.webanno.api.WebAnnoConst) Set(java.util.Set) Component(org.apache.wicket.Component) ValuesGenerator(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.ValuesGenerator) IFeedback(org.apache.wicket.feedback.IFeedback) Serializable(java.io.Serializable) ArcAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ArcAdapter) Objects(java.util.Objects) List(java.util.List) TypeUtil(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.TypeUtil) AnnotationLayer(de.tudarmstadt.ukp.clarin.webanno.model.AnnotationLayer) ExceptionUtils(org.apache.commons.lang3.exception.ExceptionUtils) AnnotationFS(org.apache.uima.cas.text.AnnotationFS) ProjectService(de.tudarmstadt.ukp.clarin.webanno.api.ProjectService) SourceDocumentState(de.tudarmstadt.ukp.clarin.webanno.model.SourceDocumentState) AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) WebAnnoCasUtil.selectByAddr(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.selectByAddr) CAS(org.apache.uima.cas.CAS) Feature(org.apache.uima.cas.Feature) Mode(de.tudarmstadt.ukp.clarin.webanno.model.Mode) PossibleValue(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.PossibleValue) WebAnnoCasUtil.setFeature(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.setFeature) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) AnnotationSchemaService(de.tudarmstadt.ukp.clarin.webanno.api.AnnotationSchemaService) Project(de.tudarmstadt.ukp.clarin.webanno.model.Project) AjaxFormValidatingBehavior(org.apache.wicket.ajax.form.AjaxFormValidatingBehavior) LinkWithRoleModel(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.LinkWithRoleModel) WebAnnoCasUtil.getAddr(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.getAddr) DocumentService(de.tudarmstadt.ukp.clarin.webanno.api.DocumentService) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) WebAnnoCasUtil.selectAt(de.tudarmstadt.ukp.clarin.webanno.api.annotation.util.WebAnnoCasUtil.selectAt) CurationDocumentService(de.tudarmstadt.ukp.clarin.webanno.curation.storage.CurationDocumentService) AnnotationActionHandler(de.tudarmstadt.ukp.clarin.webanno.api.annotation.action.AnnotationActionHandler) IOException(java.io.IOException) CasUtil(org.apache.uima.fit.util.CasUtil) Panel(org.apache.wicket.markup.html.panel.Panel) AnnotationFeature(de.tudarmstadt.ukp.clarin.webanno.model.AnnotationFeature) Evaluator(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.Evaluator) ChainAdapter(de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ChainAdapter) VID(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.VID) RulesIndicator(de.tudarmstadt.ukp.clarin.webanno.constraints.evaluator.RulesIndicator) VID(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.VID) AnnotationFS(org.apache.uima.cas.text.AnnotationFS) Serializable(java.io.Serializable) Selection(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.Selection) AnnotatorState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState) AnnotationException(de.tudarmstadt.ukp.clarin.webanno.api.annotation.exception.AnnotationException) FeatureState(de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState)

Aggregations

FeatureState (de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.FeatureState)12 AnnotatorState (de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.AnnotatorState)8 TypeAdapter (de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.TypeAdapter)5 AnnotationFeature (de.tudarmstadt.ukp.clarin.webanno.model.AnnotationFeature)5 AnnotationFS (org.apache.uima.cas.text.AnnotationFS)5 AnnotationException (de.tudarmstadt.ukp.clarin.webanno.api.annotation.exception.AnnotationException)4 ArcAdapter (de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ArcAdapter)3 Selection (de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.Selection)3 VID (de.tudarmstadt.ukp.clarin.webanno.api.annotation.model.VID)3 AnnotationLayer (de.tudarmstadt.ukp.clarin.webanno.model.AnnotationLayer)3 Tag (de.tudarmstadt.ukp.clarin.webanno.model.Tag)3 ArrayList (java.util.ArrayList)3 JCas (org.apache.uima.jcas.JCas)3 AnnotationSchemaService (de.tudarmstadt.ukp.clarin.webanno.api.AnnotationSchemaService)2 DocumentService (de.tudarmstadt.ukp.clarin.webanno.api.DocumentService)2 ProjectService (de.tudarmstadt.ukp.clarin.webanno.api.ProjectService)2 WebAnnoConst (de.tudarmstadt.ukp.clarin.webanno.api.WebAnnoConst)2 AnnotationEditorExtensionRegistry (de.tudarmstadt.ukp.clarin.webanno.api.annotation.AnnotationEditorExtensionRegistry)2 AnnotationActionHandler (de.tudarmstadt.ukp.clarin.webanno.api.annotation.action.AnnotationActionHandler)2 ChainAdapter (de.tudarmstadt.ukp.clarin.webanno.api.annotation.adapter.ChainAdapter)2