Ignore:
Timestamp:
06/30/15 15:04:50 (9 years ago)
Author:
Twan Goosen
Message:

display of hierarchy in the record page

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/HierarchyPanel.java

    r6329 r6330  
    2020import com.google.common.collect.Iterators;
    2121import eu.clarin.cmdi.vlo.FacetConstants;
    22 import eu.clarin.cmdi.vlo.service.PageParametersConverter;
    2322import eu.clarin.cmdi.vlo.service.solr.SolrDocumentService;
    2423import eu.clarin.cmdi.vlo.wicket.components.NamedRecordPageLink;
    25 import eu.clarin.cmdi.vlo.wicket.components.RecordPageLink;
    26 import eu.clarin.cmdi.vlo.wicket.components.SolrFieldLabel;
    2724import eu.clarin.cmdi.vlo.wicket.model.SolrDocumentModel;
    2825import eu.clarin.cmdi.vlo.wicket.model.SolrFieldStringModel;
    29 import eu.clarin.cmdi.vlo.wicket.pages.RecordPage;
    3026import java.util.Collection;
    3127import java.util.Iterator;
    3228import org.apache.solr.common.SolrDocument;
     29import org.apache.wicket.AttributeModifier;
    3330import org.apache.wicket.Component;
    3431import org.apache.wicket.MarkupContainer;
     32import org.apache.wicket.behavior.AttributeAppender;
    3533import org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree;
    3634import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
    3735import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
    38 import org.apache.wicket.extensions.markup.html.repeater.tree.NestedTree;
    3936import org.apache.wicket.extensions.markup.html.repeater.util.SortableTreeProvider;
    4037import org.apache.wicket.markup.html.WebMarkupContainer;
    41 import org.apache.wicket.markup.html.basic.Label;
    42 import org.apache.wicket.markup.html.link.Link;
    43 import org.apache.wicket.markup.html.panel.Fragment;
    4438import org.apache.wicket.markup.html.panel.GenericPanel;
     39import org.apache.wicket.model.AbstractReadOnlyModel;
    4540import org.apache.wicket.model.IModel;
    46 import org.apache.wicket.model.StringResourceModel;
    4741import org.apache.wicket.spring.injection.annot.SpringBean;
    4842
     
    5650    private SolrDocumentService documentService;
    5751
    58     @SpringBean(name = "documentParamsConverter")
    59     private PageParametersConverter<SolrDocument> documentParamConverter;
     52    private final SolrDocumentModel parentModel;
    6053
    6154    public HierarchyPanel(String id, IModel<SolrDocument> documentModel) {
    6255        super(id, documentModel);
     56
     57        final SolrFieldStringModel parentIdModel = new SolrFieldStringModel(getModel(), FacetConstants.FIELD_IS_PART_OF);
     58        parentModel = new SolrDocumentModel(parentIdModel);
    6359
    6460        add(createParentLink("parent"));
     
    6763
    6864    private MarkupContainer createParentLink(String id) {
    69         final SolrFieldStringModel parentIdModel = new SolrFieldStringModel(getModel(), FacetConstants.FIELD_IS_PART_OF);
    70         final SolrDocumentModel parentModel = new SolrDocumentModel(parentIdModel);
     65        final MarkupContainer parent = new WebMarkupContainer(id) {
    7166
    72         final MarkupContainer parent = new WebMarkupContainer(id){
    73            
    7467            @Override
    7568            protected void onConfigure() {
     
    8376
    8477    private AbstractTree createTree(String id) {
    85         return new DefaultNestedTree<SolrDocument>(id, createProvider()) {
     78        final DefaultNestedTree<SolrDocument> tree = new DefaultNestedTree<SolrDocument>(id, createProvider()) {
    8679
    8780            @Override
    8881            protected Component newContentComponent(String id, final IModel<SolrDocument> node) {
    89                 return new NamedRecordPageLink(id, node);
     82                return new NamedRecordPageLink(id, node) {
     83
     84                    @Override
     85                    protected void onConfigure() {
     86                        setEnabled(!node.equals(HierarchyPanel.this.getModel()));
     87                    }
     88                };
    9089            }
    9190
    9291        };
     92        tree.add(new AttributeAppender("class", new AbstractReadOnlyModel<String>() {
     93
     94            @Override
     95            public String getObject() {
     96                if (parentModel.getObject() != null) {
     97                    return "has-parent";
     98                } else {
     99                    return null;
     100                }
     101            }
     102        }, " "));
     103        return tree;
    93104    }
    94105
     
    127138    }
    128139
     140    @Override
     141    public void detachModels() {
     142        super.detachModels();
     143        parentModel.detach();
     144    }
     145
    129146}
Note: See TracChangeset for help on using the changeset viewer.