All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.viaoa.jsp.OATabbedPane Maven / Gradle / Ivy

/*  Copyright 1999 Vince Via [email protected]
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
*/
package com.viaoa.jsp;

import java.util.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.viaoa.hub.*;
import com.viaoa.object.*;
import com.viaoa.util.*;

public class OATabbedPane implements OAJspComponent, OAJspRequirementsInterface {

    private static final long serialVersionUID = 1L;

    protected Hub hub;
    protected String id;
    
    protected OAForm form;
    protected String lastAjaxSent;

    
    public OATabbedPane(String id) {
        this(id, null);
    }
    public OATabbedPane() {
        this(null, null);
    }
    public OATabbedPane(String id, Hub hub) {
        this.id = id;
        this.hub = hub;
    }
    public OATabbedPane(Hub hub) {
        this.hub = hub;
    }

    public Hub getHub() {
        return hub;
    }
    
    @Override
    public boolean isChanged() {
        return false;
    }

    @Override
    public String getId() {
        return id;
    }
    @Override
    public void setId(String id) {
        this.id = id;
    }

    @Override
    public void reset() {
    }

    @Override
    public void setForm(OAForm form) {
        this.form = form;
    }
    @Override
    public OAForm getForm() {
        return this.form;
    }

    @Override
    public boolean _beforeFormSubmitted() {
        return true;
    }

    @Override
    public boolean _onFormSubmitted(HttpServletRequest req, HttpServletResponse resp, HashMap hmNameValue) {
        String s = req.getParameter("oacommand");
        if (s == null && hmNameValue != null) {
            String[] ss = hmNameValue.get("oacommand");
            if (ss != null && ss.length > 0) s = ss[0];
        }
        boolean bWasSubmitted = (id != null && id.equals(s));

        if (hmNameValue != null) {
            String[] ss = hmNameValue.get("oahidden"+id);
            if (ss != null && ss.length > 0 && OAString.isInteger(ss[0])) {
                setIndex(OAConv.toInt(ss[0]));
            }
        }
        
        return bWasSubmitted;
    }
    
    @Override
    public String _onSubmit(String forwardUrl) {
        return onSubmit(forwardUrl);
    }
    
    @Override
    public String onSubmit(String forwardUrl) {
        return forwardUrl;
    }

    @Override
    public String _afterFormSubmitted(String forwardUrl) {
        return afterFormSubmitted(forwardUrl);
    }
    @Override
    public String afterFormSubmitted(String forwardUrl) {
        return forwardUrl;
    }

    private final ArrayList alTabInfo = new ArrayList<>();
    
    private static class TabInfo {
        public String name, url;
    }
    
    /**
     * @param name to display
     * @param url name of page to use or '#'+elementId to use html of an element on the page.
     */
    public void addTab(String name, String url) {
        TabInfo ti = new TabInfo();
        ti.name = name;
        ti.url = url;
        alTabInfo.add(ti);
    }
    public void removeTab(int pos) {
        if (pos > 0 && pos < alTabInfo.size()) alTabInfo.remove(pos);
    }
    
    
    private int tabIndex;
    public int getIndex() {
        return tabIndex;
    }
    public void setIndex(int pos) {
        this.tabIndex = pos;
    }
    
    @Override
    public String getScript() {
        lastAjaxSent = null;

        StringBuilder sb = new StringBuilder(1024);

        sb.append("$('form').prepend(\"\");\n");
        
        // 
sb.append("$('#"+getId()+"').addClass('container');\n"); sb.append("$('#"+getId()+"').html(\""); sb.append(""); sb.append("
content here
"); sb.append("\");\n"); for (TabInfo ti : alTabInfo) { if (ti.url != null && ti.url.length() > 0 && ti.url.charAt(0) == '#') { sb.append("$('"+ti.url+"').addClass('oaHide');\n"); } } sb.append("$('#"+id+" ul li a').click(function(e) { $('#"+id+"Index').val($(this).attr('tabIndex'));$('#oacommand').val('" + getId() + "');ajaxSubmit(); e.stopPropagation(); $(this).blur();return false; });\n"); String s = getAjaxScript(); if (s != null) sb.append(s); String js = sb.toString(); return js; } @Override public String getVerifyScript() { return null; } @Override public String getAjaxScript() { StringBuilder sb = new StringBuilder(1024); String s = "$('#oahidden"+id+"').val('"+getIndex()+"');"; sb.append("$('#"+id+" ul li').removeClass('active');\n"); sb.append("$('#"+id+" ul li:eq("+(getIndex())+")').addClass('active');\n"); TabInfo ti = alTabInfo.get(getIndex()); if (ti.url != null && ti.url.length() > 0 && ti.url.charAt(0) == '#') { sb.append("$('#"+id+"Content').html($('"+ti.url+"').html());\n"); } else { sb.append("$('#"+id+"Content').load('"+ti.url+"?formId="+getForm().getId()+"&compId="+id+"');\n"); } String js = sb.toString(); return js; } @Override public void setEnabled(boolean b) { } @Override public boolean getEnabled() { return hub == null || hub.isValid(); } @Override public void setVisible(boolean b) { } @Override public boolean getVisible() { return true; } @Override public String getForwardUrl() { return null; } public String[] getRequiredJsNames() { ArrayList al = new ArrayList<>(); al.add(OAJspDelegate.JS_jquery); al.add(OAJspDelegate.JS_bootstrap); String[] ss = new String[al.size()]; return al.toArray(ss); } @Override public String[] getRequiredCssNames() { ArrayList al = new ArrayList<>(); al.add(OAJspDelegate.CSS_bootstrap); String[] ss = new String[al.size()]; return al.toArray(ss); } @Override public String getEditorHtml(OAObject obj) { return null; } @Override public String getRenderHtml(OAObject obj) { return null; } @Override public void _beforeOnSubmit() { } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy