Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package net.sourceforge.jsdialect.tabs;
  
  import java.util.List;
  import static net.sourceforge.jsdialect.util.JsDialectUtil.notEmpty;
 
 public class EachTabsCommand {
 
     private Arguments arguments;
     private Element element;
     private String attributeName;
 
     public EachTabsCommand(Arguments argumentsElement elementString attributeName) {
         this. = arguments;
         this. = element;
         this. = attributeName;
     }
 
     protected void execute() {
         String attributeText = .getAttributeValue();
         String tabId = JsDialectUtil.expressionValue(attributeText).toString();
         // Initialize and retrieve tab container
         Element tabContainer = initializeTabContainer(.getDocument(), tabId);
         // Add nextTab event to last form element
         addNextTab(tabId);
         // Add tab anchor
         addTabAnchor(.getDocument(), tabContainer);
         // Housekeeping
     }

    
Find the tab container with the provided id and adds a
    if needed:
     <div id="tabid">
            <ul>
            </ul>
         </div>
     
     
 
     private Element initializeTabContainer(Document documentString tabId) {
         // Find tab container
         Element tabContainer = DomUtils.getElementById(document"div"tabId);
         if (tabContainer == null) {
             throw new TemplateProcessingException("Tab container with id -" + tabId + "- not found");
         }
         // Find first child
         String ulId = tabId + "-tab-ul";
         Element ul = DomUtils.getElementById(document"ul"ulId);
         if (ul == null) {
             // Add ul
             ul = new Element("ul");
             ul.setAttribute("id"ulId);
             if (tabContainer.hasChildren()) {
                 tabContainer.insertBefore(tabContainer.getFirstElementChild(), ul);
             } else {
                 tabContainer.addChild(ul);
             }
             // Build javascript code
             StringBuilder sb = new StringBuilder();
             sb.append("if ($(\"#").append(ulId).append(" li\").length == 1) {\n");
             sb.append("    $(\"#").append(ulId).append("\").remove(); \n");
             sb.append("} else { \n");
             sb.append("    $(\"#").append(tabId).append("\").tabs();\n");
             sb.append("} \n");
             // Add javascript code to document
             JavaScriptComposer.addOnDocumentReady(documentsb.toString());
         }
         return tabContainer;
     }

    
Create an anchor current element inside the tab container ul, i.e.:
 <div id="tabid">
         <ul>
             <li><a href="#tab-1">Tab title</a></li>
         </ul>
     </div>
 
 
 
     private void addTabAnchor(Document documentElement tabContainerElement element) {
         // Get tab title and id
         String tabTitle = element.getAttributeValue("title");
         String tabId = DomUtils.getOrCreateId(documentelement"tab-");
         // Build li element
        Element li = new Element("li");
        Element a = new Element("a");
        a.setAttribute("href""#" + tabId);
        a.addChild(new Text(tabTitle));
        li.addChild(a);
        // Add li element to tabContainer
        tabContainer.getFirstElementChild().addChild(li);
    }

    
Add a nextTab() function invocation in the last form element and a class flag to first form element.
 <input type="text" ... onblur="nextTab('tabBox', this)" />
 
 
    private void addNextTab(Element elementString tabId) {
        // FIXME: remove input hidden ocurrences
        List<ElementformElements = DomUtils.getElementsByTagNames(element"input""select""textarea");
        if (!formElements.isEmpty()) {
            Element lastElement = formElements.get(formElements.size() - 1);
            String value = "nextTab(event, '" + tabId + "')";
            if (notEmpty(lastElement.getAttributeValue("onkeypress"))) {
                value += "; " + lastElement.getAttributeValue("onkeypress");
            }
            lastElement.setAttribute("onkeypress"value);
        }
    }
New to GrepCode? Check out our FAQ X