- Archived documents/reports implemented
- Report viewer implemented - Advanced search criteria implemented
This commit is contained in:
parent
37fd8920d0
commit
fc522d72bb
|
|
@ -518,7 +518,7 @@ public class Desktop extends AbstractUIPart implements MenuListener, Serializabl
|
||||||
"Notice : " + noOfNotice + ", Request : " + noOfRequest + ", Workflow Activities : " + noOfWorkflow);
|
"Notice : " + noOfNotice + ", Request : " + noOfRequest + ", Workflow Activities : " + noOfWorkflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addWindow2TabPanel(Window window)
|
public void showWindowInTabPanel(Window window)
|
||||||
{
|
{
|
||||||
Tabpanel tabPanel = new Tabpanel();
|
Tabpanel tabPanel = new Tabpanel();
|
||||||
window.setParent(tabPanel);
|
window.setParent(tabPanel);
|
||||||
|
|
|
||||||
|
|
@ -26,4 +26,5 @@ public interface IDesktop {
|
||||||
|
|
||||||
public void unregisterWindow(int windowNo);
|
public void unregisterWindow(int windowNo);
|
||||||
|
|
||||||
|
public void showWindowInTabPanel(Window win); // Elaine 2008/07/30
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,170 @@
|
||||||
|
package org.adempiere.webui;
|
||||||
|
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.form.WArchiveViewer;
|
||||||
|
import org.adempiere.webui.component.Window;
|
||||||
|
import org.adempiere.webui.panel.ADForm;
|
||||||
|
import org.adempiere.webui.session.SessionManager;
|
||||||
|
import org.compiere.model.MBPartner;
|
||||||
|
import org.compiere.util.CLogger;
|
||||||
|
import org.compiere.util.DB;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
import org.compiere.util.Msg;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
|
import org.zkoss.zk.ui.event.Event;
|
||||||
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
import org.zkoss.zul.Menuitem;
|
||||||
|
import org.zkoss.zul.Menupopup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Archive Button Consequences.
|
||||||
|
* Popup Menu
|
||||||
|
*
|
||||||
|
* @author Jorg Janke
|
||||||
|
* @version $Id: AArchive.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $
|
||||||
|
*/
|
||||||
|
public class WArchive implements EventListener
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* @param invoker button
|
||||||
|
* @param AD_Table_ID table
|
||||||
|
* @param Record_ID record
|
||||||
|
*/
|
||||||
|
public WArchive (Component invoker, int AD_Table_ID, int Record_ID)
|
||||||
|
{
|
||||||
|
log.config("AD_Table_ID=" + AD_Table_ID + ", Record_ID=" + Record_ID);
|
||||||
|
m_AD_Table_ID = AD_Table_ID;
|
||||||
|
m_Record_ID = Record_ID;
|
||||||
|
getArchives(invoker);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** The Table */
|
||||||
|
private int m_AD_Table_ID;
|
||||||
|
/** The Record */
|
||||||
|
private int m_Record_ID;
|
||||||
|
|
||||||
|
/** The Popup */
|
||||||
|
private Menupopup m_popup = new Menupopup();
|
||||||
|
private Menuitem m_reports = null;
|
||||||
|
private Menuitem m_reportsAll = null;
|
||||||
|
private Menuitem m_documents = null;
|
||||||
|
// private JPopupMenu m_popup = new JPopupMenu("ArchiveMenu");
|
||||||
|
|
||||||
|
/** Where Clause */
|
||||||
|
StringBuffer m_where = null;
|
||||||
|
|
||||||
|
/** Logger */
|
||||||
|
private static CLogger log = CLogger.getCLogger (WArchive.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display Request Options - New/Existing.
|
||||||
|
* @param invoker button
|
||||||
|
*/
|
||||||
|
private void getArchives(Component invoker)
|
||||||
|
{
|
||||||
|
int reportCount = 0;
|
||||||
|
int documentCount = 0;
|
||||||
|
|
||||||
|
m_where = new StringBuffer();
|
||||||
|
m_where.append("(AD_Table_ID=").append(m_AD_Table_ID)
|
||||||
|
.append(" AND Record_ID=").append(m_Record_ID)
|
||||||
|
.append(")");
|
||||||
|
// Get all for BP
|
||||||
|
if (m_AD_Table_ID == MBPartner.Table_ID)
|
||||||
|
m_where.append(" OR C_BPartner_ID=").append(m_Record_ID);
|
||||||
|
//
|
||||||
|
StringBuffer sql = new StringBuffer("SELECT IsReport, COUNT(*) FROM AD_Archive ")
|
||||||
|
.append("WHERE (AD_Table_ID=? AND Record_ID=?) ");
|
||||||
|
if (m_AD_Table_ID == MBPartner.Table_ID)
|
||||||
|
sql.append(" OR C_BPartner_ID=?");
|
||||||
|
sql.append(" GROUP BY IsReport");
|
||||||
|
PreparedStatement pstmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
pstmt = DB.prepareStatement (sql.toString(), null);
|
||||||
|
pstmt.setInt(1, m_AD_Table_ID);
|
||||||
|
pstmt.setInt(2, m_Record_ID);
|
||||||
|
if (m_AD_Table_ID == MBPartner.Table_ID)
|
||||||
|
pstmt.setInt(3, m_Record_ID);
|
||||||
|
rs = pstmt.executeQuery ();
|
||||||
|
while (rs.next ())
|
||||||
|
{
|
||||||
|
if ("Y".equals(rs.getString(1)))
|
||||||
|
reportCount += rs.getInt(2);
|
||||||
|
else
|
||||||
|
documentCount += rs.getInt(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.log(Level.SEVERE, sql.toString(), e);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
DB.close(rs, pstmt);
|
||||||
|
rs = null; pstmt = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
if (documentCount > 0)
|
||||||
|
{
|
||||||
|
m_documents = new Menuitem(Msg.getMsg(Env.getCtx(), "ArchivedDocuments")
|
||||||
|
+ " (" + documentCount + ")");
|
||||||
|
m_documents.addEventListener(Events.ON_CLICK, this);
|
||||||
|
m_popup.appendChild(m_documents);
|
||||||
|
}
|
||||||
|
if (reportCount > 0)
|
||||||
|
{
|
||||||
|
m_reports = new Menuitem(Msg.getMsg(Env.getCtx(), "ArchivedReports")
|
||||||
|
+ " (" + reportCount + ")");
|
||||||
|
m_reports.addEventListener(Events.ON_CLICK, this);
|
||||||
|
m_popup.appendChild(m_reports);
|
||||||
|
}
|
||||||
|
// All Reports
|
||||||
|
String sql1 = "SELECT COUNT(*) FROM AD_Archive WHERE AD_Table_ID=? AND IsReport='Y'";
|
||||||
|
int allReports = DB.getSQLValue(null, sql1, m_AD_Table_ID);
|
||||||
|
if (allReports > 0)
|
||||||
|
{
|
||||||
|
m_reportsAll = new Menuitem(Msg.getMsg(Env.getCtx(), "ArchivedReportsAll")
|
||||||
|
+ " (" + reportCount + ")");
|
||||||
|
m_reportsAll.addEventListener(Events.ON_CLICK, this);
|
||||||
|
m_popup.appendChild(m_reportsAll);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (documentCount == 0 && reportCount == 0 && allReports == 0)
|
||||||
|
m_popup.appendChild(new Menuitem(Msg.getMsg(Env.getCtx(), "ArchivedNone")));
|
||||||
|
//
|
||||||
|
|
||||||
|
m_popup.setPage(invoker.getPage());
|
||||||
|
m_popup.open(invoker);
|
||||||
|
} // getZoomTargets
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listner
|
||||||
|
* @param e event
|
||||||
|
*/
|
||||||
|
public void onEvent(Event e) throws Exception
|
||||||
|
{
|
||||||
|
if (e.getTarget() instanceof Menuitem)
|
||||||
|
{
|
||||||
|
int AD_Form_ID = 118; // ArchiveViewer
|
||||||
|
Window form = ADForm.openForm(AD_Form_ID);
|
||||||
|
|
||||||
|
WArchiveViewer av = (WArchiveViewer) form;
|
||||||
|
if (e.getTarget() == m_documents)
|
||||||
|
av.query(false, m_AD_Table_ID, m_Record_ID);
|
||||||
|
else if (e.getTarget() == m_reports)
|
||||||
|
av.query(true, m_AD_Table_ID, m_Record_ID);
|
||||||
|
else // all Reports
|
||||||
|
av.query(true, m_AD_Table_ID, 0);
|
||||||
|
|
||||||
|
SessionManager.getAppDesktop().showWindowInTabPanel(form);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -971,15 +971,7 @@ public class WAcctViewer extends Window implements EventListener
|
||||||
Listhead listhead = table.getListhead();
|
Listhead listhead = table.getListhead();
|
||||||
|
|
||||||
// remove existing column header
|
// remove existing column header
|
||||||
for (int i = listhead.getChildren().size() - 1; i >= 0; i--)
|
listhead.getChildren().clear();
|
||||||
{
|
|
||||||
Object o = listhead.getChildren().get(i);
|
|
||||||
if(o instanceof Listheader)
|
|
||||||
{
|
|
||||||
Listheader listheader = (Listheader) o;
|
|
||||||
listhead.removeChild(listheader);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// add in new column header
|
// add in new column header
|
||||||
for (int i = 0; i < rmodel.getColumnCount(); i++)
|
for (int i = 0; i < rmodel.getColumnCount(); i++)
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import java.util.logging.Level;
|
||||||
import javax.sql.RowSet;
|
import javax.sql.RowSet;
|
||||||
|
|
||||||
import org.adempiere.webui.component.Listbox;
|
import org.adempiere.webui.component.Listbox;
|
||||||
import org.adempiere.webui.component.Window;
|
|
||||||
import org.adempiere.webui.window.FDialog;
|
import org.adempiere.webui.window.FDialog;
|
||||||
import org.compiere.apps.ProcessCtl;
|
import org.compiere.apps.ProcessCtl;
|
||||||
import org.compiere.model.MQuery;
|
import org.compiere.model.MQuery;
|
||||||
|
|
@ -35,14 +34,15 @@ import org.compiere.print.MPrintFormat;
|
||||||
import org.compiere.print.ReportCtl;
|
import org.compiere.print.ReportCtl;
|
||||||
import org.compiere.print.ReportEngine;
|
import org.compiere.print.ReportEngine;
|
||||||
import org.compiere.process.ProcessInfo;
|
import org.compiere.process.ProcessInfo;
|
||||||
import org.compiere.util.ASyncProcess;
|
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.KeyNamePair;
|
import org.compiere.util.KeyNamePair;
|
||||||
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zul.ListModelList;
|
import org.zkoss.zul.Menuitem;
|
||||||
|
import org.zkoss.zul.Menupopup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base on org.compiere.print.AReport
|
* Base on org.compiere.print.AReport
|
||||||
|
|
@ -72,7 +72,7 @@ public class WReport implements EventListener {
|
||||||
* @param parent The invoking parent window
|
* @param parent The invoking parent window
|
||||||
* @param WindowNo The invoking parent window number
|
* @param WindowNo The invoking parent window number
|
||||||
*/
|
*/
|
||||||
public WReport (int AD_Table_ID, MQuery query, ASyncProcess parent,
|
public WReport (int AD_Table_ID, MQuery query, Component parent,
|
||||||
int WindowNo)
|
int WindowNo)
|
||||||
{
|
{
|
||||||
log.config("AD_Table_ID=" + AD_Table_ID + " " + query);
|
log.config("AD_Table_ID=" + AD_Table_ID + " " + query);
|
||||||
|
|
@ -94,13 +94,13 @@ public class WReport implements EventListener {
|
||||||
private MQuery m_query;
|
private MQuery m_query;
|
||||||
/** The Popup */
|
/** The Popup */
|
||||||
private Listbox m_listbox;
|
private Listbox m_listbox;
|
||||||
private Window m_popup;
|
private Menupopup m_popup;
|
||||||
/** The Option List */
|
/** The Option List */
|
||||||
private ArrayList<KeyNamePair> m_list = new ArrayList<KeyNamePair>();
|
private ArrayList<KeyNamePair> m_list = new ArrayList<KeyNamePair>();
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(AReport.class);
|
private static CLogger log = CLogger.getCLogger(AReport.class);
|
||||||
/** The parent window for locking/unlocking during process execution */
|
/** The parent window for locking/unlocking during process execution */
|
||||||
ASyncProcess parent;
|
Component parent;
|
||||||
/** The parent window number */
|
/** The parent window number */
|
||||||
int WindowNo;
|
int WindowNo;
|
||||||
|
|
||||||
|
|
@ -148,17 +148,17 @@ public class WReport implements EventListener {
|
||||||
} // getPrintFormats
|
} // getPrintFormats
|
||||||
|
|
||||||
private void showPopup() {
|
private void showPopup() {
|
||||||
m_listbox = new Listbox();
|
m_popup = new Menupopup();
|
||||||
m_listbox.setModel(ListModelList.instance(m_list));
|
for(int i = 0; i < m_list.size(); i++)
|
||||||
m_listbox.addEventListener(Events.ON_SELECT, this);
|
{
|
||||||
m_listbox.setHeight("300px");
|
KeyNamePair pp = (KeyNamePair) m_list.get(i);
|
||||||
m_popup = new Window();
|
Menuitem menuitem = new Menuitem(pp.getName());
|
||||||
m_popup.setTitle("Select Report");
|
menuitem.setValue(i + "");
|
||||||
m_popup.appendChild(m_listbox);
|
menuitem.addEventListener(Events.ON_CLICK, this);
|
||||||
m_popup.setAttribute("mode", "popup");
|
m_popup.appendChild(menuitem);
|
||||||
m_popup.setWidth("200px");
|
}
|
||||||
m_popup.setPosition("center");
|
m_popup.setPage(parent.getPage());
|
||||||
AEnv.showWindow(m_popup);
|
m_popup.open(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -213,7 +213,7 @@ public class WReport implements EventListener {
|
||||||
ProcessInfo pi = new ProcessInfo ("", pf.getJasperProcess_ID());
|
ProcessInfo pi = new ProcessInfo ("", pf.getJasperProcess_ID());
|
||||||
|
|
||||||
// Execute Process
|
// Execute Process
|
||||||
ProcessCtl worker = ProcessCtl.process(parent, WindowNo, pi, null);
|
ProcessCtl worker = ProcessCtl.process(null, WindowNo, pi, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -238,14 +238,10 @@ public class WReport implements EventListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEvent(Event event) {
|
public void onEvent(Event event) {
|
||||||
if (event.getTarget() == m_listbox) {
|
if(event.getTarget() instanceof Menuitem)
|
||||||
int i = m_listbox.getSelectedIndex();
|
{
|
||||||
if (i >= 0 ) {
|
Menuitem mi = (Menuitem) event.getTarget();
|
||||||
KeyNamePair pp = (KeyNamePair)m_list.get(i);
|
launchReport(m_list.get(Integer.parseInt(mi.getValue().toString())));
|
||||||
m_popup.setVisible(false);
|
|
||||||
m_popup.detach();
|
|
||||||
launchReport (pp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,20 +28,21 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
import org.adempiere.webui.component.Checkbox;
|
import org.adempiere.webui.component.Checkbox;
|
||||||
import org.adempiere.webui.component.ConfirmPanel;
|
|
||||||
import org.adempiere.webui.component.Datebox;
|
import org.adempiere.webui.component.Datebox;
|
||||||
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
import org.adempiere.webui.component.ListItem;
|
import org.adempiere.webui.component.ListItem;
|
||||||
import org.adempiere.webui.component.Listbox;
|
import org.adempiere.webui.component.Listbox;
|
||||||
|
import org.adempiere.webui.component.Row;
|
||||||
|
import org.adempiere.webui.component.Rows;
|
||||||
import org.adempiere.webui.component.Tab;
|
import org.adempiere.webui.component.Tab;
|
||||||
import org.adempiere.webui.component.Tabbox;
|
import org.adempiere.webui.component.Tabbox;
|
||||||
import org.adempiere.webui.component.Tabpanel;
|
import org.adempiere.webui.component.Tabpanel;
|
||||||
import org.adempiere.webui.component.Tabpanels;
|
import org.adempiere.webui.component.Tabpanels;
|
||||||
import org.adempiere.webui.component.Tabs;
|
import org.adempiere.webui.component.Tabs;
|
||||||
import org.adempiere.webui.component.Textbox;
|
import org.adempiere.webui.component.Textbox;
|
||||||
import org.adempiere.webui.component.VerticalBox;
|
import org.adempiere.webui.component.WConfirmPanel;
|
||||||
import org.adempiere.webui.editor.WEditor;
|
import org.adempiere.webui.editor.WSearchEditor;
|
||||||
import org.adempiere.webui.editor.WTableDirEditor;
|
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
import org.adempiere.webui.event.ValueChangeListener;
|
import org.adempiere.webui.event.ValueChangeListener;
|
||||||
import org.adempiere.webui.panel.ADForm;
|
import org.adempiere.webui.panel.ADForm;
|
||||||
|
|
@ -62,9 +63,9 @@ import org.zkoss.util.media.AMedia;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Hbox;
|
import org.zkoss.zul.Hbox;
|
||||||
import org.zkoss.zul.Iframe;
|
import org.zkoss.zul.Iframe;
|
||||||
import org.zkoss.zul.Separator;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Archive Viewer
|
* Archive Viewer
|
||||||
|
|
@ -96,14 +97,14 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
private static CLogger log = CLogger.getCLogger(WArchiveViewer.class);
|
private static CLogger log = CLogger.getCLogger(WArchiveViewer.class);
|
||||||
|
|
||||||
|
|
||||||
private VerticalBox queryPanel = new VerticalBox();
|
// private Vbox queryPanel = new Vbox();
|
||||||
private Checkbox reportField = new Checkbox();
|
private Checkbox reportField = new Checkbox();
|
||||||
private Label processLabel = new Label(Msg.translate(Env.getCtx(), "AD_Process_ID"));
|
private Label processLabel = new Label(Msg.translate(Env.getCtx(), "AD_Process_ID"));
|
||||||
private Listbox processField = new Listbox();
|
private Listbox processField = new Listbox();
|
||||||
private Label tableLabel = new Label(Msg.translate(Env.getCtx(), "AD_Table_ID"));
|
private Label tableLabel = new Label(Msg.translate(Env.getCtx(), "AD_Table_ID"));
|
||||||
private Listbox tableField = new Listbox();
|
private Listbox tableField = new Listbox();
|
||||||
private Label bPartnerLabel = new Label(Msg.translate(Env.getCtx(), "C_BPartner_ID"));
|
private Label bPartnerLabel = new Label(Msg.translate(Env.getCtx(), "C_BPartner_ID"));
|
||||||
private WEditor bPartnerField = null;
|
private WSearchEditor bPartnerField = null;
|
||||||
private Label nameQLabel = new Label(Msg.translate(Env.getCtx(), "Name"));
|
private Label nameQLabel = new Label(Msg.translate(Env.getCtx(), "Name"));
|
||||||
private Textbox nameQField = new Textbox();
|
private Textbox nameQField = new Textbox();
|
||||||
private Label descriptionQLabel = new Label(Msg.translate(Env.getCtx(), "Description"));
|
private Label descriptionQLabel = new Label(Msg.translate(Env.getCtx(), "Description"));
|
||||||
|
|
@ -116,7 +117,7 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
private Datebox createdQFrom = new Datebox();
|
private Datebox createdQFrom = new Datebox();
|
||||||
private Datebox createdQTo = new Datebox();
|
private Datebox createdQTo = new Datebox();
|
||||||
|
|
||||||
private VerticalBox viewEnterPanel = new VerticalBox();
|
// private Vbox viewEnterPanel = new Vbox();
|
||||||
private Button bBack = new Button();
|
private Button bBack = new Button();
|
||||||
private Button bNext = new Button();
|
private Button bNext = new Button();
|
||||||
private Label positionInfo = new Label(".");
|
private Label positionInfo = new Label(".");
|
||||||
|
|
@ -125,12 +126,12 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
private Datebox createdField = new Datebox();
|
private Datebox createdField = new Datebox();
|
||||||
|
|
||||||
private Label nameLabel = new Label(Msg.translate(Env.getCtx(), "Name"));
|
private Label nameLabel = new Label(Msg.translate(Env.getCtx(), "Name"));
|
||||||
private Textbox nameField = new Textbox("Name");
|
private Textbox nameField = new Textbox();
|
||||||
private Label descriptionLabel = new Label(Msg.translate(Env.getCtx(), "Description"));
|
private Label descriptionLabel = new Label(Msg.translate(Env.getCtx(), "Description"));
|
||||||
private Textbox descriptionField = new Textbox("Description");
|
private Textbox descriptionField = new Textbox();
|
||||||
private Label helpLabel = new Label(Msg.translate(Env.getCtx(), "Help"));
|
private Label helpLabel = new Label(Msg.translate(Env.getCtx(), "Help"));
|
||||||
private Textbox helpField = new Textbox("Help");
|
private Textbox helpField = new Textbox();
|
||||||
private ConfirmPanel confirmPanel = new ConfirmPanel(true);
|
private WConfirmPanel confirmPanel = new WConfirmPanel(true);
|
||||||
private Button updateArchive = new Button();
|
private Button updateArchive = new Button();
|
||||||
|
|
||||||
private Tabbox tabbox = new Tabbox();
|
private Tabbox tabbox = new Tabbox();
|
||||||
|
|
@ -138,6 +139,7 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
private Tabpanels tabpanels = new Tabpanels();
|
private Tabpanels tabpanels = new Tabpanels();
|
||||||
|
|
||||||
private Iframe iframe = new Iframe();
|
private Iframe iframe = new Iframe();
|
||||||
|
private Button bRefresh = new Button();
|
||||||
|
|
||||||
public WArchiveViewer()
|
public WArchiveViewer()
|
||||||
{
|
{
|
||||||
|
|
@ -232,17 +234,16 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
MLookup lookup = MLookupFactory.get(Env.getCtx(), m_WindowNo,
|
MLookup lookup = MLookupFactory.get(Env.getCtx(), m_WindowNo,
|
||||||
0, 2762, DisplayType.Search);
|
0, 2762, DisplayType.Search);
|
||||||
|
|
||||||
bPartnerField = new WTableDirEditor(lookup, Msg.translate(
|
bPartnerField = new WSearchEditor(lookup, Msg.translate(
|
||||||
Env.getCtx(), "C_BPartner_ID"), "", true, false, true);
|
Env.getCtx(), "C_BPartner_ID"), "", true, false, true);
|
||||||
|
|
||||||
bPartnerField.addValueChangeListner(this);
|
bPartnerField.addValueChangeListner(this);
|
||||||
} // dynInit
|
} // dynInit
|
||||||
|
|
||||||
private void reportViewer(byte[] data)
|
private void reportViewer(byte[] data)
|
||||||
{
|
{
|
||||||
|
|
||||||
AMedia media = new AMedia("Archive Viewer", "pdf", "application/pdf", data);
|
AMedia media = new AMedia("Archive Viewer", "pdf", "application/pdf", data);
|
||||||
iframe.setContent(media);
|
iframe.setContent(media);
|
||||||
|
iframe.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -253,8 +254,10 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
private void jbInit() throws Exception
|
private void jbInit() throws Exception
|
||||||
{
|
{
|
||||||
tabbox.setWidth("100%");
|
tabbox.setWidth("100%");
|
||||||
|
tabbox.setHeight("90%");
|
||||||
tabbox.appendChild(tabs);
|
tabbox.appendChild(tabs);
|
||||||
tabbox.appendChild(tabpanels);
|
tabbox.appendChild(tabpanels);
|
||||||
|
tabbox.addEventListener(Events.ON_SELECT, this);
|
||||||
|
|
||||||
processField.setMold("select");
|
processField.setMold("select");
|
||||||
processField.setRows(1);
|
processField.setRows(1);
|
||||||
|
|
@ -265,130 +268,226 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
createdByQField.setMold("select");
|
createdByQField.setMold("select");
|
||||||
createdByQField.setRows(1);
|
createdByQField.setRows(1);
|
||||||
|
|
||||||
|
updateArchive.setImage("/images/Ok24.gif");
|
||||||
|
updateArchive.setTooltiptext("Save Archive");
|
||||||
|
updateArchive.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
|
bRefresh.setImage("/images/Refresh24.gif");
|
||||||
|
bRefresh.setTooltiptext("Refresh");
|
||||||
|
bRefresh.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
|
bBack.setImage("/images/Parent24.gif");
|
||||||
|
bBack.setTooltiptext("Back");
|
||||||
|
bBack.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
|
bNext.setImage("/images/Detail24.gif");
|
||||||
|
bNext.setTooltiptext("Next");
|
||||||
|
bNext.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
nameField.addEventListener(Events.ON_CHANGE, this);
|
nameField.addEventListener(Events.ON_CHANGE, this);
|
||||||
descriptionField.addEventListener(Events.ON_SELECT, this);
|
descriptionField.addEventListener(Events.ON_SELECT, this);
|
||||||
helpField.addEventListener(Events.ON_SELECT, this);
|
helpField.addEventListener(Events.ON_SELECT, this);
|
||||||
updateArchive.addEventListener(Events.ON_CLICK, this);
|
|
||||||
|
|
||||||
reportField.setLabel(Msg.translate(Env.getCtx(), "IsReport"));
|
reportField.setLabel(Msg.translate(Env.getCtx(), "IsReport"));
|
||||||
reportField.addEventListener(Events.ON_CLICK, this);
|
reportField.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
Hbox boxProcess = new Hbox();
|
Grid gridQuery = new Grid();
|
||||||
boxProcess.setWidth("100%");
|
gridQuery.setWidth("500px");
|
||||||
boxProcess.setWidth("30%, 70%");
|
gridQuery.setStyle("margin:0; padding:0;");
|
||||||
boxProcess.appendChild(processLabel);
|
gridQuery.setSclass("grid-no-striped");
|
||||||
boxProcess.appendChild(processField);
|
gridQuery.setOddRowSclass("even");
|
||||||
|
|
||||||
Hbox boxBPartner = new Hbox();
|
Rows rows = new Rows();
|
||||||
boxBPartner.setWidth("100%");
|
gridQuery.appendChild(rows);
|
||||||
boxBPartner.setWidths("30%, 70%");
|
|
||||||
boxBPartner.appendChild(bPartnerLabel);
|
|
||||||
boxBPartner.appendChild(bPartnerField.getComponent());
|
|
||||||
|
|
||||||
Hbox boxTable = new Hbox();
|
Row row = new Row();
|
||||||
boxTable.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxTable.setWidths("30%, 70%");
|
row.setSpans("3");
|
||||||
boxTable.appendChild(tableLabel);
|
row.setAlign("right");
|
||||||
boxTable.appendChild(tableField);
|
row.appendChild(reportField);
|
||||||
|
|
||||||
Hbox boxNameQ = new Hbox();
|
row = new Row();
|
||||||
boxNameQ.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxNameQ.setWidths("30%, 70%");
|
row.setSpans("1, 2");
|
||||||
boxNameQ.appendChild(nameQLabel);
|
Div div = new Div();
|
||||||
boxNameQ.appendChild(nameQField);
|
div.setAlign("right");
|
||||||
|
div.appendChild(processLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(processField);
|
||||||
|
processField.setWidth("100%");
|
||||||
|
|
||||||
Hbox boxDescritionQ = new Hbox();
|
row = new Row();
|
||||||
boxDescritionQ.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxDescritionQ.setWidths("30%, 70%");
|
row.setSpans("1, 2");
|
||||||
boxDescritionQ.appendChild(descriptionQLabel);
|
div = new Div();
|
||||||
boxDescritionQ.appendChild(descriptionQField);
|
div.setAlign("right");
|
||||||
|
div.appendChild(bPartnerLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(bPartnerField.getComponent());
|
||||||
|
|
||||||
Hbox boxHelpQ = new Hbox();
|
row = new Row();
|
||||||
boxHelpQ.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxHelpQ.setWidths("30%, 70%");
|
row.setSpans("1, 2");
|
||||||
boxHelpQ.appendChild(helpQLabel);
|
div = new Div();
|
||||||
boxHelpQ.appendChild(helpQField);
|
div.setAlign("right");
|
||||||
|
div.appendChild(tableLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(tableField);
|
||||||
|
tableField.setWidth("100%");
|
||||||
|
|
||||||
Hbox boxCreatedBy = new Hbox();
|
row = new Row();
|
||||||
boxCreatedBy.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxCreatedBy.setWidths("30%, 70%");
|
row.setSpans("1, 2");
|
||||||
boxCreatedBy.appendChild(createdByQLabel);
|
div = new Div();
|
||||||
boxCreatedBy.appendChild(createdByQField);
|
div.setAlign("right");
|
||||||
|
div.appendChild(nameQLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(nameQField);
|
||||||
|
nameQField.setWidth("100%");
|
||||||
|
|
||||||
Hbox boxCreatedQ = new Hbox();
|
row = new Row();
|
||||||
boxCreatedQ.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxCreatedQ.setWidths("30%, 35%, 35%");
|
row.setSpans("1, 2");
|
||||||
boxCreatedQ.appendChild(createdQLabel);
|
div = new Div();
|
||||||
boxCreatedQ.appendChild(createdQFrom);
|
div.setAlign("right");
|
||||||
boxCreatedQ.appendChild(createdQTo);
|
div.appendChild(descriptionQLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(descriptionQField);
|
||||||
|
descriptionQField.setWidth("100%");
|
||||||
|
|
||||||
queryPanel.setWidth("50%");
|
row = new Row();
|
||||||
queryPanel.appendChild(reportField);
|
rows.appendChild(row);
|
||||||
queryPanel.appendChild(boxProcess);
|
row.setSpans("1, 2");
|
||||||
queryPanel.appendChild(boxBPartner);
|
div = new Div();
|
||||||
queryPanel.appendChild(boxTable);
|
div.setAlign("right");
|
||||||
queryPanel.appendChild(boxNameQ);
|
div.appendChild(helpQLabel);
|
||||||
queryPanel.appendChild(boxDescritionQ);
|
row.appendChild(div);
|
||||||
queryPanel.appendChild(boxHelpQ);
|
row.appendChild(helpQField);
|
||||||
queryPanel.appendChild(boxCreatedBy);
|
helpQField.setWidth("100%");
|
||||||
queryPanel.appendChild(boxCreatedQ);
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("1, 2");
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(createdByQLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(createdByQField);
|
||||||
|
createdByQField.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(createdQLabel);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(createdQFrom);
|
||||||
|
createdQFrom.setWidth("100%");
|
||||||
|
row.appendChild(createdQTo);
|
||||||
|
createdQTo.setWidth("100%");
|
||||||
|
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("center");
|
||||||
|
div.appendChild(gridQuery);
|
||||||
|
|
||||||
Tabpanel tabQueryPanel = new Tabpanel();
|
Tabpanel tabQueryPanel = new Tabpanel();
|
||||||
tabQueryPanel.appendChild(queryPanel);
|
tabQueryPanel.appendChild(div);
|
||||||
|
|
||||||
Tab tabQuery = new Tab("Query");
|
Tab tabQuery = new Tab("Query");
|
||||||
|
|
||||||
tabpanels.appendChild(tabQueryPanel);
|
tabpanels.appendChild(tabQueryPanel);
|
||||||
tabs.appendChild(tabQuery);
|
tabs.appendChild(tabQuery);
|
||||||
|
|
||||||
bBack.addEventListener(Events.ON_CLICK, this);
|
Grid gridView = new Grid();
|
||||||
bNext.addEventListener(Events.ON_CLICK, this);
|
gridView.setStyle("margin:0; padding:0;");
|
||||||
|
gridView.setSclass("grid-no-striped");
|
||||||
|
gridView.setOddRowSclass("even");
|
||||||
|
|
||||||
Hbox boxViewEnter = new Hbox();
|
rows = new Rows();
|
||||||
|
gridView.appendChild(rows);
|
||||||
|
|
||||||
bBack.setImage("/images/Parent24.gif");
|
row = new Row();
|
||||||
bNext.setImage("/images/Detail24.gif");
|
rows.appendChild(row);
|
||||||
|
row.setSpans("1, 2, 1");
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("left");
|
||||||
|
div.appendChild(bBack);
|
||||||
|
row.appendChild(div);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("center");
|
||||||
|
div.appendChild(positionInfo);
|
||||||
|
row.appendChild(div);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(bNext);
|
||||||
|
row.appendChild(div);
|
||||||
|
|
||||||
boxViewEnter.setWidth("100%");
|
row = new Row();
|
||||||
boxViewEnter.setWidths("10%, 80%, 10%");
|
rows.appendChild(row);
|
||||||
boxViewEnter.appendChild(bBack);
|
row.setSpans("4");
|
||||||
boxViewEnter.appendChild(positionInfo);
|
row.appendChild(createdByLabel);
|
||||||
boxViewEnter.appendChild(bNext);
|
createdByLabel.setWidth("100%");
|
||||||
|
|
||||||
Hbox boxCreatedByV = new Hbox();
|
row = new Row();
|
||||||
boxCreatedByV.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxCreatedByV.setWidths("30%, 50%, 20%");
|
row.setSpans("4");
|
||||||
boxCreatedByV.appendChild(createdByLabel);
|
row.appendChild(createdByField);
|
||||||
boxCreatedByV.appendChild(createdByField);
|
createdByField.setWidth("100%");
|
||||||
boxCreatedByV.appendChild(createdField);
|
|
||||||
|
|
||||||
Hbox boxName = new Hbox();
|
row = new Row();
|
||||||
boxName.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxName.setWidths("40%, 60%");
|
row.setSpans("4");
|
||||||
boxName.appendChild(nameLabel);
|
div = new Div();
|
||||||
boxName.appendChild(nameField);
|
div.setAlign("right");
|
||||||
|
div.appendChild(createdField);
|
||||||
|
row.appendChild(div);
|
||||||
|
|
||||||
Hbox boxDescription = new Hbox();
|
row = new Row();
|
||||||
boxDescription.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxDescription.setWidths("40%, 60%");
|
row.setSpans("4");
|
||||||
boxDescription.appendChild(descriptionLabel);
|
row.appendChild(nameLabel);
|
||||||
boxDescription.appendChild(descriptionField);
|
nameLabel.setWidth("100%");
|
||||||
|
|
||||||
Hbox boxHelp = new Hbox();
|
row = new Row();
|
||||||
boxHelp.setWidth("100%");
|
rows.appendChild(row);
|
||||||
boxHelp.setWidths("40%, 60%");
|
row.setSpans("4");
|
||||||
boxHelp.appendChild(helpLabel);
|
row.appendChild(nameField);
|
||||||
boxHelp.appendChild(helpField);
|
nameField.setWidth("100%");
|
||||||
|
|
||||||
updateArchive.setImage("/images/Ok24.gif");
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("4");
|
||||||
|
row.appendChild(descriptionLabel);
|
||||||
|
descriptionLabel.setWidth("100%");
|
||||||
|
|
||||||
viewEnterPanel.setWidth("100%");
|
row = new Row();
|
||||||
viewEnterPanel.appendChild(boxViewEnter);
|
rows.appendChild(row);
|
||||||
viewEnterPanel.appendChild(boxCreatedByV);
|
row.setSpans("4");
|
||||||
viewEnterPanel.appendChild(boxName);
|
row.appendChild(descriptionField);
|
||||||
viewEnterPanel.appendChild(boxDescription);
|
descriptionField.setRows(3);
|
||||||
viewEnterPanel.appendChild(boxHelp);
|
descriptionField.setWidth("100%");
|
||||||
viewEnterPanel.appendChild(updateArchive);
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("4");
|
||||||
|
row.appendChild(helpLabel);
|
||||||
|
helpLabel.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("4");
|
||||||
|
row.appendChild(helpField);
|
||||||
|
helpField.setRows(3);
|
||||||
|
helpField.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("4");
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(bRefresh);
|
||||||
|
div.appendChild(updateArchive);
|
||||||
|
row.appendChild(div);
|
||||||
|
|
||||||
createdByField.setEnabled(false);
|
createdByField.setEnabled(false);
|
||||||
createdField.setEnabled(false);
|
createdField.setEnabled(false);
|
||||||
|
|
@ -398,24 +497,28 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
Tabpanel tabViewPanel = new Tabpanel();
|
Tabpanel tabViewPanel = new Tabpanel();
|
||||||
Hbox boxViewSeparator = new Hbox();
|
Hbox boxViewSeparator = new Hbox();
|
||||||
boxViewSeparator.setWidth("100%");
|
boxViewSeparator.setWidth("100%");
|
||||||
boxViewSeparator.setWidths("50%, 50%");
|
boxViewSeparator.setHeight("100%");
|
||||||
|
boxViewSeparator.setWidths("70%, 30%");
|
||||||
boxViewSeparator.appendChild(iframe);
|
boxViewSeparator.appendChild(iframe);
|
||||||
boxViewSeparator.appendChild(viewEnterPanel);
|
boxViewSeparator.appendChild(gridView);
|
||||||
tabViewPanel.appendChild(boxViewSeparator);
|
tabViewPanel.appendChild(boxViewSeparator);
|
||||||
|
|
||||||
tabs.appendChild(tabView);
|
tabs.appendChild(tabView);
|
||||||
tabpanels.appendChild(tabViewPanel);
|
tabpanels.appendChild(tabViewPanel);
|
||||||
|
|
||||||
confirmPanel.addActionListener(Events.ON_CLICK, this);
|
confirmPanel.addEventListener(this);
|
||||||
updateQDisplay();
|
updateQDisplay();
|
||||||
|
|
||||||
iframe.setId("reportFrame");
|
iframe.setId("reportFrame");
|
||||||
iframe.setHeight("100%");
|
int height = Double.valueOf(SessionManager.getAppDesktop().getClientInfo().desktopHeight * 0.8).intValue();
|
||||||
|
height = height - 50;
|
||||||
|
iframe.setHeight(height + "px");
|
||||||
iframe.setWidth("100%");
|
iframe.setWidth("100%");
|
||||||
|
iframe.setAutohide(true);
|
||||||
|
|
||||||
this.setWidth("900px");
|
this.setWidth("100%");
|
||||||
|
this.setHeight("100%");
|
||||||
this.appendChild(tabbox);
|
this.appendChild(tabbox);
|
||||||
this.appendChild(new Separator());
|
|
||||||
this.appendChild(confirmPanel);
|
this.appendChild(confirmPanel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -425,9 +528,9 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
|
|
||||||
if (e.getTarget() == updateArchive)
|
if (e.getTarget() == updateArchive)
|
||||||
cmd_updateArchive();
|
cmd_updateArchive();
|
||||||
else if (confirmPanel.getButton("Cancel").equals(e.getTarget()))
|
else if (e.getName().equals(WConfirmPanel.A_CANCEL))
|
||||||
SessionManager.getAppDesktop().removeWindow();
|
SessionManager.getAppDesktop().removeWindow();
|
||||||
else if (confirmPanel.getButton("Ok").equals(e.getTarget()))
|
else if (e.getName().equals(WConfirmPanel.A_OK))
|
||||||
{
|
{
|
||||||
if (tabbox.getSelectedIndex() == 1)
|
if (tabbox.getSelectedIndex() == 1)
|
||||||
SessionManager.getAppDesktop().removeWindow();
|
SessionManager.getAppDesktop().removeWindow();
|
||||||
|
|
@ -440,6 +543,13 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
updateVDisplay(false);
|
updateVDisplay(false);
|
||||||
else if (e.getTarget() == bNext)
|
else if (e.getTarget() == bNext)
|
||||||
updateVDisplay(true);
|
updateVDisplay(true);
|
||||||
|
else if (e.getTarget() == bRefresh)
|
||||||
|
iframe.invalidate();
|
||||||
|
else if (e.getTarget() instanceof Tab)
|
||||||
|
{
|
||||||
|
if(tabbox.getSelectedIndex() == 1)
|
||||||
|
iframe.invalidate();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void valueChange(ValueChangeEvent evt)
|
public void valueChange(ValueChangeEvent evt)
|
||||||
|
|
@ -758,7 +868,8 @@ public class WArchiveViewer extends ADForm implements EventListener, ValueChange
|
||||||
log.info("Length=" + m_archives.length);
|
log.info("Length=" + m_archives.length);
|
||||||
|
|
||||||
// Display
|
// Display
|
||||||
//this.setSelectedIndex(1);
|
tabbox.setSelectedIndex(1);
|
||||||
|
|
||||||
m_index = 1;
|
m_index = 1;
|
||||||
updateVDisplay(false);
|
updateVDisplay(false);
|
||||||
} // cmd_query
|
} // cmd_query
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package org.adempiere.webui.apps.graph;
|
package org.adempiere.webui.apps.graph;
|
||||||
|
|
||||||
import org.adempiere.webui.Desktop;
|
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.compiere.model.MGoal;
|
import org.compiere.model.MGoal;
|
||||||
|
|
@ -29,6 +28,6 @@ public class WPerformanceDetail extends Window
|
||||||
WBarGraph barPanel = new WBarGraph(goal);
|
WBarGraph barPanel = new WBarGraph(goal);
|
||||||
appendChild(barPanel);
|
appendChild(barPanel);
|
||||||
|
|
||||||
((Desktop) SessionManager.getAppDesktop()).addWindow2TabPanel(this);
|
SessionManager.getAppDesktop().showWindowInTabPanel(this);
|
||||||
} // PerformanceDetail
|
} // PerformanceDetail
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
import org.adempiere.webui.component.ComboItem;
|
|
||||||
import org.adempiere.webui.component.Combobox;
|
import org.adempiere.webui.component.Combobox;
|
||||||
import org.adempiere.webui.component.Grid;
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
|
|
@ -40,6 +39,7 @@ import org.zkoss.zk.ui.event.Events;
|
||||||
import org.zkoss.zkex.zul.Borderlayout;
|
import org.zkoss.zkex.zul.Borderlayout;
|
||||||
import org.zkoss.zkex.zul.Center;
|
import org.zkoss.zkex.zul.Center;
|
||||||
import org.zkoss.zkex.zul.South;
|
import org.zkoss.zkex.zul.South;
|
||||||
|
import org.zkoss.zul.Comboitem;
|
||||||
import org.zkoss.zul.Div;
|
import org.zkoss.zul.Div;
|
||||||
import org.zkoss.zul.Hbox;
|
import org.zkoss.zul.Hbox;
|
||||||
|
|
||||||
|
|
@ -444,8 +444,8 @@ public class WWFActivity extends ADForm implements EventListener
|
||||||
ValueNamePair[] values = MRefList.getList(Env.getCtx(), 319, false); // _YesNo
|
ValueNamePair[] values = MRefList.getList(Env.getCtx(), 319, false); // _YesNo
|
||||||
for(int i = 0; i < values.length; i++)
|
for(int i = 0; i < values.length; i++)
|
||||||
{
|
{
|
||||||
ComboItem item = new ComboItem(values[i].getName(), values[i].getValue());
|
Comboitem ci = fAnswerList.appendItem(values[i].getName());
|
||||||
fAnswerList.appendChild(item);
|
ci.setId(values[i].getValue());
|
||||||
}
|
}
|
||||||
// fAnswerList.setModel(new DefaultComboBoxModel(values));
|
// fAnswerList.setModel(new DefaultComboBoxModel(values));
|
||||||
fAnswerList.setVisible(true);
|
fAnswerList.setVisible(true);
|
||||||
|
|
@ -455,8 +455,8 @@ public class WWFActivity extends ADForm implements EventListener
|
||||||
ValueNamePair[] values = MRefList.getList(Env.getCtx(), m_column.getAD_Reference_Value_ID(), false);
|
ValueNamePair[] values = MRefList.getList(Env.getCtx(), m_column.getAD_Reference_Value_ID(), false);
|
||||||
for(int i = 0; i < values.length; i++)
|
for(int i = 0; i < values.length; i++)
|
||||||
{
|
{
|
||||||
ComboItem item = new ComboItem(values[i].getName(), values[i].getValue());
|
Comboitem ci = fAnswerList.appendItem(values[i].getName());
|
||||||
fAnswerList.appendChild(item);
|
ci.setId(values[i].getValue());
|
||||||
}
|
}
|
||||||
// fAnswerList.setModel(new DefaultComboBoxModel(values));
|
// fAnswerList.setModel(new DefaultComboBoxModel(values));
|
||||||
fAnswerList.setVisible(true);
|
fAnswerList.setVisible(true);
|
||||||
|
|
@ -649,8 +649,9 @@ public class WWFActivity extends ADForm implements EventListener
|
||||||
{
|
{
|
||||||
// ValueNamePair pp = (ValueNamePair)fAnswerList.getSelectedItem();
|
// ValueNamePair pp = (ValueNamePair)fAnswerList.getSelectedItem();
|
||||||
// value = pp.getValue();
|
// value = pp.getValue();
|
||||||
ComboItem item = fAnswerList.getSelectedItem();
|
int index = fAnswerList.getSelectedIndex();
|
||||||
value = (String) item.getValue();
|
if(index >= 0)
|
||||||
|
value = fAnswerList.getItemAtIndex(index).getId();
|
||||||
}
|
}
|
||||||
if (value == null || value.length() == 0)
|
if (value == null || value.length() == 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -268,6 +268,7 @@ public class CWindowToolbar extends FToolbar implements EventListener
|
||||||
btnActiveWorkflows.setDisabled(false); // Elaine 2008/07/17
|
btnActiveWorkflows.setDisabled(false); // Elaine 2008/07/17
|
||||||
btnRequests.setDisabled(false); // Elaine 2008/07/22
|
btnRequests.setDisabled(false); // Elaine 2008/07/22
|
||||||
btnProductInfo.setDisabled(false); // Elaine 2008/07/22
|
btnProductInfo.setDisabled(false); // Elaine 2008/07/22
|
||||||
|
btnArchive.setDisabled(false); // Elaine 2008/07/28
|
||||||
|
|
||||||
configureKeyMap();
|
configureKeyMap();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,13 +40,4 @@ public class Combobox extends org.zkoss.zul.Combobox
|
||||||
item.setParent(this);
|
item.setParent(this);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Elaine 2008/07/22
|
|
||||||
public ComboItem getSelectedItem()
|
|
||||||
{
|
|
||||||
Comboitem item = super.getSelectedItem();
|
|
||||||
if(item == null) return null;
|
|
||||||
return new ComboItem(item.getLabel(), (String) item.getValue());
|
|
||||||
}
|
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
@ -21,9 +21,8 @@ import java.beans.PropertyChangeListener;
|
||||||
import java.beans.PropertyChangeSupport;
|
import java.beans.PropertyChangeSupport;
|
||||||
|
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zul.Hbox;
|
|
||||||
|
|
||||||
public class Searchbox extends Hbox
|
public class Searchbox extends Panel//Hbox
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this);
|
private PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this);
|
||||||
|
|
@ -49,11 +48,13 @@ public class Searchbox extends Hbox
|
||||||
private void initComponents()
|
private void initComponents()
|
||||||
{
|
{
|
||||||
txt = new Textbox();
|
txt = new Textbox();
|
||||||
txt.setWidth("100%");
|
// txt.setWidth("100%");
|
||||||
btn = new Button();
|
btn = new Button();
|
||||||
btn.setHeight("98%");
|
btn.setHeight("98%");
|
||||||
appendChild(txt);
|
appendChild(txt);
|
||||||
appendChild(btn);
|
appendChild(btn);
|
||||||
|
|
||||||
|
this.setStyle("display: inline-block");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Textbox getTextBox()
|
public Textbox getTextBox()
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: Posterita Ajax UI *
|
||||||
|
* Copyright (C) 2007 Posterita Ltd. All Rights Reserved. *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* Posterita Ltd., 3, Draper Avenue, Quatre Bornes, Mauritius *
|
||||||
|
* or via info@posterita.org or http://www.posterita.org/ *
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
package org.adempiere.webui.component;
|
||||||
|
|
||||||
|
import java.beans.PropertyChangeListener;
|
||||||
|
import java.beans.PropertyChangeSupport;
|
||||||
|
|
||||||
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
|
|
||||||
|
public class Searchbox2 extends Bandbox
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private PropertyChangeSupport m_propertyChangeListeners = new PropertyChangeSupport(this);
|
||||||
|
// private Textbox txt;
|
||||||
|
// private Button btn;
|
||||||
|
|
||||||
|
public Searchbox2()
|
||||||
|
{
|
||||||
|
initComponents();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Searchbox2(String text)
|
||||||
|
{
|
||||||
|
initComponents();
|
||||||
|
setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setButtonImage(String imageSrc)
|
||||||
|
{
|
||||||
|
this.setImage(imageSrc);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initComponents()
|
||||||
|
{
|
||||||
|
// txt = new Textbox();
|
||||||
|
// txt.setWidth("100%");
|
||||||
|
// btn = new Button();
|
||||||
|
// btn.setHeight("98%");
|
||||||
|
// appendChild(txt);
|
||||||
|
// appendChild(btn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// public void setText(String value)
|
||||||
|
// {
|
||||||
|
// txt.setText(value);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public String getText()
|
||||||
|
// {
|
||||||
|
// return txt.getText();
|
||||||
|
// }
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled)
|
||||||
|
{
|
||||||
|
setReadonly(!enabled);
|
||||||
|
// txt.setReadonly(!enabled);
|
||||||
|
// btn.setEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled()
|
||||||
|
{
|
||||||
|
return !isReadonly();
|
||||||
|
// return txt.isReadonly();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean addEventListener(String evtnm, EventListener listener)
|
||||||
|
{
|
||||||
|
return super.addEventListener(evtnm, listener);
|
||||||
|
// if("onClick".equals(evtnm))
|
||||||
|
// {
|
||||||
|
// return btn.addEventListener(evtnm, listener);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// return txt.addEventListener(evtnm, listener);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
public synchronized void addPropertyChangeListener(PropertyChangeListener l)
|
||||||
|
{
|
||||||
|
m_propertyChangeListeners.addPropertyChangeListener(l);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -95,7 +95,9 @@ public class WDateEditor extends WEditor
|
||||||
@Override
|
@Override
|
||||||
public String getDisplay()
|
public String getDisplay()
|
||||||
{
|
{
|
||||||
return null;
|
// Elaine 2008/07/29
|
||||||
|
return getComponent().getText();
|
||||||
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,7 @@ public class WImageEditor extends WEditor
|
||||||
log.fine(m_mImage.toString());
|
log.fine(m_mImage.toString());
|
||||||
getComponent().setLabel(m_mImage.getName());
|
getComponent().setLabel(m_mImage.getName());
|
||||||
if (m_mImage.getDescription() != null)
|
if (m_mImage.getDescription() != null)
|
||||||
getComponent().setTooltip(m_mImage.getDescription());
|
getComponent().setTooltiptext(m_mImage.getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
popupMenu = new WEditorPopupMenu(true, true, true, true);
|
popupMenu = new WEditorPopupMenu(true, true, true, true);
|
||||||
|
|
||||||
(getComponent().getTextBox()).setContext(popupMenu.getId());
|
(getComponent().getTextBox()).setContext(popupMenu.getId());
|
||||||
|
// getComponent().setContext(popupMenu.getId());
|
||||||
|
|
||||||
if (columnName.equals("C_BPartner_ID"))
|
if (columnName.equals("C_BPartner_ID"))
|
||||||
{
|
{
|
||||||
|
|
@ -514,7 +515,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
// Result
|
// Result
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
log.config(gridField.getColumnName() + " - Result = " + result.toString() + " (" + result.getClass().getName() + ")");
|
// log.config(gridField.getColumnName() + " - Result = " + result.toString() + " (" + result.getClass().getName() + ")");
|
||||||
// make sure that value is in cache
|
// make sure that value is in cache
|
||||||
lookup.getDirect(result, false, true);
|
lookup.getDirect(result, false, true);
|
||||||
actionCombo (result); // data binding
|
actionCombo (result); // data binding
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ package org.adempiere.webui.panel;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.webui.WArchive;
|
||||||
import org.adempiere.webui.WRequest;
|
import org.adempiere.webui.WRequest;
|
||||||
import org.adempiere.webui.WZoomAcross;
|
import org.adempiere.webui.WZoomAcross;
|
||||||
import org.adempiere.webui.apps.AEnv;
|
import org.adempiere.webui.apps.AEnv;
|
||||||
|
|
@ -473,11 +474,11 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void find()
|
// private void find()
|
||||||
{
|
// {
|
||||||
MQuery mquery = new MQuery(curTab.getAD_Table_ID());
|
// MQuery mquery = new MQuery(curTab.getAD_Table_ID());
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void onEvent(Event event)
|
public void onEvent(Event event)
|
||||||
{
|
{
|
||||||
|
|
@ -1007,7 +1008,7 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
||||||
infoName, infoDisplay);
|
infoName, infoDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
new WReport (curTab.getAD_Table_ID(), query, null, curWindowNo);
|
new WReport (curTab.getAD_Table_ID(), query, toolbar.getEvent().getTarget(), curWindowNo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1075,6 +1076,19 @@ public abstract class AbstractADWindowPanel extends AbstractUIPart implements To
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// Elaine 2008/07/28
|
||||||
|
public void onArchive()
|
||||||
|
{
|
||||||
|
if (toolbar.getEvent() != null)
|
||||||
|
{
|
||||||
|
if (curTab.getRecord_ID() <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
new WArchive(toolbar.getEvent().getTarget(), curTab.getAD_Table_ID(), curTab.getRecord_ID());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Start Button Process
|
* Start Button Process
|
||||||
* @param vButton button
|
* @param vButton button
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,10 @@ import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
|
import org.adempiere.webui.component.Combobox;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
import org.adempiere.webui.component.ListCell;
|
import org.adempiere.webui.component.ListCell;
|
||||||
import org.adempiere.webui.component.ListHead;
|
import org.adempiere.webui.component.ListHead;
|
||||||
|
|
@ -45,6 +47,7 @@ import org.adempiere.webui.component.ToolBarButton;
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.editor.WEditor;
|
import org.adempiere.webui.editor.WEditor;
|
||||||
import org.adempiere.webui.editor.WNumberEditor;
|
import org.adempiere.webui.editor.WNumberEditor;
|
||||||
|
import org.adempiere.webui.editor.WSearchEditor;
|
||||||
import org.adempiere.webui.editor.WStringEditor;
|
import org.adempiere.webui.editor.WStringEditor;
|
||||||
import org.adempiere.webui.editor.WTableDirEditor;
|
import org.adempiere.webui.editor.WTableDirEditor;
|
||||||
import org.adempiere.webui.editor.WebEditorFactory;
|
import org.adempiere.webui.editor.WebEditorFactory;
|
||||||
|
|
@ -55,6 +58,7 @@ import org.compiere.model.GridField;
|
||||||
import org.compiere.model.MProduct;
|
import org.compiere.model.MProduct;
|
||||||
import org.compiere.model.MQuery;
|
import org.compiere.model.MQuery;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
|
import org.compiere.model.MUserQuery;
|
||||||
import org.compiere.model.X_AD_Column;
|
import org.compiere.model.X_AD_Column;
|
||||||
import org.compiere.util.AdempiereSystemError;
|
import org.compiere.util.AdempiereSystemError;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
|
|
@ -67,6 +71,7 @@ import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.EventListener;
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
import org.zkoss.zul.Comboitem;
|
||||||
import org.zkoss.zul.Hbox;
|
import org.zkoss.zul.Hbox;
|
||||||
import org.zkoss.zul.Vbox;
|
import org.zkoss.zul.Vbox;
|
||||||
|
|
||||||
|
|
@ -97,6 +102,8 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private Textbox fieldName;
|
private Textbox fieldName;
|
||||||
private Textbox fieldValue;
|
private Textbox fieldValue;
|
||||||
//
|
//
|
||||||
|
private Combobox fQueryName;
|
||||||
|
//
|
||||||
private Listbox advancedPanel;
|
private Listbox advancedPanel;
|
||||||
/** container of Simple Window contents */
|
/** container of Simple Window contents */
|
||||||
private Vbox contentSimple;
|
private Vbox contentSimple;
|
||||||
|
|
@ -125,7 +132,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private boolean hasName = false;
|
private boolean hasName = false;
|
||||||
private boolean hasDescription = false;
|
private boolean hasDescription = false;
|
||||||
/** Line in Simple Content */
|
/** Line in Simple Content */
|
||||||
private int sLine = 6;
|
// private int sLine = 6;
|
||||||
/** Value 2(to) */
|
/** Value 2(to) */
|
||||||
private boolean m_valueToColumn;
|
private boolean m_valueToColumn;
|
||||||
/** Between selected */
|
/** Between selected */
|
||||||
|
|
@ -141,6 +148,21 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
/** Length of Fields on first tab */
|
/** Length of Fields on first tab */
|
||||||
public static final int FIELDLENGTH = 20;
|
public static final int FIELDLENGTH = 20;
|
||||||
|
|
||||||
|
private int m_AD_Tab_ID = 1;
|
||||||
|
private MUserQuery[] userQueries;
|
||||||
|
|
||||||
|
/** Index ColumnName = 0 */
|
||||||
|
public static final int INDEX_COLUMNNAME = 0;
|
||||||
|
/** Index Operator = 1 */
|
||||||
|
public static final int INDEX_OPERATOR = 1;
|
||||||
|
/** Index Value = 2 */
|
||||||
|
public static final int INDEX_VALUE = 2;
|
||||||
|
/** Index Value2 = 3 */
|
||||||
|
public static final int INDEX_VALUE2 = 3;
|
||||||
|
|
||||||
|
private static final String FIELD_SEPARATOR = "<^>";
|
||||||
|
private static final String SEGMENT_SEPARATOR = "<~>";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FindPanel Constructor
|
* FindPanel Constructor
|
||||||
* @param targetWindowNo targetWindowNo
|
* @param targetWindowNo targetWindowNo
|
||||||
|
|
@ -171,15 +193,18 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
initPanel();
|
initPanel();
|
||||||
initFind();
|
initFind();
|
||||||
initFindAdvanced();
|
initFindAdvanced();
|
||||||
|
|
||||||
if (m_total < minRecords)
|
if (m_total < minRecords)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.setBorder("normal");
|
this.setBorder("normal");
|
||||||
this.setWidth("550px");
|
this.setWidth("700px");
|
||||||
this.setTitle(Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", "") + ": " + title);
|
this.setTitle(Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", "") + ": " + title);
|
||||||
this.setAttribute("mode", "modal");
|
this.setAttribute("modal", Boolean.TRUE);
|
||||||
|
// this.setAttribute("mode", "modal");
|
||||||
this.setClosable(true);
|
this.setClosable(true);
|
||||||
|
this.setSizable(true);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* initialise lookup record tab
|
* initialise lookup record tab
|
||||||
|
|
@ -300,6 +325,23 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
btnDelete.setSrc("/images/Delete24.gif");
|
btnDelete.setSrc("/images/Delete24.gif");
|
||||||
btnDelete.addEventListener(Events.ON_CLICK, this);
|
btnDelete.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
|
ToolBarButton btnSave = new ToolBarButton();
|
||||||
|
btnSave.setAttribute("name","btnSaveAdv");
|
||||||
|
btnSave.setSrc("/images/Save24.gif");
|
||||||
|
btnSave.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
|
fQueryName = new Combobox();
|
||||||
|
fQueryName.setTooltiptext(Msg.getMsg(Env.getCtx(),"QueryName"));
|
||||||
|
fQueryName.setReadonly(false);
|
||||||
|
|
||||||
|
//user query
|
||||||
|
userQueries = MUserQuery.get(Env.getCtx(), m_AD_Tab_ID);
|
||||||
|
for (int i = 0; i < userQueries.length; i++)
|
||||||
|
fQueryName.appendItem(userQueries[i].getName());
|
||||||
|
fQueryName.setValue("");
|
||||||
|
|
||||||
|
fQueryName.addEventListener(Events.ON_SELECT, this);
|
||||||
|
|
||||||
Button btnOk = new Button();
|
Button btnOk = new Button();
|
||||||
btnOk.setName("btnOkAdv");
|
btnOk.setName("btnOkAdv");
|
||||||
btnOk.setSrc("/images/Ok24.gif");
|
btnOk.setSrc("/images/Ok24.gif");
|
||||||
|
|
@ -318,6 +360,8 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
ToolBar toolBar = new ToolBar();
|
ToolBar toolBar = new ToolBar();
|
||||||
toolBar.appendChild(btnNew);
|
toolBar.appendChild(btnNew);
|
||||||
toolBar.appendChild(btnDelete);
|
toolBar.appendChild(btnDelete);
|
||||||
|
toolBar.appendChild(fQueryName);
|
||||||
|
toolBar.appendChild(btnSave);
|
||||||
toolBar.setWidth("100%");
|
toolBar.setWidth("100%");
|
||||||
|
|
||||||
Hbox confirmPanel = new Hbox();
|
Hbox confirmPanel = new Hbox();
|
||||||
|
|
@ -329,19 +373,23 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
listhead.setSizable(true);
|
listhead.setSizable(true);
|
||||||
|
|
||||||
ListHeader lstHColumn = new ListHeader();
|
ListHeader lstHColumn = new ListHeader();
|
||||||
|
<<<<<<< .mine
|
||||||
|
lstHColumn.setLabel("Column");
|
||||||
|
=======
|
||||||
lstHColumn.setLabel(Msg.translate(Env.getCtx(), "AD_Column_ID"));
|
lstHColumn.setLabel(Msg.translate(Env.getCtx(), "AD_Column_ID"));
|
||||||
lstHColumn.setWidth("100px");
|
lstHColumn.setWidth("100px");
|
||||||
|
>>>>>>> .r5927
|
||||||
|
|
||||||
ListHeader lstHOperator = new ListHeader();
|
ListHeader lstHOperator = new ListHeader();
|
||||||
lstHOperator.setLabel(Msg.getMsg(Env.getCtx(), "Operator"));
|
lstHOperator.setLabel(Msg.getMsg(Env.getCtx(), "Operator"));
|
||||||
|
|
||||||
ListHeader lstHQueryValue = new ListHeader();
|
ListHeader lstHQueryValue = new ListHeader();
|
||||||
lstHQueryValue.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue"));
|
lstHQueryValue.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue"));
|
||||||
lstHQueryValue.setWidth("200px");
|
lstHQueryValue.setWidth("210px");
|
||||||
|
|
||||||
ListHeader lstHQueryTo = new ListHeader();
|
ListHeader lstHQueryTo = new ListHeader();
|
||||||
lstHQueryTo.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue2"));
|
lstHQueryTo.setLabel(Msg.getMsg(Env.getCtx(), "QueryValue2"));
|
||||||
lstHQueryTo.setWidth("200px");
|
lstHQueryTo.setWidth("210px");
|
||||||
|
|
||||||
listhead.appendChild(lstHColumn);
|
listhead.appendChild(lstHColumn);
|
||||||
listhead.appendChild(lstHOperator);
|
listhead.appendChild(lstHOperator);
|
||||||
|
|
@ -446,12 +494,12 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
private void createFields()
|
private void createFields()
|
||||||
{
|
{
|
||||||
ListItem listItem = new ListItem();
|
ListItem listItem = new ListItem();
|
||||||
|
listItem.setWidth("100%");
|
||||||
|
|
||||||
Listbox listColumn = new Listbox();
|
Listbox listColumn = new Listbox();
|
||||||
listColumn.setId("listColumn"+listItem.getId());
|
listColumn.setId("listColumn"+listItem.getId());
|
||||||
listColumn.setName("listColumn");
|
listColumn.setName("listColumn");
|
||||||
listColumn.setMold("select");
|
listColumn.setMold("select");
|
||||||
listColumn.setWidth("150px");
|
|
||||||
listColumn.setRows(0);
|
listColumn.setRows(0);
|
||||||
listColumn.addEventListener(Events.ON_SELECT,this);
|
listColumn.addEventListener(Events.ON_SELECT,this);
|
||||||
|
|
||||||
|
|
@ -459,7 +507,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
listOperator.setId("listOperator"+listItem.getId());
|
listOperator.setId("listOperator"+listItem.getId());
|
||||||
listOperator.setName("listOperator");
|
listOperator.setName("listOperator");
|
||||||
listOperator.setMold("select");
|
listOperator.setMold("select");
|
||||||
listOperator.setWidth("50px");
|
|
||||||
listOperator.setRows(0);
|
listOperator.setRows(0);
|
||||||
listOperator.addEventListener(Events.ON_SELECT,this);
|
listOperator.addEventListener(Events.ON_SELECT,this);
|
||||||
|
|
||||||
|
|
@ -486,7 +533,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
advancedPanel.appendChild(listItem);
|
advancedPanel.appendChild(listItem);
|
||||||
advancedPanel.setSelectedItem(listItem);
|
advancedPanel.setSelectedItem(listItem);
|
||||||
|
|
||||||
} // createFields
|
} // createFields
|
||||||
/**
|
/**
|
||||||
* sets the list of values of column and operator listboxes
|
* sets the list of values of column and operator listboxes
|
||||||
|
|
@ -494,6 +540,11 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
* @param listOperator operator
|
* @param listOperator operator
|
||||||
**/
|
**/
|
||||||
private void setValues(Listbox listColumn, Listbox listOperator)
|
private void setValues(Listbox listColumn, Listbox listOperator)
|
||||||
|
{
|
||||||
|
setValues(listColumn, listOperator, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setValues(Listbox listColumn, Listbox listOperator, String[] fields)
|
||||||
{
|
{
|
||||||
// 0 = Columns
|
// 0 = Columns
|
||||||
ArrayList<ValueNamePair> items = new ArrayList<ValueNamePair>();
|
ArrayList<ValueNamePair> items = new ArrayList<ValueNamePair>();
|
||||||
|
|
@ -518,20 +569,51 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
items.toArray(cols);
|
items.toArray(cols);
|
||||||
Arrays.sort(cols); // sort alpha
|
Arrays.sort(cols); // sort alpha
|
||||||
|
|
||||||
listColumn.appendItem("","" );
|
|
||||||
for (ValueNamePair item: cols)
|
|
||||||
{
|
|
||||||
listColumn.appendItem(item.getName(), item.getValue());
|
|
||||||
}
|
|
||||||
listColumn.setSelectedIndex(0);
|
|
||||||
|
|
||||||
ValueNamePair[] op = MQuery.OPERATORS;
|
ValueNamePair[] op = MQuery.OPERATORS;
|
||||||
|
|
||||||
for (ValueNamePair item: op)
|
if(fields == null)
|
||||||
{
|
{
|
||||||
|
listColumn.appendItem("","" );
|
||||||
|
for (ValueNamePair item: cols)
|
||||||
|
listColumn.appendItem(item.getName(), item.getValue());
|
||||||
|
listColumn.setSelectedIndex(0);
|
||||||
|
|
||||||
|
for (ValueNamePair item: op)
|
||||||
listOperator.appendItem(item.getName(), item.getValue());
|
listOperator.appendItem(item.getName(), item.getValue());
|
||||||
}
|
|
||||||
listOperator.setSelectedIndex(0);
|
listOperator.setSelectedIndex(0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String columnName = fields.length > INDEX_COLUMNNAME ? fields[INDEX_COLUMNNAME] : "";
|
||||||
|
String operator = fields.length > INDEX_OPERATOR ? fields[INDEX_OPERATOR] : "";
|
||||||
|
|
||||||
|
boolean selected = false;
|
||||||
|
listColumn.appendItem("","");
|
||||||
|
for (int i = 0; i < cols.length; i++)
|
||||||
|
{
|
||||||
|
ValueNamePair item = cols[i];
|
||||||
|
ListItem li = listColumn.appendItem(item.getName(), item.getValue());
|
||||||
|
if(item.getValue().equals(columnName))
|
||||||
|
{
|
||||||
|
listColumn.setSelectedItem(li);
|
||||||
|
selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!selected) listColumn.setSelectedIndex(0);
|
||||||
|
|
||||||
|
selected = false;
|
||||||
|
for (int i = 0; i < op.length; i++)
|
||||||
|
{
|
||||||
|
ValueNamePair item = op[i];
|
||||||
|
ListItem li = listOperator.appendItem(item.getName(), item.getValue());
|
||||||
|
if(item.getValue().equals(operator))
|
||||||
|
{
|
||||||
|
listOperator.setSelectedItem(li);
|
||||||
|
selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!selected) listOperator.setSelectedIndex(0);
|
||||||
|
}
|
||||||
} // setValues
|
} // setValues
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -604,6 +686,12 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
addRowEditor(componentFrom, (ListCell)row.getFellow("cellQueryFrom"+row.getId()));
|
addRowEditor(componentFrom, (ListCell)row.getFellow("cellQueryFrom"+row.getId()));
|
||||||
addRowEditor(componentTo,(ListCell)row.getFellow("cellQueryTo"+row.getId()));
|
addRowEditor(componentTo,(ListCell)row.getFellow("cellQueryTo"+row.getId()));
|
||||||
}
|
}
|
||||||
|
else if (event.getTarget() == fQueryName)
|
||||||
|
{
|
||||||
|
int index = fQueryName.getSelectedIndex();
|
||||||
|
if(index < 0) return;
|
||||||
|
parseUserQuery(userQueries[index]);
|
||||||
|
}
|
||||||
} //
|
} //
|
||||||
else if ("onClick".equals(event.getName()))
|
else if ("onClick".equals(event.getName()))
|
||||||
{
|
{
|
||||||
|
|
@ -619,11 +707,15 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
else if ("btnDeleteAdv".equals(button.getAttribute("name").toString()))
|
else if ("btnDeleteAdv".equals(button.getAttribute("name").toString()))
|
||||||
{
|
{
|
||||||
|
|
||||||
int index = advancedPanel.getSelectedIndex();
|
int index = advancedPanel.getSelectedIndex();
|
||||||
advancedPanel.getSelectedItem().detach();
|
advancedPanel.getSelectedItem().detach();
|
||||||
advancedPanel.setSelectedIndex(--index);
|
advancedPanel.setSelectedIndex(--index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if ("btnSaveAdv".equals(button.getAttribute("name").toString()))
|
||||||
|
{
|
||||||
|
cmd_save(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Confirm panel actions
|
// Confirm panel actions
|
||||||
else if(event.getTarget() instanceof Button)
|
else if(event.getTarget() instanceof Button)
|
||||||
|
|
@ -686,6 +778,298 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
} // onEvent
|
} // onEvent
|
||||||
|
|
||||||
|
private void parseUserQuery(MUserQuery userQuery)
|
||||||
|
{
|
||||||
|
String code = userQuery.getCode();
|
||||||
|
String[] segments = code.split(Pattern.quote(SEGMENT_SEPARATOR));
|
||||||
|
|
||||||
|
List rowList = advancedPanel.getChildren();
|
||||||
|
for (int rowIndex = rowList.size() - 1; rowIndex >= 1; rowIndex--)
|
||||||
|
rowList.remove(rowIndex);
|
||||||
|
|
||||||
|
for (int i = 0; i < segments.length; i++)
|
||||||
|
{
|
||||||
|
String[] fields = segments[i].split(Pattern.quote(FIELD_SEPARATOR));
|
||||||
|
|
||||||
|
ListItem listItem = new ListItem();
|
||||||
|
listItem.setWidth("100%");
|
||||||
|
|
||||||
|
Listbox listColumn = new Listbox();
|
||||||
|
listColumn.setId("listColumn"+listItem.getId());
|
||||||
|
listColumn.setName("listColumn");
|
||||||
|
listColumn.setMold("select");
|
||||||
|
listColumn.setRows(0);
|
||||||
|
listColumn.addEventListener(Events.ON_SELECT,this);
|
||||||
|
|
||||||
|
Listbox listOperator = new Listbox();
|
||||||
|
listOperator.setId("listOperator"+listItem.getId());
|
||||||
|
listOperator.setName("listOperator");
|
||||||
|
listOperator.setMold("select");
|
||||||
|
listOperator.setRows(0);
|
||||||
|
listOperator.addEventListener(Events.ON_SELECT,this);
|
||||||
|
|
||||||
|
setValues(listColumn, listOperator, fields);
|
||||||
|
|
||||||
|
ListCell cellColumn = new ListCell();
|
||||||
|
cellColumn.appendChild(listColumn);
|
||||||
|
cellColumn.setId("cellColumn"+listItem.getId());
|
||||||
|
|
||||||
|
ListCell cellOperator = new ListCell();
|
||||||
|
cellOperator.appendChild(listOperator);
|
||||||
|
cellOperator.setId("cellOperator"+listItem.getId());
|
||||||
|
|
||||||
|
ListCell cellQueryFrom = new ListCell();
|
||||||
|
cellQueryFrom.setId("cellQueryFrom"+listItem.getId());
|
||||||
|
|
||||||
|
ListCell cellQueryTo = new ListCell();
|
||||||
|
cellQueryTo.setId("cellQueryTo"+listItem.getId());
|
||||||
|
|
||||||
|
listItem.appendChild(cellColumn);
|
||||||
|
listItem.appendChild(cellOperator);
|
||||||
|
listItem.appendChild(cellQueryFrom);
|
||||||
|
listItem.appendChild(cellQueryTo);
|
||||||
|
|
||||||
|
String columnName = listColumn.getSelectedItem().getValue().toString();
|
||||||
|
String value = fields.length > INDEX_VALUE ? fields[INDEX_VALUE] : "";
|
||||||
|
if(value.length() > 0)
|
||||||
|
{
|
||||||
|
cellQueryFrom.appendChild(parseString(getTargetMField(columnName), value));
|
||||||
|
}
|
||||||
|
|
||||||
|
String value2 = fields.length > INDEX_VALUE2 ? fields[INDEX_VALUE2] : "";
|
||||||
|
if(value2.length() > 0)
|
||||||
|
{
|
||||||
|
cellQueryTo.appendChild(parseString(getTargetMField(columnName), value2));
|
||||||
|
}
|
||||||
|
|
||||||
|
advancedPanel.appendChild(listItem);
|
||||||
|
// advancedPanel.setSelectedItem(listItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
advancedPanel.invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse String
|
||||||
|
* @param field column
|
||||||
|
* @param in value
|
||||||
|
* @return data type corected value
|
||||||
|
*/
|
||||||
|
private Label parseString(GridField field, String in)
|
||||||
|
{
|
||||||
|
if (in == null)
|
||||||
|
return null;
|
||||||
|
int dt = field.getDisplayType();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (field.isKey())
|
||||||
|
m_editor = new WNumberEditor(field);
|
||||||
|
else
|
||||||
|
m_editor = WebEditorFactory.getEditor(field, true);
|
||||||
|
if (m_editor == null)
|
||||||
|
m_editor = new WStringEditor(field);
|
||||||
|
|
||||||
|
// Return Integer
|
||||||
|
if (dt == DisplayType.Integer
|
||||||
|
|| (DisplayType.isID(dt) && field.getColumnName().endsWith("_ID")))
|
||||||
|
{
|
||||||
|
int i = Integer.parseInt(in);
|
||||||
|
m_editor.setValue(new Integer(i));
|
||||||
|
}
|
||||||
|
// Return BigDecimal
|
||||||
|
else if (DisplayType.isNumeric(dt))
|
||||||
|
{
|
||||||
|
m_editor.setValue(DisplayType.getNumberFormat(dt).parse(in));
|
||||||
|
}
|
||||||
|
// Return Timestamp
|
||||||
|
else if (DisplayType.isDate(dt))
|
||||||
|
{
|
||||||
|
long time = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
time = DisplayType.getDateFormat_JDBC().parse(in).getTime();
|
||||||
|
m_editor.setValue(new Timestamp(time));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
log.log(Level.SEVERE, in + "(" + in.getClass() + ")" + e);
|
||||||
|
time = DisplayType.getDateFormat(dt).parse(in).getTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_editor.setValue(new Timestamp(time));
|
||||||
|
}
|
||||||
|
else if (dt == DisplayType.YesNo)
|
||||||
|
m_editor.setValue(Boolean.valueOf(in));
|
||||||
|
else
|
||||||
|
m_editor.setValue(in);
|
||||||
|
|
||||||
|
Label label = new Label();
|
||||||
|
if(m_editor instanceof WSearchEditor)
|
||||||
|
{
|
||||||
|
WSearchEditor se = (WSearchEditor) m_editor;
|
||||||
|
String display = se.getGridField().getLookup().getDisplay(m_editor.getValue().toString());
|
||||||
|
label.setValue(display);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
label.setValue(m_editor.getDisplay());
|
||||||
|
}
|
||||||
|
label.setAttribute("value", m_editor.getValue());
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
log.log(Level.SEVERE, "Object=" + in, ex);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // parseValue
|
||||||
|
|
||||||
|
private void cmd_save(boolean saveQuery)
|
||||||
|
{
|
||||||
|
// advancedTable.stopEditor(true);
|
||||||
|
//
|
||||||
|
m_query = new MQuery(m_tableName);
|
||||||
|
StringBuffer code = new StringBuffer();
|
||||||
|
|
||||||
|
List rowList = advancedPanel.getChildren();
|
||||||
|
|
||||||
|
for (int rowIndex = 1; rowIndex < rowList.size() ; rowIndex++)
|
||||||
|
{
|
||||||
|
// Column
|
||||||
|
ListItem row = (ListItem)rowList.get(rowIndex);
|
||||||
|
Listbox column = (Listbox)row.getFellow("listColumn"+row.getId());
|
||||||
|
if (column == null)
|
||||||
|
continue;
|
||||||
|
String ColumnName = column.getSelectedItem().getValue().toString();
|
||||||
|
String infoName = column.toString();
|
||||||
|
//
|
||||||
|
GridField field = getTargetMField(ColumnName);
|
||||||
|
if(field == null) continue; // Elaine 2008/07/29
|
||||||
|
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
|
||||||
|
String ColumnSQL = field.getColumnSQL(false);
|
||||||
|
// Op
|
||||||
|
Listbox op = (Listbox)row.getFellow("listOperator"+row.getId());
|
||||||
|
if (op == null)
|
||||||
|
continue;
|
||||||
|
String Operator = op.getSelectedItem().getValue().toString();
|
||||||
|
|
||||||
|
// Value ******
|
||||||
|
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
||||||
|
// Elaine 2008/07/29
|
||||||
|
if(!(cellQueryFrom.getChildren().get(0) instanceof Label))
|
||||||
|
continue;
|
||||||
|
//
|
||||||
|
Label labelFrom = (Label)(cellQueryFrom.getChildren().get(0));
|
||||||
|
Object value = labelFrom.getAttribute("value");
|
||||||
|
if (value == null)
|
||||||
|
continue;
|
||||||
|
Object parsedValue = parseValue(field, value);
|
||||||
|
if (parsedValue == null)
|
||||||
|
continue;
|
||||||
|
String infoDisplay = value.toString();
|
||||||
|
if (field.isLookup())
|
||||||
|
infoDisplay = field.getLookup().getDisplay(value);
|
||||||
|
else if (field.getDisplayType() == DisplayType.YesNo)
|
||||||
|
infoDisplay = Msg.getMsg(Env.getCtx(), infoDisplay);
|
||||||
|
// Value2 ******
|
||||||
|
Object value2 = null;
|
||||||
|
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
||||||
|
{
|
||||||
|
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
||||||
|
// Elaine 2008/07/29
|
||||||
|
if(!(cellQueryTo.getChildren().get(0) instanceof Label))
|
||||||
|
continue;
|
||||||
|
//
|
||||||
|
Label labelTo = (Label)(cellQueryTo.getChildren().get(0));
|
||||||
|
value2 = labelTo.getAttribute("value");
|
||||||
|
if (value2 == null)
|
||||||
|
continue;
|
||||||
|
Object parsedValue2 = parseValue(field, value2);
|
||||||
|
String infoDisplay_to = value2.toString();
|
||||||
|
if (parsedValue2 == null)
|
||||||
|
continue;
|
||||||
|
m_query.addRangeRestriction(ColumnSQL, parsedValue, parsedValue2,
|
||||||
|
infoName, infoDisplay, infoDisplay_to);
|
||||||
|
}
|
||||||
|
else if (isProductCategoryField && MQuery.OPERATORS[MQuery.EQUAL_INDEX].equals(op)) {
|
||||||
|
if (!(parsedValue instanceof Integer)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
m_query
|
||||||
|
|
||||||
|
.addRestriction(getSubCategoryWhereClause(((Integer) parsedValue).intValue()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_query.addRestriction(ColumnSQL, Operator, parsedValue,
|
||||||
|
infoName, infoDisplay);
|
||||||
|
|
||||||
|
if (code.length() > 0)
|
||||||
|
code.append(SEGMENT_SEPARATOR);
|
||||||
|
code.append(ColumnName)
|
||||||
|
.append(FIELD_SEPARATOR)
|
||||||
|
.append(Operator)
|
||||||
|
.append(FIELD_SEPARATOR)
|
||||||
|
.append(value.toString())
|
||||||
|
.append(FIELD_SEPARATOR)
|
||||||
|
.append(value2 != null ? value2.toString() : "");
|
||||||
|
}
|
||||||
|
String selected = fQueryName.getValue();
|
||||||
|
if (selected != null && saveQuery) {
|
||||||
|
String name = selected;
|
||||||
|
MUserQuery uq = MUserQuery.get(Env.getCtx(), m_AD_Tab_ID, name);
|
||||||
|
if (uq == null && code.length() > 0)
|
||||||
|
{
|
||||||
|
uq = new MUserQuery (Env.getCtx(), 0, null);
|
||||||
|
uq.setName (name);
|
||||||
|
uq.setAD_Tab_ID(m_AD_Tab_ID); //red1 UserQuery [ 1798539 ] taking in new field from Compiere
|
||||||
|
uq.setAD_User_ID(Env.getAD_User_ID(Env.getCtx())); //red1 - [ 1798539 ] missing in Compiere delayed source :-)
|
||||||
|
}
|
||||||
|
else if (uq != null && code.length() == 0)
|
||||||
|
{
|
||||||
|
if (uq.delete(true))
|
||||||
|
{
|
||||||
|
FDialog.info (m_targetWindowNo, this, "Deleted", name);
|
||||||
|
refreshUserQueries();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FDialog.warn (m_targetWindowNo, this, "DeleteError", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return;
|
||||||
|
uq.setCode (code.toString());
|
||||||
|
uq.setAD_Table_ID (m_AD_Table_ID);
|
||||||
|
//
|
||||||
|
if (uq.save())
|
||||||
|
{
|
||||||
|
FDialog.info (m_targetWindowNo, this, "Saved", name);
|
||||||
|
refreshUserQueries();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FDialog.warn (m_targetWindowNo, this, "SaveError", name);
|
||||||
|
}
|
||||||
|
} // cmd_save
|
||||||
|
|
||||||
|
private void refreshUserQueries()
|
||||||
|
{
|
||||||
|
String value = fQueryName.getValue();
|
||||||
|
userQueries = MUserQuery.get(Env.getCtx(), m_AD_Tab_ID);
|
||||||
|
fQueryName.getItems().clear();
|
||||||
|
boolean selected = false;
|
||||||
|
for (int i = 0; i < userQueries.length; i++)
|
||||||
|
{
|
||||||
|
Comboitem ci = fQueryName.appendItem(userQueries[i].getName());
|
||||||
|
if(value.equals(userQueries[i].getName()))
|
||||||
|
{
|
||||||
|
fQueryName.setSelectedItem(ci);
|
||||||
|
selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!selected) fQueryName.setValue("");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* retrieve the columnName of the Column item selected
|
* retrieve the columnName of the Column item selected
|
||||||
* @param label label
|
* @param label label
|
||||||
|
|
@ -734,7 +1118,6 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
listcell.setLabel("");
|
listcell.setLabel("");
|
||||||
listcell.getChildren().clear();
|
listcell.getChildren().clear();
|
||||||
listcell.appendChild(component);
|
listcell.appendChild(component);
|
||||||
|
|
||||||
} // addComponent
|
} // addComponent
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -797,12 +1180,15 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
// Create Editor
|
// Create Editor
|
||||||
GridField field = getTargetMField(columnName);
|
GridField field = getTargetMField(columnName);
|
||||||
// log.fine( "Field=" + field.toStringX());
|
// log.fine( "Field=" + field.toStringX());
|
||||||
|
if(field == null) return new Label("");
|
||||||
|
|
||||||
if (field.isKey())
|
if (field.isKey())
|
||||||
m_editor = new WNumberEditor(field);
|
m_editor = new WNumberEditor(field);
|
||||||
else
|
else
|
||||||
m_editor = WebEditorFactory.getEditor(field, true);
|
m_editor = WebEditorFactory.getEditor(field, true);
|
||||||
if (m_editor == null)
|
if (m_editor == null)
|
||||||
m_editor = new WStringEditor(field);
|
m_editor = new WStringEditor(field);
|
||||||
|
|
||||||
field.addPropertyChangeListener(m_editor);
|
field.addPropertyChangeListener(m_editor);
|
||||||
m_editor.addValueChangeListner(this);
|
m_editor.addValueChangeListner(this);
|
||||||
m_editor.setValue(null);
|
m_editor.setValue(null);
|
||||||
|
|
@ -966,6 +1352,7 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
String infoName = column.toString();
|
String infoName = column.toString();
|
||||||
//
|
//
|
||||||
GridField field = getTargetMField(ColumnName);
|
GridField field = getTargetMField(ColumnName);
|
||||||
|
if(field == null) continue; // Elaine 2008/07/29
|
||||||
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
|
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
|
||||||
String ColumnSQL = field.getColumnSQL(false);
|
String ColumnSQL = field.getColumnSQL(false);
|
||||||
// Op
|
// Op
|
||||||
|
|
@ -976,6 +1363,10 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
|
|
||||||
// Value ******
|
// Value ******
|
||||||
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
ListCell cellQueryFrom = (ListCell)row.getFellow("cellQueryFrom"+row.getId());
|
||||||
|
// Elaine 2008/07/29
|
||||||
|
if(!(cellQueryFrom.getChildren().get(0) instanceof Label))
|
||||||
|
continue;
|
||||||
|
//
|
||||||
Label labelFrom = (Label)(cellQueryFrom.getChildren().get(0));
|
Label labelFrom = (Label)(cellQueryFrom.getChildren().get(0));
|
||||||
Object value = labelFrom.getAttribute("value");
|
Object value = labelFrom.getAttribute("value");
|
||||||
if (value == null)
|
if (value == null)
|
||||||
|
|
@ -992,6 +1383,10 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
if (MQuery.OPERATORS[MQuery.BETWEEN_INDEX].equals(op))
|
||||||
{
|
{
|
||||||
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
ListCell cellQueryTo = (ListCell)row.getFellow("cellQueryTo"+row.getId());
|
||||||
|
// Elaine 2008/07/29
|
||||||
|
if(!(cellQueryTo.getChildren().get(0) instanceof Label))
|
||||||
|
continue;
|
||||||
|
//
|
||||||
Label labelTo = (Label)(cellQueryTo.getChildren().get(0));
|
Label labelTo = (Label)(cellQueryTo.getChildren().get(0));
|
||||||
Object value2 = labelTo.getAttribute("value");
|
Object value2 = labelTo.getAttribute("value");
|
||||||
if (value2 == null)
|
if (value2 == null)
|
||||||
|
|
@ -1286,10 +1681,22 @@ public class FindWindow extends Window implements EventListener,ValueChangeListe
|
||||||
WEditor editor = (WEditor)evt.getSource();
|
WEditor editor = (WEditor)evt.getSource();
|
||||||
// Editor component
|
// Editor component
|
||||||
Component component = editor.getComponent();
|
Component component = editor.getComponent();
|
||||||
|
|
||||||
ListCell listcell = (ListCell)component.getParent();
|
ListCell listcell = (ListCell)component.getParent();
|
||||||
Label label = new Label(evt.getNewValue().toString());
|
|
||||||
|
// Elaine 2008/07/29
|
||||||
|
Label label = new Label();
|
||||||
|
if(evt.getSource() instanceof WSearchEditor)
|
||||||
|
{
|
||||||
|
WSearchEditor se = (WSearchEditor) evt.getSource();
|
||||||
|
String display = se.getGridField().getLookup().getDisplay(evt.getNewValue().toString());
|
||||||
|
label.setValue(display);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
label.setValue(editor.getDisplay());
|
||||||
|
}
|
||||||
label.setAttribute("value", evt.getNewValue());
|
label.setAttribute("value", evt.getNewValue());
|
||||||
|
//
|
||||||
|
|
||||||
listcell.appendChild(label);
|
listcell.appendChild(label);
|
||||||
listcell.removeChild(component);
|
listcell.removeChild(component);
|
||||||
|
|
|
||||||
|
|
@ -170,13 +170,13 @@ public final class WAccountDialog extends Window
|
||||||
toolBar.setStyle("border: none; margin: 5px");
|
toolBar.setStyle("border: none; margin: 5px");
|
||||||
|
|
||||||
bSave.setImage("images/Save24.gif");
|
bSave.setImage("images/Save24.gif");
|
||||||
bSave.setTooltip(Msg.getMsg(Env.getCtx(),"AccountNewUpdate"));
|
bSave.setTooltiptext(Msg.getMsg(Env.getCtx(),"AccountNewUpdate"));
|
||||||
bSave.addEventListener(Events.ON_CLICK, this);
|
bSave.addEventListener(Events.ON_CLICK, this);
|
||||||
bRefresh.setImage("images/Refresh24.gif");
|
bRefresh.setImage("images/Refresh24.gif");
|
||||||
bRefresh.setTooltip(Msg.getMsg(Env.getCtx(),"Refresh"));
|
bRefresh.setTooltiptext(Msg.getMsg(Env.getCtx(),"Refresh"));
|
||||||
bRefresh.addEventListener(Events.ON_CLICK, this);
|
bRefresh.addEventListener(Events.ON_CLICK, this);
|
||||||
bIgnore.setImage("images/Ignore24.gif");
|
bIgnore.setImage("images/Ignore24.gif");
|
||||||
bIgnore.setTooltip(Msg.getMsg(Env.getCtx(),"Ignore"));
|
bIgnore.setTooltiptext(Msg.getMsg(Env.getCtx(),"Ignore"));
|
||||||
bIgnore.addEventListener(Events.ON_CLICK, this);
|
bIgnore.addEventListener(Events.ON_CLICK, this);
|
||||||
//
|
//
|
||||||
toolBar.appendChild(bRefresh);
|
toolBar.appendChild(bRefresh);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,533 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Product: Adempiere ERP & CRM Smart Business Solution *
|
||||||
|
* Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
|
||||||
|
* This program is free software; you can redistribute it and/or modify it *
|
||||||
|
* under the terms version 2 of the GNU General Public License as published *
|
||||||
|
* by the Free Software Foundation. This program is distributed in the hope *
|
||||||
|
* that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
|
||||||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* See the GNU General Public License for more details. *
|
||||||
|
* You should have received a copy of the GNU General Public License along *
|
||||||
|
* with this program; if not, write to the Free Software Foundation, Inc., *
|
||||||
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
|
||||||
|
* For the text or an alternative of this public license, you may reach us *
|
||||||
|
* ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
|
||||||
|
* or via info@compiere.org or http://www.compiere.org/license.html *
|
||||||
|
* Contributor(s): *
|
||||||
|
*****************************************************************************/
|
||||||
|
package org.adempiere.webui.window;
|
||||||
|
|
||||||
|
import java.beans.PropertyVetoException;
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.StringTokenizer;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
|
import org.adempiere.webui.component.Grid;
|
||||||
|
import org.adempiere.webui.component.Label;
|
||||||
|
import org.adempiere.webui.component.Row;
|
||||||
|
import org.adempiere.webui.component.Rows;
|
||||||
|
import org.adempiere.webui.component.Textbox;
|
||||||
|
import org.adempiere.webui.component.WConfirmPanel;
|
||||||
|
import org.adempiere.webui.component.WStatusBar;
|
||||||
|
import org.adempiere.webui.component.Window;
|
||||||
|
import org.adempiere.webui.editor.WSearchEditor;
|
||||||
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
|
import org.adempiere.webui.event.ValueChangeListener;
|
||||||
|
import org.compiere.model.Lookup;
|
||||||
|
import org.compiere.model.MClient;
|
||||||
|
import org.compiere.model.MLookupFactory;
|
||||||
|
import org.compiere.model.MUser;
|
||||||
|
import org.compiere.model.MUserMail;
|
||||||
|
import org.compiere.util.CLogger;
|
||||||
|
import org.compiere.util.DisplayType;
|
||||||
|
import org.compiere.util.EMail;
|
||||||
|
import org.compiere.util.Env;
|
||||||
|
import org.compiere.util.Msg;
|
||||||
|
import org.zkoss.zk.ui.event.Event;
|
||||||
|
import org.zkoss.zk.ui.event.EventListener;
|
||||||
|
import org.zkoss.zkex.zul.Borderlayout;
|
||||||
|
import org.zkoss.zkex.zul.Center;
|
||||||
|
import org.zkoss.zkex.zul.South;
|
||||||
|
import org.zkoss.zul.Div;
|
||||||
|
import org.zkoss.zul.Separator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EMail Dialog
|
||||||
|
*
|
||||||
|
* @author Jorg Janke
|
||||||
|
* @version $Id: EMailDialog.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $
|
||||||
|
*
|
||||||
|
* globalqss: integrate phib fixing bug reported here
|
||||||
|
* http://sourceforge.net/tracker/index.php?func=detail&aid=1568765&group_id=176962&atid=879332
|
||||||
|
*
|
||||||
|
* phib - fixing bug [ 1568765 ] Close email dialog button broken
|
||||||
|
*
|
||||||
|
* globalqss - Carlos Ruiz - implement CC - FR [ 1754879 ] Enhancements on sending e-mail
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class WEMailDialog extends Window implements EventListener, ValueChangeListener
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* EMail Dialog
|
||||||
|
* @param owner calling window
|
||||||
|
* @param title title
|
||||||
|
* @param from from
|
||||||
|
* @param to to
|
||||||
|
* @param subject subject
|
||||||
|
* @param message message
|
||||||
|
* @param attachment optional attachment
|
||||||
|
*/
|
||||||
|
public WEMailDialog (Window owner, String title, MUser from, String to,
|
||||||
|
String subject, String message, File attachment)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
this.setTitle(title);
|
||||||
|
this.setWidth("500px");
|
||||||
|
this.setHeight("500px");
|
||||||
|
this.setClosable(true);
|
||||||
|
this.setBorder("normal");
|
||||||
|
this.setStyle("position:absolute");
|
||||||
|
|
||||||
|
commonInit(from, to, subject, message, attachment);
|
||||||
|
} // EmailDialog
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Common Init
|
||||||
|
* @param from from
|
||||||
|
* @param to to
|
||||||
|
* @param subject subject
|
||||||
|
* @param message message
|
||||||
|
* @param attachment optional attachment
|
||||||
|
*/
|
||||||
|
private void commonInit (MUser from, String to,
|
||||||
|
String subject, String message, File attachment)
|
||||||
|
{
|
||||||
|
m_client = MClient.get(Env.getCtx());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int WindowNo = 0;
|
||||||
|
int AD_Column_ID = 0;
|
||||||
|
Lookup lookup = MLookupFactory.get (Env.getCtx(), WindowNo,
|
||||||
|
AD_Column_ID, DisplayType.Search,
|
||||||
|
Env.getLanguage(Env.getCtx()), "AD_User_ID", 0, false,
|
||||||
|
"EMail IS NOT NULL");
|
||||||
|
|
||||||
|
fUser = new WSearchEditor(lookup, "AD_User_ID", "", false, false, true);
|
||||||
|
fUser.addValueChangeListner(this);
|
||||||
|
fCcUser = new WSearchEditor(lookup, "AD_User_ID", "", false, false, true);
|
||||||
|
fCcUser.addValueChangeListner(this);
|
||||||
|
jbInit();
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
log.log(Level.SEVERE, "EMailDialog", ex);
|
||||||
|
}
|
||||||
|
set(from, to, subject, message);
|
||||||
|
setAttachment(attachment);
|
||||||
|
AEnv.showCenterScreen(this);
|
||||||
|
} // commonInit
|
||||||
|
|
||||||
|
|
||||||
|
/** Client */
|
||||||
|
private MClient m_client = null;
|
||||||
|
/** Sender */
|
||||||
|
private MUser m_from = null;
|
||||||
|
/** Primary Recipient */
|
||||||
|
private MUser m_user = null;
|
||||||
|
/** Cc Recipient */
|
||||||
|
private MUser m_ccuser = null;
|
||||||
|
//
|
||||||
|
private String m_to;
|
||||||
|
private String m_cc;
|
||||||
|
private String m_subject;
|
||||||
|
private String m_message;
|
||||||
|
/** File to be optionally attached */
|
||||||
|
private File m_attachFile;
|
||||||
|
/** Logger */
|
||||||
|
private static CLogger log = CLogger.getCLogger(WEMailDialog.class);
|
||||||
|
|
||||||
|
// private CPanel mainPanel = new CPanel();
|
||||||
|
// private BorderLayout mainLayout = new BorderLayout();
|
||||||
|
// private CPanel headerPanel = new CPanel();
|
||||||
|
// private GridBagLayout headerLayout = new GridBagLayout();
|
||||||
|
private Textbox fFrom = new Textbox();//20);
|
||||||
|
private Textbox fTo = new Textbox();//20);
|
||||||
|
private Textbox fCc = new Textbox();//20);
|
||||||
|
private WSearchEditor fUser = null;
|
||||||
|
private WSearchEditor fCcUser = null;
|
||||||
|
private Textbox fSubject = new Textbox();//40);
|
||||||
|
private Label lFrom = new Label();
|
||||||
|
private Label lTo = new Label();
|
||||||
|
private Label lCc = new Label();
|
||||||
|
private Label lSubject = new Label();
|
||||||
|
private Label lAttachment = new Label();
|
||||||
|
private Textbox fAttachment = new Textbox();//40);
|
||||||
|
private Textbox fMessage = new Textbox();
|
||||||
|
private WConfirmPanel confirmPanel = new WConfirmPanel(true);
|
||||||
|
private WStatusBar statusBar = new WStatusBar();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static Init
|
||||||
|
*/
|
||||||
|
void jbInit() throws Exception
|
||||||
|
{
|
||||||
|
lFrom.setValue(Msg.getMsg(Env.getCtx(), "From") + ":");
|
||||||
|
lTo.setValue(Msg.getMsg(Env.getCtx(), "To") + ":");
|
||||||
|
lCc.setValue(Msg.getMsg(Env.getCtx(), "Cc") + ":");
|
||||||
|
lSubject.setValue(Msg.getMsg(Env.getCtx(), "Subject") + ":");
|
||||||
|
lAttachment.setValue(Msg.getMsg(Env.getCtx(), "Attachment") + ":");
|
||||||
|
fFrom.setReadonly(true);
|
||||||
|
statusBar.setStatusDB(null);
|
||||||
|
//
|
||||||
|
|
||||||
|
Grid grid = new Grid();
|
||||||
|
grid.setWidth("480px");
|
||||||
|
grid.setStyle("margin:0; padding:0; position: absolute; align: center; valign: center;");
|
||||||
|
grid.setSclass("grid-no-striped");
|
||||||
|
grid.setOddRowSclass("even");
|
||||||
|
|
||||||
|
Rows rows = new Rows();
|
||||||
|
grid.appendChild(rows);
|
||||||
|
|
||||||
|
Row row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
Div div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(lFrom);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(fFrom);
|
||||||
|
fFrom.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(lTo);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(fUser.getComponent());
|
||||||
|
fUser.getComponent().setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.appendChild(new Label(""));
|
||||||
|
row.appendChild(fTo);
|
||||||
|
fTo.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(lCc);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(fCcUser.getComponent());
|
||||||
|
fCcUser.getComponent().setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.appendChild(new Label(""));
|
||||||
|
row.appendChild(fCc);
|
||||||
|
fCc.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("2");
|
||||||
|
row.appendChild(new Separator());
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(lSubject);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(fSubject);
|
||||||
|
fSubject.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("2");
|
||||||
|
row.appendChild(new Separator());
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
div = new Div();
|
||||||
|
div.setAlign("right");
|
||||||
|
div.appendChild(lAttachment);
|
||||||
|
row.appendChild(div);
|
||||||
|
row.appendChild(fAttachment);
|
||||||
|
fAttachment.setWidth("100%");
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("2");
|
||||||
|
row.appendChild(fMessage);
|
||||||
|
fMessage.setWidth("100%");
|
||||||
|
fMessage.setRows(10);
|
||||||
|
|
||||||
|
row = new Row();
|
||||||
|
rows.appendChild(row);
|
||||||
|
row.setSpans("2");
|
||||||
|
row.appendChild(confirmPanel);
|
||||||
|
confirmPanel.addEventListener(this);
|
||||||
|
|
||||||
|
Borderlayout layout = new Borderlayout();
|
||||||
|
layout.setWidth("490px");
|
||||||
|
layout.setHeight("470px");
|
||||||
|
layout.setStyle("background-color: white; position: absolute;");
|
||||||
|
|
||||||
|
Center center = new Center();
|
||||||
|
center.appendChild(grid);
|
||||||
|
layout.appendChild(center);
|
||||||
|
center.setStyle("background-color: white");
|
||||||
|
|
||||||
|
South south = new South();
|
||||||
|
south.appendChild(statusBar);
|
||||||
|
statusBar.setWidth("100%");
|
||||||
|
layout.appendChild(south);
|
||||||
|
south.setStyle("background-color: white");
|
||||||
|
|
||||||
|
this.appendChild(layout);
|
||||||
|
} // jbInit
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set all properties
|
||||||
|
*/
|
||||||
|
public void set (MUser from, String to, String subject, String message)
|
||||||
|
{
|
||||||
|
// Content
|
||||||
|
setFrom(from);
|
||||||
|
setTo(to);
|
||||||
|
setSubject(subject);
|
||||||
|
setMessage(message);
|
||||||
|
//
|
||||||
|
statusBar.setStatusLine(m_client.getSMTPHost());
|
||||||
|
} // set
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Address
|
||||||
|
*/
|
||||||
|
public void setTo(String newTo)
|
||||||
|
{
|
||||||
|
m_to = newTo;
|
||||||
|
fTo.setText(m_to);
|
||||||
|
} // setTo
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set CC Address
|
||||||
|
*/
|
||||||
|
public void setCc(String newCc)
|
||||||
|
{
|
||||||
|
m_cc = newCc;
|
||||||
|
fCc.setText(m_cc);
|
||||||
|
} // setCc
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Address
|
||||||
|
*/
|
||||||
|
public String getTo()
|
||||||
|
{
|
||||||
|
m_to = fTo.getText();
|
||||||
|
return m_to;
|
||||||
|
} // getTo
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get CC Address
|
||||||
|
*/
|
||||||
|
public String getCc()
|
||||||
|
{
|
||||||
|
m_cc = fCc.getText();
|
||||||
|
return m_cc;
|
||||||
|
} // getCc
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Sender
|
||||||
|
*/
|
||||||
|
public void setFrom(MUser newFrom)
|
||||||
|
{
|
||||||
|
m_from = newFrom;
|
||||||
|
if (newFrom == null
|
||||||
|
|| !newFrom.isEMailValid()
|
||||||
|
|| !newFrom.isCanSendEMail())
|
||||||
|
{
|
||||||
|
// confirmPanel.getOKButton().setEnabled(false);
|
||||||
|
fFrom.setText("**Invalid**");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fFrom.setText(m_from.getEMail());
|
||||||
|
} // setFrom
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Sender
|
||||||
|
*/
|
||||||
|
public MUser getFrom()
|
||||||
|
{
|
||||||
|
return m_from;
|
||||||
|
} // getFrom
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Subject
|
||||||
|
*/
|
||||||
|
public void setSubject(String newSubject)
|
||||||
|
{
|
||||||
|
m_subject = newSubject;
|
||||||
|
fSubject.setText(m_subject);
|
||||||
|
} // setSubject
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Subject
|
||||||
|
*/
|
||||||
|
public String getSubject()
|
||||||
|
{
|
||||||
|
m_subject = fSubject.getText();
|
||||||
|
return m_subject;
|
||||||
|
} // getSubject
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Message
|
||||||
|
*/
|
||||||
|
public void setMessage(String newMessage)
|
||||||
|
{
|
||||||
|
m_message = newMessage;
|
||||||
|
fMessage.setText(m_message);
|
||||||
|
// fMessage.setCaretPosition(0);
|
||||||
|
} // setMessage
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Message
|
||||||
|
*/
|
||||||
|
public String getMessage()
|
||||||
|
{
|
||||||
|
m_message = fMessage.getText();
|
||||||
|
return m_message;
|
||||||
|
} // getMessage
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set Attachment
|
||||||
|
*/
|
||||||
|
public void setAttachment (File attachment)
|
||||||
|
{
|
||||||
|
m_attachFile = attachment;
|
||||||
|
if (attachment == null)
|
||||||
|
{
|
||||||
|
lAttachment.setVisible(false);
|
||||||
|
fAttachment.setVisible(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lAttachment.setVisible(true);
|
||||||
|
fAttachment.setVisible(true);
|
||||||
|
fAttachment.setText(attachment.getName());
|
||||||
|
fAttachment.setReadonly(true);
|
||||||
|
}
|
||||||
|
} // setAttachment
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Attachment
|
||||||
|
*/
|
||||||
|
public File getAttachment()
|
||||||
|
{
|
||||||
|
return m_attachFile;
|
||||||
|
} // getAttachment
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* Action Listener - Send email
|
||||||
|
*/
|
||||||
|
public void onEvent(Event event) throws Exception {
|
||||||
|
if (event.getName().equals(WConfirmPanel.A_CANCEL))
|
||||||
|
onClose();
|
||||||
|
|
||||||
|
if (getTo() == null || getTo().length() == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Send
|
||||||
|
if (event.getName().equals(WConfirmPanel.A_OK))
|
||||||
|
{
|
||||||
|
// setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||||
|
// confirmPanel.getOKButton().setEnabled(false);
|
||||||
|
|
||||||
|
StringTokenizer st = new StringTokenizer(getTo(), " ,;", false);
|
||||||
|
String to = st.nextToken();
|
||||||
|
EMail email = m_client.createEMail(getFrom(), to, getSubject(), getMessage());
|
||||||
|
String status = "Check Setup";
|
||||||
|
if (email != null)
|
||||||
|
{
|
||||||
|
while (st.hasMoreTokens())
|
||||||
|
email.addTo(st.nextToken());
|
||||||
|
// cc
|
||||||
|
StringTokenizer stcc = new StringTokenizer(getCc(), " ,;", false);
|
||||||
|
while (stcc.hasMoreTokens())
|
||||||
|
{
|
||||||
|
String cc = stcc.nextToken();
|
||||||
|
if (cc != null && cc.length() > 0)
|
||||||
|
email.addCc(cc);
|
||||||
|
}
|
||||||
|
// Attachment
|
||||||
|
if (m_attachFile != null && m_attachFile.exists())
|
||||||
|
email.addAttachment(m_attachFile);
|
||||||
|
status = email.send();
|
||||||
|
//
|
||||||
|
if (m_user != null)
|
||||||
|
new MUserMail(m_user, m_user.getAD_User_ID(), email).save();
|
||||||
|
if (email.isSentOK())
|
||||||
|
{
|
||||||
|
FDialog.info(0, this, "MessageSent");
|
||||||
|
onClose();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FDialog.error(0, this, "MessageNotSent", status);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FDialog.error(0, this, "MessageNotSent", status);
|
||||||
|
//
|
||||||
|
// confirmPanel.getOKButton().setEnabled(false);
|
||||||
|
// setCursor(Cursor.getDefaultCursor());
|
||||||
|
}
|
||||||
|
else if (event.getName().equals(WConfirmPanel.A_CANCEL))
|
||||||
|
onClose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Vetoable Change - User selected
|
||||||
|
* @param evt
|
||||||
|
* @throws PropertyVetoException
|
||||||
|
*/
|
||||||
|
public void valueChange(ValueChangeEvent evt) {
|
||||||
|
WSearchEditor source = (WSearchEditor) evt.getSource();
|
||||||
|
Object value = evt.getNewValue();
|
||||||
|
|
||||||
|
log.info("Value=" + value);
|
||||||
|
|
||||||
|
if (value == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source.equals(fUser)) {
|
||||||
|
// fUser
|
||||||
|
if (value == null)
|
||||||
|
fTo.setText("");
|
||||||
|
if (value instanceof Integer)
|
||||||
|
{
|
||||||
|
int AD_User_ID = ((Integer)value).intValue();
|
||||||
|
m_user = MUser.get(Env.getCtx(), AD_User_ID);
|
||||||
|
fTo.setValue(m_user.getEMail());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// fCcUser
|
||||||
|
if (value == null)
|
||||||
|
fCc.setText("");
|
||||||
|
if (value instanceof Integer)
|
||||||
|
{
|
||||||
|
int AD_User_ID = ((Integer)value).intValue();
|
||||||
|
m_ccuser = MUser.get(Env.getCtx(), AD_User_ID);
|
||||||
|
fCc.setValue(m_ccuser.getEMail());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // VEMailDialog
|
||||||
|
|
@ -430,7 +430,7 @@ public class WPAttributeDialog extends Window implements EventListener
|
||||||
label.setStyle("font-weight: bold");
|
label.setStyle("font-weight: bold");
|
||||||
|
|
||||||
if (attribute.getDescription() != null)
|
if (attribute.getDescription() != null)
|
||||||
label.setTooltip(attribute.getDescription());
|
label.setTooltiptext(attribute.getDescription());
|
||||||
|
|
||||||
Row row = new Row();
|
Row row = new Row();
|
||||||
row.setParent(rows);
|
row.setParent(rows);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class ZkJRViewer extends Window {
|
||||||
toolbar.setHeight("26px");
|
toolbar.setHeight("26px");
|
||||||
Toolbarbutton button = new Toolbarbutton();
|
Toolbarbutton button = new Toolbarbutton();
|
||||||
button.setImage("/images/Print24.gif");
|
button.setImage("/images/Print24.gif");
|
||||||
button.setTooltip("Print");
|
button.setTooltiptext("Print");
|
||||||
toolbar.appendChild(button);
|
toolbar.appendChild(button);
|
||||||
row.appendChild(toolbar);
|
row.appendChild(toolbar);
|
||||||
rows.appendChild(row);
|
rows.appendChild(row);
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -16,8 +16,8 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.adempiere.webui.window;
|
package org.adempiere.webui.window;
|
||||||
|
|
||||||
import org.adempiere.webui.apps.AEnv;
|
|
||||||
import org.adempiere.webui.component.Window;
|
import org.adempiere.webui.component.Window;
|
||||||
|
import org.adempiere.webui.session.SessionManager;
|
||||||
import org.compiere.print.ReportEngine;
|
import org.compiere.print.ReportEngine;
|
||||||
import org.compiere.print.ReportViewerProvider;
|
import org.compiere.print.ReportViewerProvider;
|
||||||
|
|
||||||
|
|
@ -33,6 +33,8 @@ public class ZkReportViewerProvider implements ReportViewerProvider {
|
||||||
viewer.setAttribute("mode", "overlapped");
|
viewer.setAttribute("mode", "overlapped");
|
||||||
viewer.setClosable(true);
|
viewer.setClosable(true);
|
||||||
viewer.setWidth("95%");
|
viewer.setWidth("95%");
|
||||||
AEnv.showWindow(viewer);
|
|
||||||
|
SessionManager.getAppDesktop().showWindowInTabPanel(viewer);
|
||||||
|
// AEnv.showWindow(viewer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue