Search in sources :

Example 1 with IFrameResourceMap

use of annis.libgui.visualizers.IFrameResourceMap in project ANNIS by korpling.

the class ResourceRequestHandler method handleRequest.

@Override
public boolean handleRequest(VaadinSession session, VaadinRequest request, VaadinResponse response) throws IOException {
    if (request.getPathInfo() != null && request.getPathInfo().startsWith(prefix)) {
        String uuidString = StringUtils.removeStart(request.getPathInfo(), prefix);
        UUID uuid = UUID.fromString(uuidString);
        IFrameResourceMap map = VaadinSession.getCurrent().getAttribute(IFrameResourceMap.class);
        if (map == null) {
            response.setStatus(404);
        } else {
            IFrameResource res = map.get(uuid);
            if (res != null) {
                response.setStatus(200);
                response.setContentType(res.getMimeType());
                response.getOutputStream().write(res.getData());
            }
        }
        return true;
    }
    return false;
}
Also used : IFrameResource(annis.libgui.visualizers.IFrameResource) IFrameResourceMap(annis.libgui.visualizers.IFrameResourceMap) UUID(java.util.UUID)

Example 2 with IFrameResourceMap

use of annis.libgui.visualizers.IFrameResourceMap in project ANNIS by korpling.

the class QueryController method executeSearch.

/**
 * Executes a query.
 * @param replaceOldTab
 * @param freshQuery If true the offset and the selected matches are reset before executing the query.
 */
public void executeSearch(boolean replaceOldTab, boolean freshQuery) {
    if (freshQuery) {
        getState().getOffset().setValue(0l);
        getState().getSelectedMatches().setValue(new TreeSet<Long>());
        // get the value for the visible segmentation from the configured context
        Set<String> selectedCorpora = getState().getSelectedCorpora().getValue();
        CorpusConfig config = new CorpusConfig();
        if (selectedCorpora != null && !selectedCorpora.isEmpty()) {
            config = ui.getCorpusConfigWithCache(selectedCorpora.iterator().next());
        }
        if (config.containsKey(SearchOptionsPanel.KEY_DEFAULT_BASE_TEXT_SEGMENTATION)) {
            String configVal = config.getConfig(SearchOptionsPanel.KEY_DEFAULT_BASE_TEXT_SEGMENTATION);
            if ("".equals(configVal) || "tok".equals(configVal)) {
                configVal = null;
            }
            getState().getVisibleBaseText().setValue(configVal);
        } else {
            getState().getVisibleBaseText().setValue(getState().getContextSegmentation().getValue());
        }
    }
    // construct a query from the current properties
    DisplayedResultQuery displayedQuery = getSearchQuery();
    searchView.getControlPanel().getQueryPanel().setStatus("Searching...");
    cancelSearch();
    // cleanup resources
    VaadinSession session = VaadinSession.getCurrent();
    session.setAttribute(IFrameResourceMap.class, new IFrameResourceMap());
    if (session.getAttribute(MediaController.class) != null) {
        session.getAttribute(MediaController.class).clearMediaPlayers();
    }
    searchView.updateFragment(displayedQuery);
    if (displayedQuery.getCorpora() == null || displayedQuery.getCorpora().isEmpty()) {
        Notification.show("Please select a corpus", Notification.Type.WARNING_MESSAGE);
        return;
    }
    if ("".equals(displayedQuery.getQuery())) {
        Notification.show("Empty query", Notification.Type.WARNING_MESSAGE);
        return;
    }
    addHistoryEntry(displayedQuery);
    AsyncWebResource res = Helper.getAnnisAsyncWebResource();
    // 
    // begin execute match fetching
    // 
    ResultViewPanel oldPanel = searchView.getLastSelectedResultView();
    if (replaceOldTab) {
        // remove old panel from view
        searchView.closeTab(oldPanel);
    }
    ResultViewPanel newResultView = new ResultViewPanel(ui, ui, ui.getInstanceConfig(), displayedQuery);
    newResultView.getPaging().addCallback(new SpecificPagingCallback(ui, searchView, newResultView, displayedQuery));
    TabSheet.Tab newTab;
    List<ResultViewPanel> existingResultPanels = getResultPanels();
    String caption = existingResultPanels.isEmpty() ? "Query Result" : "Query Result #" + (existingResultPanels.size() + 1);
    newTab = searchView.getMainTab().addTab(newResultView, caption);
    newTab.setClosable(true);
    newTab.setIcon(FontAwesome.SEARCH);
    searchView.getMainTab().setSelectedTab(newResultView);
    searchView.notifiyQueryStarted();
    Background.run(new ResultFetchJob(displayedQuery, newResultView, ui));
    // 
    // end execute match fetching
    // 
    // 
    // begin execute count
    // 
    // start count query
    searchView.getControlPanel().getQueryPanel().setCountIndicatorEnabled(true);
    AsyncWebResource countRes = res.path("query").path("search").path("count").queryParam("q", Helper.encodeJersey(displayedQuery.getQuery())).queryParam("corpora", Helper.encodeJersey(StringUtils.join(displayedQuery.getCorpora(), ",")));
    Future<MatchAndDocumentCount> futureCount = countRes.get(MatchAndDocumentCount.class);
    state.getExecutedTasks().put(QueryUIState.QueryType.COUNT, futureCount);
    Background.run(new CountCallback(newResultView, displayedQuery.getLimit(), ui));
// 
// end execute count
// 
}
Also used : MediaController(annis.libgui.media.MediaController) VaadinSession(com.vaadin.server.VaadinSession) ResultViewPanel(annis.gui.resultview.ResultViewPanel) SingleResultFetchJob(annis.gui.resultfetch.SingleResultFetchJob) ResultFetchJob(annis.gui.resultfetch.ResultFetchJob) CountCallback(annis.gui.controller.CountCallback) CorpusConfig(annis.service.objects.CorpusConfig) TabSheet(com.vaadin.ui.TabSheet) IFrameResourceMap(annis.libgui.visualizers.IFrameResourceMap) DisplayedResultQuery(annis.gui.objects.DisplayedResultQuery) SpecificPagingCallback(annis.gui.controller.SpecificPagingCallback) MatchAndDocumentCount(annis.service.objects.MatchAndDocumentCount) AsyncWebResource(com.sun.jersey.api.client.AsyncWebResource)

Aggregations

IFrameResourceMap (annis.libgui.visualizers.IFrameResourceMap)2 CountCallback (annis.gui.controller.CountCallback)1 SpecificPagingCallback (annis.gui.controller.SpecificPagingCallback)1 DisplayedResultQuery (annis.gui.objects.DisplayedResultQuery)1 ResultFetchJob (annis.gui.resultfetch.ResultFetchJob)1 SingleResultFetchJob (annis.gui.resultfetch.SingleResultFetchJob)1 ResultViewPanel (annis.gui.resultview.ResultViewPanel)1 MediaController (annis.libgui.media.MediaController)1 IFrameResource (annis.libgui.visualizers.IFrameResource)1 CorpusConfig (annis.service.objects.CorpusConfig)1 MatchAndDocumentCount (annis.service.objects.MatchAndDocumentCount)1 AsyncWebResource (com.sun.jersey.api.client.AsyncWebResource)1 VaadinSession (com.vaadin.server.VaadinSession)1 TabSheet (com.vaadin.ui.TabSheet)1 UUID (java.util.UUID)1