
com.viaoa.web.OATabbedPane Maven / Gradle / Ivy
package com.viaoa.web;
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(String id, Hub hub) {
this.id = id;
this.hub = hub;
}
public Hub getHub() {
return hub;
}
@Override
public boolean isChanged() {
return false;
}
@Override
public String getId() {
return 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("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() {
}
}
");
sb.append("
© 2015 - 2025 Weber Informatics LLC | Privacy Policy