package org.akaza.openclinica.controller.helper.table; import java.util.ResourceBundle; import org.akaza.openclinica.control.DefaultToolbar; import org.akaza.openclinica.i18n.util.ResourceBundleProvider; import org.jmesa.core.CoreContext; import org.jmesa.view.html.HtmlBuilder; import org.jmesa.view.html.toolbar.AbstractItem; import org.jmesa.view.html.toolbar.AbstractItemRenderer; import org.jmesa.view.html.toolbar.ToolbarItem; import org.jmesa.view.html.toolbar.ToolbarItemRenderer; import org.jmesa.view.html.toolbar.ToolbarItemType; public class SDVToolbarSubject extends DefaultToolbar { private ResourceBundle reswords = ResourceBundleProvider.getWordsBundle(); public SDVToolbarSubject(boolean showMoreLink){ this.showMoreLink = showMoreLink; } @Override protected void addToolbarItems() { addToolbarItem(ToolbarItemType.SEPARATOR); addToolbarItem(createCustomItem(new ShowMoreItem())); addToolbarItem(createCustomItem(new NewHiddenItem())); } private ToolbarItem createCustomItem(AbstractItem item) { ToolbarItemRenderer renderer = new CustomItemRenderer(item, getCoreContext()); renderer.setOnInvokeAction("onInvokeAction"); item.setToolbarItemRenderer(renderer); return item; } private class ShowMoreItem extends AbstractItem { @Override public String disabled() { // TODO Auto-generated method stub return null; } @Override public String enabled() { HtmlBuilder html = new HtmlBuilder(); if(showMoreLink){ html.a().id("showMore").href("javascript:hideCols('s_sdv',[" + getIndexes() + "],true);").close(); html.div().close().nbsp().append(reswords.getString("show_more")).nbsp().divEnd().aEnd(); html.a().id("hide").style("display: none;").href("javascript:hideCols('s_sdv',[" + getIndexes() + "],false);").close(); html.div().close().nbsp().append(reswords.getString("hide")).nbsp().divEnd().aEnd(); html.script().type("text/javascript").close().append( "$j = jQuery.noConflict(); $j(document).ready(function(){ " + "hideCols('s_sdv',[" + getIndexes() + "],false);});").scriptEnd(); }else{ html.a().id("hide").href("javascript:hideCols('s_sdv',[" + getIndexes() + "],false);").close(); html.div().close().nbsp().append(reswords.getString("hide")).nbsp().divEnd().aEnd(); html.a().id("showMore").style("display: none;").href("javascript:hideCols('s_sdv',[" + getIndexes() + "],true);").close(); html.div().close().nbsp().append(reswords.getString("show_more")).nbsp().divEnd().aEnd(); html.script().type("text/javascript").close().append( "$j = jQuery.noConflict(); $j(document).ready(function(){ " + "hideCols('s_sdv',[" + getIndexes() + "],true);});").scriptEnd(); } return html.toString(); } String getIndexes() { String result = "2,3,4"; return result; } } private static class CustomItemRenderer extends AbstractItemRenderer { public CustomItemRenderer(ToolbarItem item, CoreContext coreContext) { setToolbarItem(item); setCoreContext(coreContext); } public String render() { ToolbarItem item = getToolbarItem(); return item.enabled(); } } }