IDEMPIERE-2640:Performance: Html/Tabular reports size could be reduced
step2: remove duplicate menu context
This commit is contained in:
parent
8c3f9cf771
commit
e8fadaefbc
|
@ -15,6 +15,7 @@ package org.compiere.print;
|
|||
|
||||
import org.apache.ecs.ConcreteElement;
|
||||
import org.apache.ecs.xhtml.a;
|
||||
import org.apache.ecs.xhtml.body;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -32,4 +33,6 @@ public interface IHTMLExtension {
|
|||
public void extendRowElement(ConcreteElement row, PrintData printData);
|
||||
|
||||
public void extendIDColumn(int row, ConcreteElement columnElement, a href, PrintDataElement dataElement);
|
||||
|
||||
public void setWebAttribute (body reportBody);
|
||||
}
|
||||
|
|
|
@ -776,6 +776,9 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
|
|||
}
|
||||
|
||||
appendInlineCss (doc);
|
||||
if (extension != null){
|
||||
extension.setWebAttribute(doc.getBody());
|
||||
}
|
||||
|
||||
doc.output(w);
|
||||
}
|
||||
|
|
|
@ -17,8 +17,7 @@ import org.adempiere.webui.apps.AEnv;
|
|||
import org.adempiere.webui.theme.ThemeManager;
|
||||
import org.apache.ecs.ConcreteElement;
|
||||
import org.apache.ecs.xhtml.a;
|
||||
import org.apache.ecs.xhtml.div;
|
||||
import org.apache.ecs.xhtml.img;
|
||||
import org.apache.ecs.xhtml.body;
|
||||
import org.compiere.model.MSysConfig;
|
||||
import org.compiere.print.IHTMLExtension;
|
||||
import org.compiere.print.PrintData;
|
||||
|
@ -56,49 +55,9 @@ public class HTMLExtension implements IHTMLExtension {
|
|||
public void extendIDColumn(int row, ConcreteElement columnElement, a href,
|
||||
PrintDataElement dataElement) {
|
||||
href.addAttribute("onclick", "showColumnMenu(event, '" + dataElement.getColumnName() + "', " + row + ")");
|
||||
|
||||
//menu div
|
||||
div menu = new div();
|
||||
menu.setID(dataElement.getColumnName() + "_" + row + "_d");
|
||||
menu.setStyle("position:absolute;display:none;top:0;left:0;border: 1px solid lightgray; background-color: white;");
|
||||
columnElement.addElementToRegistry(menu);
|
||||
|
||||
//window menu item
|
||||
div window = new div();
|
||||
window.setStyle("padding: 3px; vertical-align: middle");
|
||||
window.addAttribute("onmouseover", "this.style.backgroundColor = 'lightgray'");
|
||||
window.addAttribute("onmouseout", "this.style.backgroundColor = 'white'");
|
||||
href = new a("javascript:void(0)");
|
||||
href.setStyle("text-decoration: none; font-size: 11px; vertical-align: middle;");
|
||||
href.addAttribute("onclick", "parent.zoom('"
|
||||
+ componentId + "', '"
|
||||
+ dataElement.getForeignColumnName() + "', '"
|
||||
+ dataElement.getValueAsString() + "')");
|
||||
window.addElement(href);
|
||||
menu.addElement(window);
|
||||
img image = new img("/webui" + ThemeManager.getThemeResource("images/mWindow.png"));
|
||||
image.setAlign("middle");
|
||||
href.addElement(image);
|
||||
href.addElement(Msg.getMsg(AEnv.getLanguage(Env.getCtx()), "Window"));
|
||||
|
||||
//report menu item
|
||||
div report = new div();
|
||||
report.setStyle("padding: 3px; vertical-align: middle");
|
||||
report.addAttribute("onmouseover", "this.style.backgroundColor = 'lightgray'");
|
||||
report.addAttribute("onmouseout", "this.style.backgroundColor = 'white'");
|
||||
href = new a("javascript:void(0)");
|
||||
href.setStyle("text-decoration: none; font-size: 11px; vertical-align: middle;");
|
||||
href.addAttribute("onclick", "parent.drillDown('"
|
||||
+ componentId + "', '"
|
||||
+ dataElement.getForeignColumnName() + "', '"
|
||||
+ dataElement.getValueAsString() + "')");
|
||||
report.addElement(href);
|
||||
menu.addElement(report);
|
||||
image = new img("/webui" + ThemeManager.getThemeResource("images/mReport.png"));
|
||||
image.setAlign("middle");
|
||||
href.addElement(image);
|
||||
href.addElement(Msg.getMsg(AEnv.getLanguage(Env.getCtx()), "Report").replace("&", ""));
|
||||
|
||||
href.addAttribute ("componentId", componentId);
|
||||
href.addAttribute ("foreignColumnName", dataElement.getForeignColumnName());
|
||||
href.addAttribute ("value", dataElement.getValueAsString());
|
||||
}
|
||||
|
||||
public void extendRowElement(ConcreteElement row, PrintData printData) {
|
||||
|
@ -124,4 +83,12 @@ public class HTMLExtension implements IHTMLExtension {
|
|||
return styleURL;
|
||||
}
|
||||
|
||||
public void setWebAttribute (body reportBody){
|
||||
// set attribute value for create menu context
|
||||
reportBody.addAttribute("windowIco", "/webui" + ThemeManager.getThemeResource("images/mWindow.png"));
|
||||
reportBody.addAttribute("reportIco", "/webui" + ThemeManager.getThemeResource("images/mReport.png"));
|
||||
reportBody.addAttribute ("reportLabel", Msg.getMsg(AEnv.getLanguage(Env.getCtx()), "Report").replace("&", ""));
|
||||
reportBody.addAttribute ("windowLabel", Msg.getMsg(AEnv.getLanguage(Env.getCtx()), "Window"));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ function drillDown(cmpid, column, value){
|
|||
}
|
||||
|
||||
function showColumnMenu(e, columnName, row) {
|
||||
var d = document.getElementById(columnName + "_" + row + "_d");
|
||||
var d = getMenu (e.target.getAttribute ("componentId"), e.target.getAttribute ("foreignColumnName"), e.target.getAttribute ("value"));
|
||||
|
||||
var posx = 0;
|
||||
var posy = 0;
|
||||
|
@ -40,6 +40,80 @@ function showColumnMenu(e, columnName, row) {
|
|||
d.style.left = posx;
|
||||
d.style.display = "block";
|
||||
|
||||
setTimeout("document.getElementById('" + columnName + "_" + row + "_d" + "').style.display='none'", 3000);
|
||||
setTimeout("getMenu ().style.display='none'", 3000);
|
||||
}
|
||||
|
||||
var contextMenu;
|
||||
|
||||
function getMenu (componentId, foreignColumnName, value){
|
||||
if (contextMenu == null){
|
||||
|
||||
//menu div
|
||||
var menu = document.createElement("div");
|
||||
menu.style.position = "absolute";
|
||||
menu.style.display = "none";
|
||||
menu.style.top = "0";
|
||||
menu.style.left = "0";
|
||||
menu.style.border = "1px solid lightgray";
|
||||
menu.style.border = "1px solid lightgray";
|
||||
menu.style.backgroundColor = "white";
|
||||
|
||||
//window menu item
|
||||
var windowMenu = document.createElement("div");
|
||||
windowMenu.style.padding = "3px";
|
||||
windowMenu.style.verticalAlign = "middle";
|
||||
windowMenu.setAttribute("onmouseover", "this.style.backgroundColor = 'lightgray'");
|
||||
windowMenu.setAttribute("onmouseout", "this.style.backgroundColor = 'white'");
|
||||
|
||||
var href = document.createElement("a");
|
||||
href.style.fontSize = "11px";
|
||||
href.style.textDecoration = "none";
|
||||
href.style.verticalAlign = "middle";
|
||||
href.href = "javascript:void(0)";
|
||||
href.setAttribute("onclick", "parent.zoom(contextMenu.getAttribute ('componentId'), " +
|
||||
"contextMenu.getAttribute ('foreignColumnName'), " +
|
||||
"contextMenu.getAttribute ('value'))");
|
||||
|
||||
windowMenu.appendChild(href);
|
||||
menu.appendChild(windowMenu);
|
||||
|
||||
var image = document.createElement("img");
|
||||
image.src = window.document.body.getAttribute ("windowIco");
|
||||
image.setAttribute("align", "middle");
|
||||
href.appendChild(image);
|
||||
href.appendChild(document.createTextNode(window.document.body.getAttribute ("windowLabel")));
|
||||
|
||||
//report menu item
|
||||
var report = document.createElement("div");
|
||||
report.style.padding = "3px";
|
||||
report.style.verticalAlign = "middle";
|
||||
|
||||
report.setAttribute("onmouseover", "this.style.backgroundColor = 'lightgray'");
|
||||
report.setAttribute("onmouseout", "this.style.backgroundColor = 'white'");
|
||||
|
||||
var reportHref = document.createElement("a");
|
||||
reportHref.href = "javascript:void(0)";
|
||||
reportHref.style.textDecoration = "none";
|
||||
reportHref.style.fontSize = "11px";
|
||||
reportHref.style.verticalAlign = "middle";
|
||||
reportHref.setAttribute("onclick", "parent.drillDown(contextMenu.getAttribute ('componentId'), " +
|
||||
"contextMenu.getAttribute ('foreignColumnName'), " +
|
||||
"contextMenu.getAttribute ('value'))");
|
||||
|
||||
report.appendChild(reportHref);
|
||||
menu.appendChild(report);
|
||||
var reportimage = document.createElement("img");
|
||||
reportimage.src = window.document.body.getAttribute ("reportIco");
|
||||
reportimage.setAttribute("align", "middle");
|
||||
reportHref.appendChild(reportimage);
|
||||
reportHref.appendChild(document.createTextNode(window.document.body.getAttribute ("reportLabel")));
|
||||
|
||||
contextMenu = menu;
|
||||
window.document.body.appendChild (contextMenu);
|
||||
}
|
||||
|
||||
contextMenu.setAttribute ("componentId", componentId);
|
||||
contextMenu.setAttribute ("foreignColumnName", foreignColumnName);
|
||||
contextMenu.setAttribute ("value", value);
|
||||
return contextMenu;
|
||||
}
|
Loading…
Reference in New Issue