IDEMPIERE-724 Zk: Make iDempiere theme more easily customizable. Move statusbar to top and modify to use css style.

This commit is contained in:
Heng Sin Low 2013-05-14 06:42:19 +08:00
parent 5a3e609189
commit 51cb5127bc
5 changed files with 304 additions and 309 deletions

View File

@ -136,10 +136,7 @@ public class ADWindowContent extends AbstractADWindowContent
});
//status bar
Div south = new Div();
south.setSclass("adwindow-south");
south.setVflex("0");
statusBar.setParent(south);
div.appendChild(statusBar);
LayoutUtils.addSclass("adwindow-status", statusBar);
@ -150,8 +147,6 @@ public class ADWindowContent extends AbstractADWindowContent
contentArea.setStyle("overflow: auto;");
adTabbox.createPart(contentArea);
layout.appendChild(south);
if (parent instanceof Tabpanel) {
TabOnCloseHanlder handler = new TabOnCloseHanlder();
((Tabpanel)parent).setOnCloseHandler(handler);

View File

@ -1036,11 +1036,11 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
hideBusyMask();
ProcessModalDialog dialog = (ProcessModalDialog) event.getTarget();
onModalClose(dialog.getProcessInfo());
String s = breadCrumb.getStatusLine();
boolean b = breadCrumb.getStatusError();
ProcessInfoLog[] logs = breadCrumb.getPLogs();
String s = statusBar.getStatusLine();
boolean b = statusBar.getStatusError();
ProcessInfoLog[] logs = statusBar.getPLogs();
onRefresh(true, false);
breadCrumb.setStatusLine(s, b, logs);
statusBar.setStatusLine(s, b, logs);
}
else if (ADTabpanel.ON_DYNAMIC_DISPLAY_EVENT.equals(event.getName()))
{
@ -1278,7 +1278,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
if (detailTab) {
adTabbox.setDetailPaneStatusMessage("", false);
} else {
breadCrumb.setStatusLine ("", false);
statusBar.setStatusLine ("", false);
}
}
else
@ -1345,7 +1345,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
if (detailTab) {
adTabbox.setDetailPaneStatusMessage(sb.toString (), e.isError ());
} else {
breadCrumb.setStatusLine (sb.toString (), e.isError ());
statusBar.setStatusLine (sb.toString (), e.isError ());
}
}
}
@ -1797,9 +1797,9 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
{
if (result)
{
String statusLine = breadCrumb.getStatusLine();
String statusLine = statusBar.getStatusLine();
adTabbox.getSelectedGridTab().dataRefreshAll(true, true);
breadCrumb.setStatusLine(statusLine);
statusBar.setStatusLine(statusLine);
}
if (dirtyTabpanel != null) {
if (dirtyTabpanel == adTabbox.getSelectedDetailADTabpanel())
@ -1848,7 +1848,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
}
if (!sortTab.isChanged()) {
if (sortTab == adTabbox.getSelectedTabpanel()) {
breadCrumb.setStatusLine(Msg.getMsg(Env.getCtx(), "Saved"));
statusBar.setStatusLine(Msg.getMsg(Env.getCtx(), "Saved"));
} else {
adTabbox.setDetailPaneStatusMessage(Msg.getMsg(Env.getCtx(), "Saved"), false);
}
@ -1958,7 +1958,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
String msg = CLogger.retrieveErrorString(null);
if (msg != null)
{
breadCrumb.setStatusLine(Msg.getMsg(Env.getCtx(), msg), true);
statusBar.setStatusLine(Msg.getMsg(Env.getCtx(), msg), true);
}
//other error will be catch in the dataStatusChanged event
}
@ -2599,7 +2599,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
onRefresh(true, false);
if (error != null)
breadCrumb.setStatusLine(error, true);
statusBar.setStatusLine(error, true);
}
}
});
@ -2747,7 +2747,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
String error = processButtonCallout((IProcessButton) event.getSource());
if (error != null && error.trim().length() > 0)
{
breadCrumb.setStatusLine(error, true);
statusBar.setStatusLine(error, true);
return;
}
actionButton((IProcessButton) event.getSource());
@ -2865,7 +2865,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
// Get Log Info
ProcessInfoUtil.setLogFromDB(pi);
ProcessInfoLog m_logs[] = pi.getLogs();
breadCrumb.setStatusLine(pi.getSummary(), pi.isError(),m_logs);
statusBar.setStatusLine(pi.getSummary(), pi.isError(),m_logs);
if (m_logs != null) {
ProcessInfoDialog dialog = new ProcessInfoDialog(AEnv.getDialogHeader(ctx, curWindowNo),Env.getHeader(ctx, curWindowNo), m_logs);
dialog.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener<Event>() {

View File

@ -21,13 +21,10 @@ import java.util.Map;
import org.adempiere.webui.AdempiereWebUI;
import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.Label;
import org.adempiere.webui.component.Menupopup;
import org.adempiere.webui.component.Tabpanel;
import org.adempiere.webui.component.ToolBar;
import org.adempiere.webui.component.ToolBarButton;
import org.adempiere.webui.component.Window;
import org.adempiere.webui.component.ZkCssHelper;
import org.adempiere.webui.event.ToolbarListener;
import org.adempiere.webui.session.SessionManager;
@ -35,30 +32,21 @@ import org.adempiere.webui.theme.ThemeManager;
import org.adempiere.webui.window.WRecordInfo;
import org.compiere.model.DataStatusEvent;
import org.compiere.model.MRole;
import org.compiere.process.ProcessInfoLog;
import org.compiere.util.Env;
import org.compiere.util.Msg;
import org.compiere.util.Util;
import org.zkoss.zhtml.Text;
import org.zkoss.zk.au.out.AuScript;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.Page;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.KeyEvent;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.A;
import org.zkoss.zul.Caption;
import org.zkoss.zul.Div;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Hlayout;
import org.zkoss.zul.Image;
import org.zkoss.zul.Menuitem;
import org.zkoss.zul.Separator;
import org.zkoss.zul.Space;
/**
* @author hengsin
@ -70,10 +58,6 @@ public class BreadCrumb extends Div implements EventListener<Event> {
private static final String ON_MOUSE_OUT_ECHO_EVENT = "onMouseOutEcho";
private static final String INFO_INDICATOR_IMAGE = "images/InfoIndicator16.png";
private static final String ERROR_INDICATOR_IMAGE = "images/ErrorIndicator16.png";
/**
* generated serial id
*/
@ -97,24 +81,10 @@ public class BreadCrumb extends Div implements EventListener<Event> {
private String m_text;
private boolean m_statusError;
private String m_statusText;
private Window msgPopup;
private Div msgPopupCnt;
private ToolbarListener toolbarListener;
private Hlayout toolbarContainer;
private Hbox messageContainer;
private Caption msgPopupCaption;
private ProcessInfoLog[] pInfoLogs = null;
protected Menupopup linkPopup;
/**
@ -133,7 +103,8 @@ public class BreadCrumb extends Div implements EventListener<Event> {
this.setSclass("adwindow-breadcrumb");
toolbarContainer = new Hlayout();
layout.appendChild(toolbarContainer);
toolbarContainer.setStyle("display: inline-block; float: right");
this.appendChild(toolbarContainer);
ToolBar toolbar = new ToolBar();
toolbarContainer.appendChild(toolbar);
@ -157,19 +128,11 @@ public class BreadCrumb extends Div implements EventListener<Event> {
btnLast.setTooltiptext(btnLast.getTooltiptext()+" Alt+End");
toolbar.appendChild(btnLast);
messageContainer = new Hbox();
messageContainer.setStyle("float: right; height: 30px;");
messageContainer.setAlign("center");
messageContainer.setId("messages");
appendChild(messageContainer);
altKeyMap.put(KeyEvent.UP, btnPrevious);
altKeyMap.put(KeyEvent.DOWN, btnNext);
altKeyMap.put(KeyEvent.PAGE_UP, btnFirst);
altKeyMap.put(KeyEvent.PAGE_DOWN, btnLast);
createPopup();
toolbar.setStyle("background-image: none; background-color: transparent; border: none;");
setWidgetAttribute(AdempiereWebUI.WIDGET_INSTANCE_NAME, "breadcrumb");
@ -197,23 +160,23 @@ public class BreadCrumb extends Div implements EventListener<Event> {
a.setId("breadcrumb-"+label);
a.setPathId(id);
a.addEventListener(Events.ON_CLICK, this);
if (layout.getChildren().size() > 1) {
if (layout.getChildren().size() > 0) {
Label symbol = new Label();
symbol.setValue(" > ");
layout.insertBefore(symbol, toolbarContainer);
layout.appendChild(symbol);
}
layout.insertBefore(a, toolbarContainer);
layout.appendChild(a);
} else {
Label pathLabel = new Label();
pathLabel.setId("breadcrumb-"+label);
pathLabel.setValue(label);
if (layout.getChildren().size() > 1) {
if (layout.getChildren().size() > 0) {
Label symbol = new Label();
symbol.setValue(" > ");
layout.insertBefore(symbol, toolbarContainer);
layout.appendChild(symbol);
}
pathLabel.setStyle("font-weight: bold");
layout.insertBefore(pathLabel, toolbarContainer);
layout.appendChild(pathLabel);
}
}
@ -236,7 +199,7 @@ public class BreadCrumb extends Div implements EventListener<Event> {
*/
public void addLinks(LinkedHashMap<String, String> links) {
this.links = links;
final Label pathLabel = (Label) layout.getChildren().get(layout.getChildren().size()-2);
final Label pathLabel = (Label) layout.getChildren().get(layout.getChildren().size()-1);
pathLabel.setStyle("cursor: pointer; font-weight: bold; padding-right: 10px;");
EventListener<Event> listener = new EventListener<Event>() {
@Override
@ -342,10 +305,6 @@ public class BreadCrumb extends Div implements EventListener<Event> {
String title = Msg.getMsg(Env.getCtx(), "Who") + m_text;
new WRecordInfo (title, m_dse);
} else if(event.getTarget() instanceof RecordLink){
doZoom((RecordLink)event.getTarget());
} else if (event.getTarget().getParent() == messageContainer) {
showPopup();
} else if (event.getTarget() == btnFirst) {
if (toolbarListener != null)
toolbarListener.onFirst();
@ -396,11 +355,8 @@ public class BreadCrumb extends Div implements EventListener<Event> {
* remove all links
*/
public void reset() {
if (layout.getChildren().size() == 0 || layout.getChildren().size() > 1) {
layout.getChildren().clear();
layout.appendChild(toolbarContainer);
this.links = null;
}
layout.getChildren().clear();
this.links = null;
}
/**
@ -475,192 +431,6 @@ public class BreadCrumb extends Div implements EventListener<Event> {
}
}
/**
* @param text
*/
public void setStatusLine (String text)
{
setStatusLine(text, false,null);
}
/**
* @param text
* @param error
*/
public void setStatusLine (String text, boolean error)
{
setStatusLine(text, error, null);
}
/**
* @param text
* @param error
* @param m_logs
*/
public void setStatusLine (String text, boolean error, ProcessInfoLog[] m_logs)
{
pInfoLogs = m_logs;
Div div = null;
Execution execution = Executions.getCurrent();
if (execution != null) {
String key = this.getClass().getName()+"."+getUuid();
Object o = execution.getAttribute(key);
if (o != null) {
if (text == null || text.trim().length() == 0)
return;
} else {
execution.setAttribute(key, Boolean.TRUE);
}
}
m_statusText = text;
m_statusError = error;
messageContainer.getChildren().clear();
if (text == null || text.trim().length() == 0 )
return;
Image image = null;
if (error)
image = new Image(ThemeManager.getThemeResource(ERROR_INDICATOR_IMAGE));
else
image = new Image(ThemeManager.getThemeResource(INFO_INDICATOR_IMAGE));
image.setAttribute("org.zkoss.zul.image.preload", Boolean.TRUE);
messageContainer.appendChild(image);
String labelText = buildLabelText(m_statusText);
if (error) {
Clients.showNotification(buildNotificationText(m_statusText), "error", findTabpanel(this), "top_left", 3500, true);
}
Label label = new Label(labelText);
messageContainer.appendChild(label);
if (m_logs != null) {
div = new Div();
for (int i = 0; i < m_logs.length; i++) {
if (m_logs[i].getP_Msg() != null) {
if (m_logs[i].getAD_Table_ID() > 0
&& m_logs[i].getRecord_ID() > 0) {
RecordLink recordLink = new RecordLink(m_logs[i].getAD_Table_ID(), m_logs[i].getRecord_ID());
recordLink.setLabel(m_logs[i].getP_Msg());
recordLink.addEventListener(Events.ON_CLICK, this);
if (!div.getChildren().isEmpty())
div.appendChild(new Separator("horizontal"));
div.appendChild(recordLink);
}
}
}
}
if (labelText.length() != m_statusText.length() || (div != null && div.getChildren().size() > 0)) {
image.addEventListener(Events.ON_CLICK, this);
image.setStyle("cursor: pointer");
label.addEventListener(Events.ON_CLICK, this);
label.setStyle("cursor: pointer");
label = new Label(" ...");
label.setStyle("cursor: pointer");
messageContainer.appendChild(label);
label.addEventListener(Events.ON_CLICK, this);
}
messageContainer.appendChild(new Space());
createPopupContent();
if(div!=null)
{
msgPopupCnt.appendChild(div);
}
}
private Component findTabpanel(BreadCrumb breadCrumb) {
Component parent = breadCrumb.getParent();
while (parent != null) {
if (parent instanceof Tabpanel)
return parent;
parent = parent.getParent();
}
return null;
}
private void doZoom(RecordLink link) {
int Record_ID = 0;
int AD_Table_ID = 0;
Record_ID = link.recordId;
AD_Table_ID = link.tableId;
if (Record_ID > 0 && AD_Table_ID > 0) {
AEnv.zoom(AD_Table_ID, Record_ID);
}
}
private String buildLabelText(String statusText) {
if (statusText == null)
return "";
if (statusText.length() <= 80)
return statusText;
int index = statusText.indexOf(" - java.lang.Exception");
if (index > 0)
return statusText.substring(0, index);
return statusText.substring(0, 80);
}
private String buildNotificationText(String statusText) {
if (statusText == null)
return "";
if (statusText.length() <= 140)
return statusText;
int index = statusText.indexOf(" - java.lang.Exception");
if (index > 0)
return statusText.substring(0, index);
return statusText.substring(0, 136) + " ...";
}
protected void createPopupContent() {
Text t = new Text(m_statusText);
msgPopupCnt.getChildren().clear();
msgPopupCnt.appendChild(t);
}
/**
*
* @return current status line text
*/
public String getStatusLine() {
return m_statusText;
}
public boolean getStatusError() {
return m_statusError;
}
private void createPopup() {
msgPopupCnt = new Div();
msgPopupCnt.setVflex("1");
msgPopup = new Window();
msgPopup.setBorder(true);
msgPopup.setClosable(true);
msgPopup.setSizable(true);
msgPopup.setContentStyle("overflow: auto");
msgPopup.setWidth("500px");
msgPopup.appendChild(msgPopupCnt);
msgPopup.setShadow(true);
msgPopupCaption = new Caption();
msgPopup.appendChild(msgPopupCaption);
}
private void showPopup() {
msgPopupCaption.setImage(m_statusError ? ThemeManager.getThemeResource(ERROR_INDICATOR_IMAGE)
: ThemeManager.getThemeResource(INFO_INDICATOR_IMAGE));
appendChild(msgPopup);
LayoutUtils.openOverlappedWindow(messageContainer, msgPopup, "overlap_end");
}
@Override
public void onPageDetached(Page page) {
super.onPageDetached(page);
@ -692,14 +462,6 @@ public class BreadCrumb extends Div implements EventListener<Event> {
return false;
}
/**
*
* @return process logs
*/
public ProcessInfoLog[] getPLogs() {
return pInfoLogs;
}
@Override
public void onPageAttached(Page newpage, Page oldpage) {
super.onPageAttached(newpage, oldpage);
@ -723,17 +485,4 @@ public class BreadCrumb extends Div implements EventListener<Event> {
public ToolBarButton getPreviousButton() {
return btnPrevious;
}
class RecordLink extends A {
private static final long serialVersionUID = 3793489614175751401L;
protected int recordId;
protected int tableId;
protected RecordLink(int AD_Table_ID, int Record_ID) {
super();
tableId = AD_Table_ID;
recordId = Record_ID;
}
}
}

View File

@ -17,13 +17,26 @@
package org.adempiere.webui.adwindow;
import org.adempiere.webui.LayoutUtils;
import org.adempiere.webui.apps.AEnv;
import org.adempiere.webui.component.Label;
import org.adempiere.webui.component.Panel;
import org.zkoss.zul.Cell;
import org.adempiere.webui.component.Tabpanel;
import org.adempiere.webui.component.Window;
import org.compiere.process.ProcessInfoLog;
import org.zkoss.zhtml.Text;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Execution;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.A;
import org.zkoss.zul.Caption;
import org.zkoss.zul.Div;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Vbox;
import org.zkoss.zul.Separator;
import org.zkoss.zul.Space;
/**
* This class is based on org.compiere.apps.StatusBar written by Jorg Janke.
@ -33,7 +46,7 @@ import org.zkoss.zul.Vbox;
* @date Mar 12, 2007
* @version $Revision: 0.10 $
*/
public class StatusBar extends Panel
public class StatusBar extends Panel implements EventListener<Event>
{
/**
*
@ -44,36 +57,48 @@ public class StatusBar extends Panel
private Div west;
private Div east;
private ProcessInfoLog[] pInfoLogs;
private String m_statusText;
private boolean m_statusError;
private Window msgPopup;
private Div msgPopupCnt;
private Hbox messageContainer;
private Caption msgPopupCaption;
public StatusBar()
{
super();
init();
createPopup();
}
private void init()
{
Hbox hbox = new Hbox();
hbox.setWidth("100%");
hbox.setHeight("100%");
hbox.setHflex("1");
hbox.setPack("center");
Cell leftCell = new Cell();
hbox.appendChild(leftCell);
leftCell.setWidth("100%");
infoLine = new Label();
east = new Div();
east.setSclass("adwindow-status-docinfo");
east.appendChild(infoLine);
west = new Div();
west.setStyle("text-align: left; ");
west.appendChild(infoLine);
Vbox vbox = new Vbox();
vbox.setPack("center");
LayoutUtils.addSclass("status", vbox);
vbox.appendChild(west);
leftCell.appendChild(vbox);
west.setSclass("adwindow-status-docstatus");
this.appendChild(hbox);
messageContainer = new Hbox();
messageContainer.setAlign("center");
messageContainer.setId("messages");
west.appendChild(messageContainer);
appendChild(west);
appendChild(east);
}
/**
@ -87,4 +112,211 @@ public class StatusBar extends Panel
infoLine.setStyle("font-weight: bold;");
} // setInfo
/**
* @param text
*/
public void setStatusLine (String text)
{
setStatusLine(text, false,null);
}
/**
* @param text
* @param error
*/
public void setStatusLine (String text, boolean error)
{
setStatusLine(text, error, null);
}
/**
* @param text
* @param error
* @param m_logs
*/
public void setStatusLine (String text, boolean error, ProcessInfoLog[] m_logs)
{
pInfoLogs = m_logs;
Div div = null;
Execution execution = Executions.getCurrent();
if (execution != null) {
String key = this.getClass().getName()+"."+getUuid();
Object o = execution.getAttribute(key);
if (o != null) {
if (text == null || text.trim().length() == 0)
return;
} else {
execution.setAttribute(key, Boolean.TRUE);
}
}
m_statusText = text;
m_statusError = error;
messageContainer.getChildren().clear();
if (text == null || text.trim().length() == 0 )
return;
/*
Image image = null;
if (error)
image = new Image(ThemeManager.getThemeResource(ERROR_INDICATOR_IMAGE));
else
image = new Image(ThemeManager.getThemeResource(INFO_INDICATOR_IMAGE));
image.setAttribute("org.zkoss.zul.image.preload", Boolean.TRUE);
*/
// messageContainer.appendChild(image);
String labelText = buildLabelText(m_statusText);
if (error) {
Clients.showNotification(buildNotificationText(m_statusText), "error", findTabpanel(this), "top_left", 3500, true);
}
Label label = new Label(labelText);
messageContainer.setSclass(error ? "docstatus-error" : "docstatus-normal");
messageContainer.appendChild(label);
if (m_logs != null) {
div = new Div();
for (int i = 0; i < m_logs.length; i++) {
if (m_logs[i].getP_Msg() != null) {
if (m_logs[i].getAD_Table_ID() > 0
&& m_logs[i].getRecord_ID() > 0) {
RecordLink recordLink = new RecordLink(m_logs[i].getAD_Table_ID(), m_logs[i].getRecord_ID());
recordLink.setLabel(m_logs[i].getP_Msg());
recordLink.addEventListener(Events.ON_CLICK, this);
if (!div.getChildren().isEmpty())
div.appendChild(new Separator("horizontal"));
div.appendChild(recordLink);
}
}
}
}
if (labelText.length() != m_statusText.length() || (div != null && div.getChildren().size() > 0)) {
label.addEventListener(Events.ON_CLICK, this);
label.setStyle("cursor: pointer");
label = new Label(" ...");
label.setStyle("cursor: pointer");
messageContainer.appendChild(label);
label.addEventListener(Events.ON_CLICK, this);
}
messageContainer.appendChild(new Space());
createPopupContent();
if(div!=null)
{
msgPopupCnt.appendChild(div);
}
}
private String buildLabelText(String statusText) {
if (statusText == null)
return "";
if (statusText.length() <= 80)
return statusText;
int index = statusText.indexOf(" - java.lang.Exception");
if (index > 0)
return statusText.substring(0, index);
return statusText.substring(0, 80);
}
protected void createPopupContent() {
Text t = new Text(m_statusText);
msgPopupCnt.getChildren().clear();
msgPopupCnt.appendChild(t);
}
private String buildNotificationText(String statusText) {
if (statusText == null)
return "";
if (statusText.length() <= 140)
return statusText;
int index = statusText.indexOf(" - java.lang.Exception");
if (index > 0)
return statusText.substring(0, index);
return statusText.substring(0, 136) + " ...";
}
private Component findTabpanel(Component comp) {
Component parent = comp.getParent();
while (parent != null) {
if (parent instanceof Tabpanel)
return parent;
parent = parent.getParent();
}
return null;
}
@Override
public void onEvent(Event event) throws Exception {
if(event.getTarget() instanceof RecordLink){
doZoom((RecordLink)event.getTarget());
}
}
private void doZoom(RecordLink link) {
int Record_ID = 0;
int AD_Table_ID = 0;
Record_ID = link.recordId;
AD_Table_ID = link.tableId;
if (Record_ID > 0 && AD_Table_ID > 0) {
AEnv.zoom(AD_Table_ID, Record_ID);
}
}
/**
*
* @return process logs
*/
public ProcessInfoLog[] getPLogs() {
return pInfoLogs;
}
/**
*
* @return current status line text
*/
public String getStatusLine() {
return m_statusText;
}
public boolean getStatusError() {
return m_statusError;
}
private void createPopup() {
msgPopupCnt = new Div();
msgPopupCnt.setVflex("1");
msgPopup = new Window();
msgPopup.setBorder(true);
msgPopup.setClosable(true);
msgPopup.setSizable(true);
msgPopup.setContentStyle("overflow: auto");
msgPopup.setWidth("500px");
msgPopup.appendChild(msgPopupCnt);
msgPopup.setShadow(true);
msgPopupCaption = new Caption();
msgPopup.appendChild(msgPopupCaption);
}
class RecordLink extends A {
private static final long serialVersionUID = 3793489614175751401L;
protected int recordId;
protected int tableId;
protected RecordLink(int AD_Table_ID, int Record_ID) {
super();
tableId = AD_Table_ID;
recordId = Record_ID;
}
}
}

View File

@ -657,10 +657,29 @@ div.wc-modal, div.wc-modal-none, div.wc-highlighted, div.wc-highlighted-none {
}
.adwindow-status {
background-color: #F4F4F4;
height: 20px;
}
.adwindow-status-docinfo {
display: inline-block;
float: right;
padding-right: 4px;
}
.adwindow-status-docinfo .z-label, .adwindow-status-docstatus .z-label {
color: #6a6a6a;
}
.adwindow-status-docstatus .docstatus-error .z-label {
color: red;
}
.adwindow-status-docstatus {
display: inline-block;
float: left;
padding-left: 4px;
}
.adwindow-toolbar {
border: 0px;
height: 26px;