Ignore:
Timestamp:
01/06/14 08:18:53 (10 years ago)
Author:
twagoo
Message:

Branched off keeloo's wicket-6 conversion branch.
Applied a number of fixes to make code properly compilable, runnable (app still doesn't start properly).
To be merged back with keeloo's work.

Location:
vlo/branches/to-wicket-1.6-twagoo
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • vlo/branches/to-wicket-1.6-twagoo/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/FacetedSearchPage.java

    r4208 r4212  
    1010import fiftyfive.wicket.basic.TruncatedLabel;
    1111import java.io.UnsupportedEncodingException;
     12import java.net.URL;
    1213import java.net.URLEncoder;
    1314import java.util.ArrayList;
     
    2122import org.apache.solr.common.SolrDocument;
    2223import org.apache.wicket.request.mapper.parameter.PageParameters;
    23 import org.apache.wicket.RequestCycle;
    2424import org.apache.wicket.extensions.ajax.markup.html.autocomplete.AutoCompleteTextField;
    2525import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
     
    4242import org.apache.wicket.model.ResourceModel;
    4343import org.apache.wicket.protocol.http.RequestUtils;
     44import org.apache.wicket.request.Url;
     45import org.apache.wicket.request.cycle.RequestCycle;
    4446
    4547public class FacetedSearchPage extends BasePage {
     48
    4649    private static final long serialVersionUID = 1L;
    4750
     
    5053    private final static String facetConceptsFile = VloConfig.getFacetConceptsFile();
    5154    private final static Map<String, FacetConcept> facetNameMap = VLOMarshaller.getFacetConceptMapping(facetConceptsFile).getFacetConceptMap();
    52    
     55
     56    public FacetedSearchPage() {
     57        this(new VloPageParameters());
     58    }
     59
    5360    /**
    5461     * @param parameters Page parameters
     
    6673    @SuppressWarnings("serial")
    6774    private class SearchBoxForm extends Form<SearchPageQuery> {
     75
    6876        private final AutoCompleteTextField<String> searchBox;
    69        
     77
    7078        /*
    7179         * Add multiline list of selected facet values
     
    7886
    7987            // create an interator for walking over the facets
    80             Iterator<Map.Entry<String, String>> entries =
    81                     selectedFacets.entrySet().iterator();
     88            Iterator<Map.Entry<String, String>> entries
     89                    = selectedFacets.entrySet().iterator();
    8290
    8391            /*
     
    9098            if (!entries.hasNext()) {
    9199                // not a single facet has been selected
    92                 facetOverview = new MultiLineLabel("facetOverview", 
     100                facetOverview = new MultiLineLabel("facetOverview",
    93101                        "No facets values selected");
    94102            } else {
     
    152160                }
    153161            };
    154            
     162
    155163            add(searchBox);
    156164            Button submit = new Button("searchSubmit");
    157165            add(submit);
    158            
     166
    159167            // merge link to help menu page
    160             String helpUrl = VloConfig.getHelpUrl();           
     168            String helpUrl = VloConfig.getHelpUrl();
    161169            ExternalLink helpLink = new ExternalLink("helpLink", helpUrl, "help");
    162170            add(helpLink);
    163            
    164             VloPageParameters param;
    165             param = new VloPageParameters (query.getPageParameters());
    166            
    167             String thisURL;
    168             thisURL = RequestUtils.toAbsolutePath(
    169                     RequestCycle.get().urlFor(ShowResultPage.class, param.convert()).toString(), null);
     171
     172            VloPageParameters param;
     173            param = new VloPageParameters(query.getPageParameters());
     174
     175            final RequestCycle reqCycle = getRequestCycle();
     176            final Url reqUrl = Url.parse(reqCycle.urlFor(ShowResultPage.class, param.convert()));
     177            String thisURL = reqCycle.getUrlRenderer().renderFullUrl(reqUrl);
     178
    170179            try {
    171180                thisURL = URLEncoder.encode(thisURL, "UTF-8");
    172181            } catch (UnsupportedEncodingException e) {
    173182            }
    174            
     183
    175184            String feedbackFormUrl = VloConfig.getFeedbackFromUrl() + thisURL;
    176185            ExternalLink feedbackLink = new ExternalLink("feedbackLink", feedbackFormUrl, "found an error?");
    177186            add(feedbackLink);
    178            
     187
    179188            addFacetOverview();
    180189        }
     
    186195
    187196            VloPageParameters newParam = new VloPageParameters();
    188            
     197
    189198            setResponsePage(FacetedSearchPage.class, newParam);
    190199        }
     
    194203        add(new SearchBoxForm("searchForm", query));
    195204    }
    196    
     205
    197206    @SuppressWarnings("serial")
    198207    private void addFacetColumns() {
    199208        GridView<FacetField> facetColumns = new GridView<FacetField>("facetColumns", (IDataProvider<FacetField>) new SolrFacetDataProvider(query.getSolrQuery()
    200209                .getCopy())) {
    201             @Override
    202             protected void populateItem(Item<FacetField> item) {
    203                 String facetName = ((FacetField)item.getDefaultModelObject()).getName();
    204                 String descriptionTooltip = "";
    205                 if(facetNameMap.containsKey(facetName))
    206                         descriptionTooltip = facetNameMap.get(facetName).getDescription();
    207                 item.add(new FacetBoxPanel("facetBox", item.getModel(), descriptionTooltip).create(query));
    208             }
    209 
    210             @Override
    211             protected void populateEmptyItem(Item<FacetField> item) {
    212                 item.add(new Label("facetBox", ""));
    213             }
    214         };
     210                    @Override
     211                    protected void populateItem(Item<FacetField> item) {
     212                        String facetName = ((FacetField) item.getDefaultModelObject()).getName();
     213                        String descriptionTooltip = "";
     214                        if (facetNameMap.containsKey(facetName)) {
     215                            descriptionTooltip = facetNameMap.get(facetName).getDescription();
     216                        }
     217                        item.add(new FacetBoxPanel("facetBox", item.getModel(), descriptionTooltip).create(query));
     218                    }
     219
     220                    @Override
     221                    protected void populateEmptyItem(Item<FacetField> item) {
     222                        item.add(new Label("facetBox", ""));
     223                    }
     224                };
    215225        facetColumns.setColumns(2);
    216226        add(facetColumns);
     
    222232        columns = new ArrayList<IColumn<SolrDocument, String>>();
    223233        columns.add(new AbstractColumn<SolrDocument, String>(new ResourceModel(Resources.NAME)) {
    224            
     234
    225235            @Override
    226236            public void populateItem(Item<ICellPopulator<SolrDocument>> cellItem, String componentId, IModel<SolrDocument> rowModel) {
     
    232242            @Override
    233243            public void populateItem(Item<ICellPopulator<SolrDocument>> cellItem, String componentId, IModel<SolrDocument> rowModel) {
    234                 String descriptionText = (String) rowModel.getObject().getFirstValue(FacetConstants.FIELD_DESCRIPTION);
     244                String descriptionText = (String) rowModel.getObject().getFirstValue(FacetConstants.FIELD_DESCRIPTION);
    235245                cellItem.add(new TruncatedLabel(componentId, 100, descriptionText));
    236                
    237246            }
    238247        });
     
    241250        add(searchResultList);
    242251    }
    243    
     252
    244253    /**
    245254     * Add contentSearch form (FCS)
     
    248257     */
    249258    private void addSearchServiceForm() {
    250        
     259
    251260        BookmarkablePageLink link;
    252         link = new BookmarkablePageLink ("link", FacetedSearchPage.class);
    253         link.add (new Label ("naar deze pagina"));
    254        
     261        link = new BookmarkablePageLink("link", FacetedSearchPage.class);
     262        link.add(new Label("naar deze pagina"));
     263
    255264        // get values for cql endpoint substitution
    256265        String cqlEndpointFilter = VloConfig.getCqlEndpointFilter();
     
    281290                            List<String> idArray = new ArrayList<String>();
    282291                            idArray.add(id);
    283                            
     292
    284293                            // substitute endpoint
    285                             if (cqlEndpointFilter.length() == 0){
     294                            if (cqlEndpointFilter.length() == 0) {
    286295                                // no substitution
    287296                            } else {
    288297                                // check for the need to substitute
    289298                            }
    290                                
    291                             if (cqlEndpointFilter.equals(cqlEndpointFilter)){
     299
     300                            if (cqlEndpointFilter.equals(cqlEndpointFilter)) {
    292301                                // no substitution, take the value from the record
    293302                                aggregationContextMap.put(fcsEndpoint, idArray);
Note: See TracChangeset for help on using the changeset viewer.