package com.fins.html.view;
import com.fins.html.HtmlPage;
import com.fins.html.utils.XMLUtils;
import com.fins.html.view.AbstractView;
import com.fins.html.view.ViewFactory;
import com.fins.html.view.dynamic.DynamicOutData;
import com.fins.html.view.dynamic.DynamicSupport;
import com.fins.html.web.WebViewController;
import com.fins.modules.core.spring.ServiceLocator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dom4j.Element;
public class FormView extends AbstractView {
static Logger logger = LogManager.getLogger(WebViewController.class.getName());
public void doHtml(Element e, HtmlPage page) {
String id = e.attributeValue("id");
this.checkOnlyid(e, page);
Map formps = this.getPropertys(e);
Object dynamicClass = formps.get("dynamicClass");
boolean bool = false;
Map map;
if(dynamicClass != null && !"".equals(dynamicClass)) {
try {
map = null;
if(formps.containsKey("dynamicParam")) {
map = XMLUtils.jsonToMap(formps.get("dynamicParam").toString());
}
DynamicSupport support = (DynamicSupport)ServiceLocator.getInstance().getBean(Class.forName(dynamicClass.toString()));
DynamicOutData outdata = support.queryDynamic(this.initDynamicInData(e, page, map));
id = outdata.getMainData().get("id").toString();
if(outdata.getMainData().containsKey("overflow") && this.getProperty(outdata.getMainData().get("overflow")).equals("auto")) {
page.getHtml().append("\n
\n");
if(bool) {
page.getHtml().append("
\n");
}
}
private void doDynamicHtml(DynamicOutData outdata, HtmlPage page, Element e) {
Map main = outdata.getMainData();
Set mkey = main.keySet();
page.getHtml().append(" data-options=\"id:\'").append(e.attributeValue("id")).append("\'");
Iterator i$ = mkey.iterator();
while(i$.hasNext()) {
String key = (String)i$.next();
if(!key.equals("event")) {
this.doProperty(main.get(key), key, page.getHtml());
}
}
page.getHtml().append("\">");
if(main.containsKey("showtitle") && this.getProperty(main.get("showtitle")).equals("true")) {
page.getHtml().append("");
if(main.containsKey("title")) {
page.getHtml().append(this.getProperty(main.get("title")));
}
page.getHtml().append("
");
}
this.doDynamicPropertysHtml(outdata, page);
this.doEvents((Map)main, page);
}
private String[] getColsWidth(int col, String widths) {
String[] cols = new String[col];
int pwidth;
int i;
if(widths != null && !widths.trim().equals("")) {
String[] var7 = widths.split(",");
pwidth = var7.length;
for(i = 0; i < col; ++i) {
if(i < pwidth && !var7[i].trim().equals("")) {
cols[i] = var7[i];
}
}
} else {
int width = 100 / col;
pwidth = 0;
for(i = 0; i < col; ++i) {
if(i == col - 1) {
cols[i] = 100 - pwidth + "%";
} else {
cols[i] = width + "%";
pwidth += width;
}
}
}
return cols;
}
private void doDynamicPropertysHtml(DynamicOutData outdata, HtmlPage page) {
int col = Integer.valueOf(this.getProperty(outdata.getMainData().get("cols"))).intValue();
StringBuffer hiddenHtml = new StringBuffer();
List ald = outdata.getColDatas();
int len = ald.size();
ArrayList ld = new ArrayList();
for(int colwidths = 0; colwidths < len; ++colwidths) {
Map row = (Map)ald.get(colwidths);
if(this.getProperty(row.get("type")).equals("hidden")) {
AbstractView ad = ViewFactory.createView("hidden");
hiddenHtml.append(ad.doHtml((Map)row, page).toString());
} else {
ld.add(row);
}
}
String[] var22 = null;
if(outdata.getMainData().containsKey("colwidths")) {
var22 = this.getColsWidth(col, this.getProperty(outdata.getMainData().get("colwidths")));
} else {
var22 = this.getColsWidth(col, (String)null);
}
page.getHtml().append(hiddenHtml);
len = ld.size();
int var23 = len / col + 5;
String[][] var24 = new String[var23][col];
int index = 0;
boolean cinex = false;
boolean isbool = true;
int r;
int acol;
for(r = 0; r < var23; ++r) {
if(isbool) {
for(acol = 0; acol < col; ++acol) {
if(var24[r][acol] == null) {
if(index == len) {
isbool = false;
break;
}
Map islast = (Map)ld.get(index++);
AbstractView c = ViewFactory.createView(this.getProperty(islast.get("type")));
if(c != null) {
page.getTempMap().put("colWidth", var22[acol]);
var24[r][acol] = c.doHtml((Map)islast, page).toString();
c.doEvents((Map)islast, page);
} else {
var24[r][acol] = "";
}
int rowspan = 1;
if(islast.get("rowspan") != null) {
rowspan = Integer.valueOf(this.getProperty(islast.get("rowspan"))).intValue();
}
int colspan = 1;
if(islast.get("colspan") != null) {
colspan = Integer.valueOf(this.getProperty(islast.get("colspan"))).intValue();
}
for(int i = 0; i < rowspan; ++i) {
for(int j = 0; j < colspan; ++j) {
if(i != 0 || j != 0) {
var24[r + i][acol + j] = "";
}
}
}
}
}
}
if(!isbool) {
break;
}
}
page.getHtml().append("");
}
public void doEvents(Element e, HtmlPage page) {
List events = e.elements("event");
String id = e.attributeValue("id");
Element event;
if(!"".equals(id)) {
for(Iterator i$ = events.iterator(); i$.hasNext(); page.getReadyJs().append("){\n").append(event.elementText("script")).append("\n});\n")) {
event = (Element)i$.next();
String name = event.attributeValue("name");
page.getReadyJs().append(id).append(".on(\'").append(name).append("\',function(");
Element parameters = event.element("parameters");
if(parameters != null) {
List ps = parameters.elements("parameter");
int len = ps.size();
for(int i = 0; i < len; ++i) {
if(i != 0) {
page.getReadyJs().append(",");
}
page.getReadyJs().append(((Element)ps.get(i)).getText());
}
}
}
}
}
public void doEvents(Map e, HtmlPage page) {
if(e.containsKey("event")) {
Map events = (Map)e.get("event");
String id = (String)e.get("id");
if(!"".equals(id)) {
Set keys = events.keySet();
Iterator i$ = keys.iterator();
while(i$.hasNext()) {
String name = (String)i$.next();
page.getReadyJs().append(id).append(".on(\'").append(name).append("\',function(e");
page.getReadyJs().append("){\n").append(events.get(name).toString()).append("\n});\n");
}
}
}
}
}