model.windowSize = Math.max(prefs.getWindowSize(), 1); model.sidebarSize = prefs.getSidebarSize(); model.fontZoom = prefs.getFontZoom(); model.scrollPage = prefs.isScrollPage(); model.colorPerLayer = prefs.getColorPerLayer(); model.readonlyLayerColoringBehaviour = prefs.getReadonlyLayerColoringBehaviour(); model.rememberLayer = prefs.isRememberLayer(); .getEditorFactory(state.getPreferences().getEditor()); if (editorFactory == null) { editorFactory = annotationEditorRegistry.getDefaultEditorFactory();
private void actionSave(AjaxRequestTarget aTarget, Form<Preferences> aForm) { String username = userDao.getCurrentUser().getUsername(); try { AnnotatorState state = stateModel.getObject(); Preferences model = form.getModelObject(); AnnotationPreference prefs = state.getPreferences(); prefs.setScrollPage(model.scrollPage); prefs.setRememberLayer(model.rememberLayer); prefs.setWindowSize(model.windowSize); prefs.setSidebarSize(model.sidebarSize); prefs.setFontZoom(model.fontZoom); prefs.setColorPerLayer(model.colorPerLayer); prefs.setReadonlyLayerColoringBehaviour(model.readonlyLayerColoringBehaviour); prefs.setEditor(model.editor.getKey()); state.setAnnotationLayers(model.annotationLayers.stream() .filter(l -> !prefs.getHiddenAnnotationLayerIds().contains(l.getId())) .collect(Collectors.toList())); PreferencesUtil.savePreference(userPreferencesService, state, username); } catch (IOException e) { error("Preference file not found"); } modalWindow.close(aTarget); }
public static ColoringStrategy getStrategy(AnnotationSchemaService aService, AnnotationLayer aLayer, AnnotationPreference aPreferences, Map<String[], Queue<String>> aColorQueues) { ColoringStrategyType t = aPreferences.getColorPerLayer().get(aLayer.getId()); ReadonlyColoringBehaviour rt = aPreferences.getReadonlyLayerColoringBehaviour(); if (aLayer.isReadonly() && rt != ReadonlyColoringBehaviour.NORMAL) { t = rt.t; } if (t == null || t == ColoringStrategyType.LEGACY) { t = getBestInitialStrategy(aService, aLayer, aPreferences); } return getStrategy(aService, aLayer, t, aColorQueues); }
private AnnotationPreference loadLegacyPreferences(Project aProject, String aUsername, Mode aMode) AnnotationPreference preference = new AnnotationPreference(); preference.setHiddenAnnotationLayerIds(new HashSet<>()); preference.setWindowSize(defaultPreferences.getPageSize()); preference.setScrollPage(defaultPreferences.isAutoScroll()); preference.setRememberLayer(defaultPreferences.isRememberLayer()); Map<Long, ColoringStrategyType> colorPerLayer = preference.getColorPerLayer(); if (colorPerLayer == null) { colorPerLayer = new HashMap<>(); preference.setColorPerLayer(colorPerLayer);
private SidebarPanel createLeftSidebar() { SidebarPanel leftSidebar = new SidebarPanel("leftSidebar", getModel(), detailEditor, () -> getEditorCas(), AnnotationPage.this); // Override sidebar width from preferences leftSidebar.add(new AttributeModifier("style", LambdaModel.of(() -> String .format("flex-basis: %d%%;", getModelObject().getPreferences().getSidebarSize())))); return leftSidebar; }
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())); }
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 internalCompleteAnnotation(AjaxRequestTarget aTarget, JCas aJCas) { AnnotatorState state = getModelObject(); // Perform auto-scroll if it is enabled if (state.getPreferences().isScrollPage()) { autoScroll(aJCas, false); } annotationFeatureForm.getForwardAnnotationText().setModelObject(null); LOG.trace("onChange()"); onChange(aTarget); // If we created a new annotation, then refresh the available annotation layers in the // detail panel. if (state.getSelection().getAnnotation().isNotSet()) { refresh(state); } }
state.getPreferences().setWindowSize(10); state.setFirstVisibleUnit(WebAnnoCasUtil.getFirstSentence(jCas));
aResponse.setFontZoom(aState.getPreferences().getFontZoom());
private AnnotationPreference loadLegacyPreferences(Project aProject, String aUsername, Mode aMode) AnnotationPreference preference = new AnnotationPreference(); preference.setHiddenAnnotationLayerIds(new HashSet<>()); preference.setWindowSize(defaultPreferences.getPageSize()); preference.setScrollPage(defaultPreferences.isAutoScroll()); preference.setRememberLayer(defaultPreferences.isRememberLayer()); Map<Long, ColoringStrategyType> colorPerLayer = preference.getColorPerLayer(); if (colorPerLayer == null) { colorPerLayer = new HashMap<>(); preference.setColorPerLayer(colorPerLayer);
/** * for the first time, open the <b>open document dialog</b> */ @Override public void renderHead(IHeaderResponse aResponse) { super.renderHead(aResponse); if (!initialLoadCompleted) { aResponse.render(OnLoadHeaderItem .forScript("jQuery('#initialLoadComplete').trigger('click');")); initialLoadCompleted = true; } aResponse.render(CssContentHeaderItem.forCSS( String.format(Locale.US, ".sidebarCell { flex-basis: %d%%; }", getModelObject().getPreferences().getSidebarSize()), "sidebar-width")); }
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())); }
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); } }
public static ColoringStrategy getStrategy(AnnotationSchemaService aService, AnnotationLayer aLayer, AnnotationPreference aPreferences, Map<String[], Queue<String>> aColorQueues) { ColoringStrategyType t = aPreferences.getColorPerLayer().get(aLayer.getId()); ReadonlyColoringBehaviour rt = aPreferences.getReadonlyLayerColoringBehaviour(); if (aLayer.isReadonly() && rt != ReadonlyColoringBehaviour.NORMAL) { t = rt.t; } if (t == null || t == ColoringStrategyType.LEGACY) { t = getBestInitialStrategy(aService, aLayer, aPreferences); } return getStrategy(aService, aLayer, t, aColorQueues); }
if (state.getPreferences().isScrollPage()) { autoScroll(jCas, false);
aResponse.setFontZoom(aState.getPreferences().getFontZoom());
private WebMarkupContainer createRightSidebar() { WebMarkupContainer rightSidebar = new WebMarkupContainer("rightSidebar"); rightSidebar.setOutputMarkupId(true); // Override sidebar width from preferences rightSidebar.add(new AttributeModifier("style", LambdaModel.of(() -> String .format("flex-basis: %d%%;", getModelObject().getPreferences().getSidebarSize())))); detailEditor = createDetailEditor(); rightSidebar.add(detailEditor); return rightSidebar; }
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())); }
if (bModel.getPreferences().isScrollPage()) { Sentence sentence = selectSentenceAt(aJcas, bModel.getFirstVisibleUnitBegin(), bModel.getFirstVisibleUnitEnd()); sentence = findWindowStartCenteringOnSelection(aJcas, sentence, clickedFS.getBegin(), bModel.getProject(), bModel.getDocument(), bModel.getPreferences().getWindowSize()); bModel.setFirstVisibleUnit(sentence);