source: vlo/trunk/vlo_webapp/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.java @ 770

Last change on this file since 770 was 770, checked in by patdui, 14 years ago
  • made some things configurable
  • added "more..." page
  • Made all links bookmarkable
File size: 3.2 KB
Line 
1package eu.clarin.cmdi.vlo.pages;
2
3import org.apache.wicket.PageParameters;
4import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
5import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
6import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
7import org.apache.wicket.extensions.markup.html.repeater.data.table.HeadersToolbar;
8import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
9import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
10import org.apache.wicket.markup.ComponentTag;
11import org.apache.wicket.markup.MarkupStream;
12import org.apache.wicket.markup.html.basic.MultiLineLabel;
13import org.apache.wicket.markup.html.link.BookmarkablePageLink;
14import org.apache.wicket.markup.html.link.ExternalLink;
15import org.apache.wicket.markup.repeater.Item;
16import org.apache.wicket.model.IModel;
17import org.apache.wicket.model.Model;
18
19import eu.clarin.cmdi.vlo.Configuration;
20import eu.clarin.cmdi.vlo.StringUtils;
21
22public class ShowResultPage extends BasePage {
23
24    public static final String PARAM_DOC_ID = "docId";
25
26    public ShowResultPage(final PageParameters parameters) {
27        super(parameters);
28        String docId = getPageParameters().getString(PARAM_DOC_ID, null);
29        SearchPageQuery query = new SearchPageQuery(parameters);
30        BookmarkablePageLink backLink = new BookmarkablePageLink("backLink", FacetedSearchPage.class, query.getPageParameters());
31        add(backLink);
32        String handle = docId.substring("test-".length());
33        add(new ExternalLink("openBrowserLink", Configuration.getInstance().getIMDIBrowserUrl(handle)));
34        addAttributesTable(docId);
35    }
36
37    private void addAttributesTable(final String docId) {
38        DataTable table = new DataTable("attributesTable", createAttributesColumns(), new DocumentAttributesDataProvider(docId), 25);
39        table.setTableBodyCss("attributesTbody");
40        table.addTopToolbar(new HeadersToolbar(table, null));
41        add(table);
42    }
43
44    @SuppressWarnings("serial")
45    private IColumn[] createAttributesColumns() {
46        IColumn[] columns = new IColumn[2];
47
48        columns[0] = new PropertyColumn(new Model<String>("Attribute"), "field") {
49            @Override
50            public String getCssClass() {
51                return "attribute";
52            }
53
54        };
55        columns[1] = new AbstractColumn<DocumentAttribute>(new Model<String>("")) {
56
57            @Override
58            public void populateItem(Item<ICellPopulator<DocumentAttribute>> cellItem, String componentId,
59                    IModel<DocumentAttribute> rowModel) {
60                DocumentAttribute attribute = rowModel.getObject();
61                cellItem.add(new MultiLineLabel(componentId, attribute.getValue()) {
62                    @Override
63                    protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) {
64                        CharSequence body = StringUtils.toMultiLineHtml(getDefaultModelObjectAsString());
65                        replaceComponentTagBody(markupStream, openTag, body);
66                    }
67                });
68            }
69
70        };
71        return columns;
72    }
73
74}
Note: See TracBrowser for help on using the repository browser.