Changeset 4249


Ignore:
Timestamp:
01/10/14 11:21:52 (10 years ago)
Author:
twagoo
Message:

lazy execution of complete CMDI view transformation (got rid of toggle javascript)

Location:
vlo/branches/to-wicket-1.6/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages
Files:
2 edited

Legend:

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

    r3759 r4249  
    22<html>
    33        <wicket:head>
    4                 <script language="JavaScript">
    5                         function toogleDiv(strID, linkElement){
    6                                 document.getElementById(linkElement).innerHTML = (document.getElementById(strID).style.display == 'none' ) ? '<b>Hide CMDI metadata</b>' : '<b>Show CMDI metadata</b>';
    7                                 document.getElementById(strID).style.display = (document.getElementById(strID).style.display == 'none' ) ? 'block' : 'none';
    8                                 document.getElementById(strID + "_shown").style.display = (document.getElementById(strID + "_shown").style.display == 'none' ) ? 'block' : 'none';
    9                                 document.getElementById(strID + "_hidden").style.display = (document.getElementById(strID + "_hidden").style.display == 'none' ) ? 'block' : 'none';
    10                         }
    11                 </script>
     4
    125                <script src="javascript/searchhi.js" type="text/javascript" language="JavaScript"></script>
    136        </wicket:head>
     
    5952           
    6053            <br>
    61             <div id="completeCmdiView">
    62                 <span>
    63                         <a href="javascript:/" id="toogleLink" onClick="toogleDiv('completeCmdi', 'toogleLink');"></a>
    64                 </span>
     54            <div wicket:id="completeCmdiContainer" id="completeCmdiView">
     55                <a wicket:id="toggleCmdiView"><span style="font-weight: bold;" wicket:id="toggleLabel">[toggle cmdi view]</span></a>
    6556                <span id="completeCmdi" wicket:id="completeCmdi"></span>
    6657            </div>                     
  • vlo/branches/to-wicket-1.6/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.java

    r4240 r4249  
    2929import org.apache.wicket.Application;
    3030import org.apache.wicket.Component;
     31import org.apache.wicket.MarkupContainer;
     32import org.apache.wicket.ajax.AjaxRequestTarget;
     33import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
    3134import org.apache.wicket.request.mapper.parameter.PageParameters;
    3235import org.apache.wicket.behavior.Behavior;
    3336import org.apache.wicket.extensions.ajax.markup.html.AjaxLazyLoadPanel;
     37import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxFallbackLink;
    3438import org.apache.wicket.extensions.markup.html.basic.SmartLinkMultiLineLabel;
    3539import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
     
    4751import org.apache.wicket.markup.html.link.BookmarkablePageLink;
    4852import org.apache.wicket.markup.html.link.ExternalLink;
     53import org.apache.wicket.markup.html.link.Link;
    4954import org.apache.wicket.markup.repeater.Item;
    5055import org.apache.wicket.markup.repeater.RepeatingView;
     56import org.apache.wicket.model.AbstractReadOnlyModel;
    5157import org.apache.wicket.model.IModel;
    5258import org.apache.wicket.model.ResourceModel;
     
    109115
    110116            addSearchServiceForm(solrDocument);
     117
    111118            addCompleteCmdiView(solrDocument);
    112119
     
    502509     */
    503510    private void addCompleteCmdiView(final SolrDocument solrDocument) {
     511
     512        final MarkupContainer completeCmdiContainer = new WebMarkupContainer("completeCmdiContainer");
     513        completeCmdiContainer.setOutputMarkupId(true);
     514        add(completeCmdiContainer);
     515        Link toggleLink = new IndicatingAjaxFallbackLink("toggleCmdiView") {
     516
     517            @Override
     518            public void onClick(AjaxRequestTarget target) {
     519                if (completeCmdiLabel == null) {
     520                    createCompleteCmdiView(solrDocument);
     521                    completeCmdiContainer.addOrReplace(completeCmdiLabel);
     522                } else {
     523                    completeCmdiLabel.setVisible(!completeCmdiLabel.isVisible());
     524                }
     525                target.add(completeCmdiContainer);
     526            }
     527        };
     528        final Label toggleLabel = new Label("toggleLabel", new AbstractReadOnlyModel<String>() {
     529
     530            @Override
     531            public String getObject() {
     532                if(completeCmdiLabel == null || !completeCmdiLabel.isVisible()){
     533                    return "Show CMDI metadata";
     534                } else{
     535                    return "Hide CMDI metadata";
     536                }
     537            }
     538        });
     539        toggleLink.add(toggleLabel);
     540        completeCmdiContainer.add(toggleLink);
     541        completeCmdiContainer.add(new WebMarkupContainer("completeCmdi"));
     542    }
     543
     544    private void createCompleteCmdiView(final SolrDocument solrDocument) {
    504545        StringWriter strWriter = new StringWriter();
    505546
     
    526567        }
    527568
    528         Label completeCmdiLabel = new Label("completeCmdi", strWriter.toString());
     569        completeCmdiLabel = new Label("completeCmdi", strWriter.toString());
    529570        completeCmdiLabel.setEscapeModelStrings(false);
    530         add(completeCmdiLabel);
    531 
    532         // remove complete CMDI view on page load
    533         add(new Behavior() {
    534             private static final long serialVersionUID = 1865219352602175954L;
    535 
    536             public void renderHead(IHeaderResponse response) {
    537                 response.render(JavaScriptHeaderItem.forScript("toogleDiv('completeCmdi', 'toogleLink')", null));
    538             }
    539         });
    540     }
     571    }
     572
     573    private Label completeCmdiLabel = null;
    541574}
Note: See TracChangeset for help on using the changeset viewer.