default void moveToLastPage(JCas aJCas) { int lastDisplayWindowBeginingSentenceAddress = WebAnnoCasUtil .getLastDisplayWindowFirstSentenceAddress(aJCas, getPreferences().getWindowSize()); if (lastDisplayWindowBeginingSentenceAddress == getFirstVisibleUnitAddress()) { throw new IllegalStateException("This is last page!"); } Sentence sentence = selectByAddr(aJCas, Sentence.class, lastDisplayWindowBeginingSentenceAddress); setFirstVisibleUnit(sentence); setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, sentence.getBegin())); }
default void moveToLastPage(JCas aJCas) { int lastDisplayWindowBeginingSentenceAddress = WebAnnoCasUtil .getLastDisplayWindowFirstSentenceAddress(aJCas, getPreferences().getWindowSize()); if (lastDisplayWindowBeginingSentenceAddress == getFirstVisibleUnitAddress()) { throw new IllegalStateException("This is last page!"); } Sentence sentence = selectByAddr(aJCas, Sentence.class, lastDisplayWindowBeginingSentenceAddress); setFirstVisibleUnit(sentence); setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, sentence.getBegin())); }
default void moveToNextPage(JCas aJCas) { int nextSentenceAddress = WebAnnoCasUtil.getNextPageFirstSentenceAddress(aJCas, getFirstVisibleUnitAddress(), getPreferences().getWindowSize()); if (getFirstVisibleUnitAddress() == nextSentenceAddress) { throw new IllegalStateException("This is last page!"); } Sentence sentence = selectByAddr(aJCas, Sentence.class, nextSentenceAddress); setFirstVisibleUnit(sentence); setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, sentence.getBegin())); }
model.windowSize = Math.max(prefs.getWindowSize(), 1); model.sidebarSize = prefs.getSidebarSize(); model.fontZoom = prefs.getFontZoom();
default void moveToNextPage(JCas aJCas) { int nextSentenceAddress = WebAnnoCasUtil.getNextPageFirstSentenceAddress(aJCas, getFirstVisibleUnitAddress(), getPreferences().getWindowSize()); if (getFirstVisibleUnitAddress() == nextSentenceAddress) { throw new IllegalStateException("This is last page!"); } Sentence sentence = selectByAddr(aJCas, Sentence.class, nextSentenceAddress); setFirstVisibleUnit(sentence); setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, sentence.getBegin())); }
@Override public void setFirstVisibleUnit(Sentence aFirstVisibleUnit) { JCas jcas; try { jcas = aFirstVisibleUnit.getCAS().getJCas(); } catch (CASException e) { throw new IllegalStateException("Unable to fetch JCas from CAS", e); } firstVisibleUnitAddress = WebAnnoCasUtil.getAddr(aFirstVisibleUnit); firstVisibleUnitBegin = aFirstVisibleUnit.getBegin(); firstVisibleUnitEnd = aFirstVisibleUnit.getEnd(); Sentence lastVisibleUnit = getLastSentenceInDisplayWindow(jcas, getAddr(aFirstVisibleUnit), getPreferences().getWindowSize()); firstVisibleUnitIndex = WebAnnoCasUtil.getSentenceNumber(jcas, aFirstVisibleUnit.getBegin()); lastVisibleUnitIndex = WebAnnoCasUtil.getSentenceNumber(jcas, lastVisibleUnit.getBegin()); unitCount = select(jcas, Sentence.class).size(); windowBeginOffset = aFirstVisibleUnit.getBegin(); windowEndOffset = lastVisibleUnit.getEnd(); }
@Override public void setFirstVisibleUnit(Sentence aFirstVisibleUnit) { JCas jcas; try { jcas = aFirstVisibleUnit.getCAS().getJCas(); } catch (CASException e) { throw new IllegalStateException("Unable to fetch JCas from CAS", e); } firstVisibleUnitAddress = WebAnnoCasUtil.getAddr(aFirstVisibleUnit); firstVisibleUnitBegin = aFirstVisibleUnit.getBegin(); firstVisibleUnitEnd = aFirstVisibleUnit.getEnd(); Sentence lastVisibleUnit = getLastSentenceInDisplayWindow(jcas, getAddr(aFirstVisibleUnit), getPreferences().getWindowSize()); firstVisibleUnitIndex = WebAnnoCasUtil.getSentenceNumber(jcas, aFirstVisibleUnit.getBegin()); lastVisibleUnitIndex = WebAnnoCasUtil.getSentenceNumber(jcas, lastVisibleUnit.getBegin()); unitCount = select(jcas, Sentence.class).size(); windowBeginOffset = aFirstVisibleUnit.getBegin(); windowEndOffset = lastVisibleUnit.getEnd(); }
private void commonUpdate() throws IOException { JCas jCas = curationDocumentService.readCurationCas(state.getDocument()); // Determine the FIRST visible unit final Sentence firstVisibleUnit = selectSentenceAt(jCas, state.getFirstVisibleUnitBegin(), state.getFirstVisibleUnitEnd()); state.setFirstVisibleUnit(firstVisibleUnit); // Determine the LAST visible unit List<Sentence> followingUnits = selectFollowing(jCas, Sentence.class, firstVisibleUnit, state.getPreferences().getWindowSize()); // Check also, when getting the last sentence address in the display window, if this is the // last sentence or the ONLY sentence in the document Sentence lastVisibleUnit = followingUnits.size() == 0 ? firstVisibleUnit : followingUnits.get(followingUnits.size() - 1); curationView.setCurationBegin(firstVisibleUnit.getBegin()); curationView.setCurationEnd(lastVisibleUnit.getEnd()); // Determine the number of the first and last visible unit int ws = state.getPreferences().getWindowSize(); Sentence fs = WebAnnoCasUtil.selectSentenceAt(jCas, state.getFirstVisibleUnitBegin(), state.getFirstVisibleUnitEnd()); Sentence ls = WebAnnoCasUtil.getLastSentenceInDisplayWindow(jCas, getAddr(fs), ws); fSn = WebAnnoCasUtil.getSentenceNumber(jCas, fs.getBegin()); lSn = WebAnnoCasUtil.getSentenceNumber(jCas, ls.getBegin()); }
private void commonUpdate() throws IOException { JCas jCas = curationDocumentService.readCurationCas(state.getDocument()); // Determine the FIRST visible unit final Sentence firstVisibleUnit = selectSentenceAt(jCas, state.getFirstVisibleUnitBegin(), state.getFirstVisibleUnitEnd()); state.setFirstVisibleUnit(firstVisibleUnit); // Determine the LAST visible unit List<Sentence> followingUnits = selectFollowing(jCas, Sentence.class, firstVisibleUnit, state.getPreferences().getWindowSize()); // Check also, when getting the last sentence address in the display window, if this is the // last sentence or the ONLY sentence in the document Sentence lastVisibleUnit = followingUnits.size() == 0 ? firstVisibleUnit : followingUnits.get(followingUnits.size() - 1); curationView.setCurationBegin(firstVisibleUnit.getBegin()); curationView.setCurationEnd(lastVisibleUnit.getEnd()); // Determine the number of the first and last visible unit int ws = state.getPreferences().getWindowSize(); Sentence fs = WebAnnoCasUtil.selectSentenceAt(jCas, state.getFirstVisibleUnitBegin(), state.getFirstVisibleUnitEnd()); Sentence ls = WebAnnoCasUtil.getLastSentenceInDisplayWindow(jCas, getAddr(fs), ws); fSn = WebAnnoCasUtil.getSentenceNumber(jCas, fs.getBegin()); lSn = WebAnnoCasUtil.getSentenceNumber(jCas, ls.getBegin()); }
private void updateCurationView(final CurationContainer curationContainer, final SourceListView curationViewItem, AjaxRequestTarget aTarget, JCas jCas) { Sentence currentSent = WebAnnoCasUtil.getCurrentSentence(jCas, curationViewItem.getBegin(), curationViewItem.getEnd()); state.setFirstVisibleUnit(WebAnnoCasUtil.findWindowStartCenteringOnSelection(jCas, currentSent, curationViewItem.getBegin(), state.getProject(), state.getDocument(), state.getPreferences().getWindowSize())); curationContainer.setBratAnnotatorModel(state); onChange(aTarget); }
default void moveToPreviousPage(JCas aJCas) { int firstSentenceAddress = WebAnnoCasUtil.getFirstSentenceAddress(aJCas); int previousSentenceAddress = WebAnnoCasUtil.getPreviousDisplayWindowSentenceBeginAddress( aJCas, getFirstVisibleUnitAddress(), getPreferences().getWindowSize()); // Since BratAjaxCasUtil.getPreviousDisplayWindowSentenceBeginAddress returns same // address // if there are not much sentences to go back to as defined in windowSize if (previousSentenceAddress == getFirstVisibleUnitAddress() && // Check whether it's not the beginning of document getFirstVisibleUnitAddress() != firstSentenceAddress) { previousSentenceAddress = firstSentenceAddress; } if (getFirstVisibleUnitAddress() == previousSentenceAddress) { throw new IllegalStateException("This is First Page!"); } Sentence sentence = selectByAddr(aJCas, Sentence.class, previousSentenceAddress); setFirstVisibleUnit(sentence); setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, sentence.getBegin())); }
default void moveToPreviousPage(JCas aJCas) { int firstSentenceAddress = WebAnnoCasUtil.getFirstSentenceAddress(aJCas); int previousSentenceAddress = WebAnnoCasUtil.getPreviousDisplayWindowSentenceBeginAddress( aJCas, getFirstVisibleUnitAddress(), getPreferences().getWindowSize()); // Since BratAjaxCasUtil.getPreviousDisplayWindowSentenceBeginAddress returns same // address // if there are not much sentences to go back to as defined in windowSize if (previousSentenceAddress == getFirstVisibleUnitAddress() && // Check whether it's not the beginning of document getFirstVisibleUnitAddress() != firstSentenceAddress) { previousSentenceAddress = firstSentenceAddress; } if (getFirstVisibleUnitAddress() == previousSentenceAddress) { throw new IllegalStateException("This is First Page!"); } Sentence sentence = selectByAddr(aJCas, Sentence.class, previousSentenceAddress); setFirstVisibleUnit(sentence); setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, sentence.getBegin())); }
private void updateCurationView(final CurationContainer curationContainer, final SourceListView curationViewItem, AjaxRequestTarget aTarget, JCas jCas) { Sentence currentSent = WebAnnoCasUtil.getCurrentSentence(jCas, curationViewItem.getBegin(), curationViewItem.getEnd()); state.setFirstVisibleUnit(WebAnnoCasUtil.findWindowStartCenteringOnSelection(jCas, currentSent, curationViewItem.getBegin(), state.getProject(), state.getDocument(), state.getPreferences().getWindowSize())); curationContainer.setBratAnnotatorModel(state); onChange(aTarget); }
default void moveToOffset(JCas aJCas, int aOffset) { // Fetch the first sentence on screen or first sentence Sentence sentence; if (getFirstVisibleUnitAddress() > -1) { sentence = selectByAddr(aJCas, Sentence.class, getFirstVisibleUnitAddress()); } else { sentence = getFirstSentence(aJCas); } // Calculate the first sentence in the window in such a way that the annotation // currently selected is in the center of the window sentence = findWindowStartCenteringOnSelection(aJCas, sentence, aOffset, getProject(), getDocument(), getPreferences().getWindowSize()); // Move to it setFirstVisibleUnit(sentence); // FIXME getSentenceNumber is not a good option... if we aim for the begin offset of the // very last unit, then we get (max-units - 1) instead of (max-units). However, this // method is used also in curation and I dimly remember that things broke when I tried // to fix it. Probably better to move away from it in the long run. -- REC setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, aOffset)); }
default void moveToOffset(JCas aJCas, int aOffset) { // Fetch the first sentence on screen or first sentence Sentence sentence; if (getFirstVisibleUnitAddress() > -1) { sentence = selectByAddr(aJCas, Sentence.class, getFirstVisibleUnitAddress()); } else { sentence = getFirstSentence(aJCas); } // Calculate the first sentence in the window in such a way that the annotation // currently selected is in the center of the window sentence = findWindowStartCenteringOnSelection(aJCas, sentence, aOffset, getProject(), getDocument(), getPreferences().getWindowSize()); // Move to it setFirstVisibleUnit(sentence); // FIXME getSentenceNumber is not a good option... if we aim for the begin offset of the // very last unit, then we get (max-units - 1) instead of (max-units). However, this // method is used also in curation and I dimly remember that things broke when I tried // to fix it. Probably better to move away from it in the long run. -- REC setFocusUnitIndex(WebAnnoCasUtil.getSentenceNumber(aJCas, aOffset)); }
private void createSpan(String spanType, AnnotatorState aBModel, JCas aMergeJCas, AnnotationDocument aAnnotationDocument, int aAddress) throws IOException, UIMAException, ClassNotFoundException, AnnotationException { JCas clickedJCas = getJCas(aBModel, aAnnotationDocument); AnnotationFS fsClicked = selectByAddr(clickedJCas, aAddress); if (isCorefType(fsClicked)) { throw new AnnotationException("Coreference Annotation not supported in curation"); } long layerId = TypeUtil.getLayerId(spanType); AnnotationLayer layer = annotationService.getLayer(layerId); MergeCas.addSpanAnnotation(aBModel, annotationService, layer, aMergeJCas, fsClicked, layer.isAllowStacking()); writeEditorCas(aBModel, aMergeJCas); // update timestamp int sentenceNumber = getSentenceNumber(clickedJCas, fsClicked.getBegin()); aBModel.setFocusUnitIndex(sentenceNumber); aBModel.getDocument().setSentenceAccessed(sentenceNumber); if (aBModel.getPreferences().isScrollPage()) { Sentence sentence = selectSentenceAt(aMergeJCas, aBModel.getFirstVisibleUnitBegin(), aBModel.getFirstVisibleUnitEnd()); sentence = findWindowStartCenteringOnSelection(aMergeJCas, sentence, fsClicked.getBegin(), aBModel.getProject(), aBModel.getDocument(), aBModel.getPreferences().getWindowSize()); aBModel.setFirstVisibleUnit(sentence); } }
private void createSpan(String spanType, AnnotatorState aBModel, JCas aMergeJCas, AnnotationDocument aAnnotationDocument, int aAddress) throws IOException, UIMAException, ClassNotFoundException, AnnotationException { JCas clickedJCas = getJCas(aBModel, aAnnotationDocument); AnnotationFS fsClicked = selectByAddr(clickedJCas, aAddress); if (isCorefType(fsClicked)) { throw new AnnotationException("Coreference Annotation not supported in curation"); } long layerId = TypeUtil.getLayerId(spanType); AnnotationLayer layer = annotationService.getLayer(layerId); MergeCas.addSpanAnnotation(aBModel, annotationService, layer, aMergeJCas, fsClicked, layer.isAllowStacking()); writeEditorCas(aBModel, aMergeJCas); // update timestamp int sentenceNumber = getSentenceNumber(clickedJCas, fsClicked.getBegin()); aBModel.setFocusUnitIndex(sentenceNumber); aBModel.getDocument().setSentenceAccessed(sentenceNumber); if (aBModel.getPreferences().isScrollPage()) { Sentence sentence = selectSentenceAt(aMergeJCas, aBModel.getFirstVisibleUnitBegin(), aBModel.getFirstVisibleUnitEnd()); sentence = findWindowStartCenteringOnSelection(aMergeJCas, sentence, fsClicked.getBegin(), aBModel.getProject(), aBModel.getDocument(), aBModel.getPreferences().getWindowSize()); aBModel.setFirstVisibleUnit(sentence); } }
sentence = findWindowStartCenteringOnSelection(aJcas, sentence, clickedFS.getBegin(), bModel.getProject(), bModel.getDocument(), bModel.getPreferences().getWindowSize()); bModel.setFirstVisibleUnit(sentence);
sentence = findWindowStartCenteringOnSelection(aJcas, sentence, clickedFS.getBegin(), bModel.getProject(), bModel.getDocument(), bModel.getPreferences().getWindowSize()); bModel.setFirstVisibleUnit(sentence);