Ignore:
Timestamp:
03/26/13 14:04:11 (11 years ago)
Author:
yana
Message:

fixed no-scroll-in-search-results panel bug;
added testing mode to test endpoints on development servers;
added fist functionality for the show-case: save TCF into Personal Workspace using sardine library;
added: in scan operation the resource handle is put in quotes to avoid parse error.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java

    r2694 r2738  
    4646import eu.clarin.weblicht.wlfxb.xb.WLData;
    4747import javax.ws.rs.core.MediaType;
     48import org.zkoss.zul.Popup;
    4849
    4950/**
    5051 * Main window of the Aggregator application.
    51  * 
     52 *
    5253 * @author Yana Panchenko
    5354 */
     
    5556
    5657    private static final Logger logger = Logger.getLogger(Aggregator.class.getName());
    57    
    5858//    @Wire
    5959//    private Grid anzeigeGrid;
     
    8888    @Wire
    8989    private Label searchResultsProgress;
    90 
     90    @Wire
     91    private Popup wspaceSigninpop;
     92    @Wire
     93    private Textbox wspaceUserName;
     94    @Wire
     95    private Textbox wspaceUserPwd;
    9196    private WebResource mapGenerator;
    9297    public static final String MAPS_SERVICE_URL = "http://weblicht.sfs.uni-tuebingen.de/rws/service-geolocationconsumer/resources/geoloc/";
    93    
    9498    private Map<String, List<String>> xAggregationContext;
    9599    private SRUVersion version = SRUVersion.VERSION_1_2;
    96100    private SearchResultsController searchResultsController;
    97101    private CenterRegistry registry;
     102    private boolean testingMode = false;
    98103
    99104    @Override
    100105    public void doAfterCompose(Component comp) throws Exception {
    101        
     106
    102107        super.doAfterCompose(comp);
    103108
     
    105110
    106111        languageSelect.setSelectedItem(anyLanguage);
    107        
     112
    108113        searchResultsController = new SearchResultsController(resultsBox, searchResultsProgress);
    109114        // assign the search controller to desktop, so that it can be accessed to be shutdown when the desktop is destroyed
     
    112117        Set<SearchResultsController> activeControllers = (Set<SearchResultsController>) Executions.getCurrent().getDesktop().getWebApp().getAttribute(WebAppListener.ACTIVE_SEARCH_CONTROLLERS);
    113118        activeControllers.add(searchResultsController);
    114        
     119
    115120        registry = new CenterRegistry();
    116         registry.loadChildren();
     121        registry.loadChildren(testingMode);
    117122        CorpusTreeModel corporaModel = new CorpusTreeModel(registry);
    118123        tree.setModel(corporaModel);
    119124        tree.setItemRenderer(new CorpusTreeNodeRenderer());
    120125        tree.setMultiple(true);
    121        
    122        
     126
     127
    123128        //tempMap();
    124129
     
    127132    @Listen("onSelect = #languageSelect")
    128133    public void onSelectLanguage(Event ev) {
    129        //TODO
    130     }
    131    
    132    
     134        //TODO
     135    }
     136
    133137    @Listen(ZulEvents.ON_AFTER_RENDER + "=#tree")
    134138    public void onAfterRenderCorporaTree(Event ev) {
     
    157161        searchResultsController.executeSearch(tree.getSelectedItems(), maxRecords, searchString.getText(), version);
    158162    }
    159    
     163
    160164    @Listen("onOK = #searchString")
    161165    public void onEnterSearchString(Event ev) {
    162166        onExecuteSearch(ev);
    163167    }
    164  
     168
    165169    @Listen("onClick=#clearResults")
    166170    public void onClearResults(Event ev) {
     
    193197        searchResultsController.exportTCF();
    194198    }
     199
     200    @Listen("onClick=#exportResultsPWTCF")
     201    public void onExportResultsPWTCF(Event ev) {
     202        wspaceSigninpop.open(resultsBox, "top_center");
     203    }
     204
     205    @Listen("onClick=#wspaceSigninBtn")
     206    public void onSignInExportResultsPWTCF(Event ev) {
     207        String user = wspaceUserName.getValue();
     208        String pswd = wspaceUserPwd.getValue();
     209        if (user.isEmpty() || pswd.isEmpty()) {
     210            Messagebox.show("Need user name and password!");
     211        } else {
     212            wspaceUserPwd.setValue("");
     213            wspaceSigninpop.close();
     214            searchResultsController.exportPWTCF(user, pswd);
     215        }
     216    }
    195217   
     218    @Listen("onOK=#wspaceUserPwd")
     219    public void onSignInExportResultsPWTCFPwdOK(Event ev) {
     220        onSignInExportResultsPWTCF(ev);
     221    }
     222   
     223    @Listen("onClick=#wspaceCancelBtn")
     224    public void onSignInPWCancel(Event ev) {
     225        wspaceUserPwd.setValue("");
     226        wspaceSigninpop.close();
     227    }
     228
     229
    196230    @Listen("onClick=#addForeignEndpoint")
    197231    public void onAddForeignEndpoint(Event ev) {
    198             registry.addForeignPoint(foreignEndpointSelect.getValue().split(";")[1], foreignEndpointSelect.getValue().split(";")[0]);
     232        registry.addForeignPoint(foreignEndpointSelect.getValue().split(";")[1], foreignEndpointSelect.getValue().split(";")[0]);
    199233    }
    200234
    201235    private void processParameters() {
    202        
     236
    203237        String[] paramValue;
    204238        String contextJson = null;
     
    236270            paramsReceived[3] = contextJson;
    237271        }
    238         logger.log(Level.INFO, "Received parameters: query[{0}], operation[{1}], version[{2}], x-aggregation-context[{3}], ",  paramsReceived);
    239        
    240        
     272        logger.log(Level.INFO, "Received parameters: query[{0}], operation[{1}], version[{2}], x-aggregation-context[{3}], ", paramsReceived);
     273
     274        paramValue = Executions.getCurrent().getParameterMap().get("mode");
     275        if (paramValue != null) {
     276            String mode = paramValue[0].trim();
     277            if (mode.equals("testing")) {
     278                testingMode = true;
     279            }
     280        }
    241281
    242282        if (contextJson != null) {
     
    245285            }.getType();
    246286            try {
    247             this.xAggregationContext = gson.fromJson(contextJson, mapType);
     287                this.xAggregationContext = gson.fromJson(contextJson, mapType);
    248288            } catch (Exception ex) {
    249289                logger.log(Level.SEVERE, "Error parsing JSON from x-aggregation-context: {0} {1}", new String[]{ex.getMessage(), contextJson});
     
    260300        TextCorpusStored tc = new TextCorpusStored("en");
    261301        Token t1 = tc.createTokensLayer().addToken("Virginia");
    262         List<Token> s1 = new ArrayList<Token>(); s1.add(t1);
     302        List<Token> s1 = new ArrayList<Token>();
     303        s1.add(t1);
    263304        tc.createSentencesLayer().addSentence(s1);
    264305        tc.createGeoLayer("unknown", GeoLongLatFormat.DegDec);
    265306        //tc.getGeoLayer().addPoint("138.56027", "-34.6663", 15.0, null, null, null, t1);
    266307        WLData data = new WLData(tc);
    267        
     308
    268309        Iframe resultsPic = (Iframe) resultsBox.getFellow("resultsPic");
    269        
     310
    270311        try {
    271                     String output = mapGenerator.path("3").accept(MediaType.TEXT_HTML).type("text/tcf+xml").post(String.class, data);
    272                     Media media = new AMedia("map-" + 4 + ".html", null, "text/html", output);
    273                     resultsPic.setContent(media);
    274                 } catch (Exception e) {
    275                     Logger.getLogger(Aggregator.class.getName()).log(Level.SEVERE, "ERROR accessing the maps generator service", e);
    276                     Messagebox.show("ERROR accessing the maps generator service \n" + e.getMessage(), "FCS", 0, Messagebox.INFORMATION);
    277                 }
     312            String output = mapGenerator.path("3").accept(MediaType.TEXT_HTML).type("text/tcf+xml").post(String.class, data);
     313            Media media = new AMedia("map-" + 4 + ".html", null, "text/html", output);
     314            resultsPic.setContent(media);
     315        } catch (Exception e) {
     316            Logger.getLogger(Aggregator.class.getName()).log(Level.SEVERE, "ERROR accessing the maps generator service", e);
     317            Messagebox.show("ERROR accessing the maps generator service \n" + e.getMessage(), "FCS", 0, Messagebox.INFORMATION);
     318        }
    278319    }
    279320}
Note: See TracChangeset for help on using the changeset viewer.