package org.eevolution.form;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyVetoException;
import java.beans.VetoableChangeListener;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Properties;
import java.util.logging.Level;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.ListSelectionModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import org.adempiere.model.MBrowse;
import org.adempiere.model.MBrowseField;
import org.compiere.Adempiere;
import org.compiere.apps.ADialog;
import org.compiere.apps.AEnv;
import org.compiere.apps.ALayout;
import org.compiere.apps.ALayoutConstraint;
import org.compiere.apps.AppsAction;
import org.compiere.apps.ConfirmPanel;
import org.compiere.apps.ProcessCtl;
import org.compiere.apps.ProcessParameterPanel;
import org.compiere.apps.StatusBar;
import org.compiere.apps.search.Info_Column;
import org.compiere.grid.ed.VCheckBox;
import org.compiere.grid.ed.VDate;
import org.compiere.grid.ed.VLookup;
import org.compiere.grid.ed.VNumber;
import org.compiere.grid.ed.VString;
import org.compiere.minigrid.IDColumn;
import org.compiere.minigrid.MiniTable;
import org.compiere.model.MLookup;
import org.compiere.model.MPInstance;
import org.compiere.model.MProcess;
import org.compiere.model.MRole;
import org.compiere.model.M_Element;
import org.compiere.process.ProcessInfo;
import org.compiere.swing.CFrame;
import org.compiere.swing.CLabel;
import org.compiere.util.ASyncProcess;
import org.compiere.util.DB;
import org.compiere.util.DisplayType;
import org.compiere.util.Env;
import org.compiere.util.Ini;
import org.compiere.util.KeyNamePair;
import org.compiere.util.Login;
import org.compiere.util.Msg;
import org.compiere.util.Splash;
public class VBrowser extends Browser
implements ActionListener, VetoableChangeListener, ChangeListener, ListSelectionListener, TableModelListener, ASyncProcess
{
CFrame m_frame = new CFrame();
private static final long serialVersionUID = -1022167449752851083L;
public VBrowser(Frame frame,
boolean modal,
int WindowNo, String value,
MBrowse browse, String keyColumn,
boolean multiSelection, String whereClause)
{
super(modal, WindowNo, value, browse, keyColumn, multiSelection, whereClause);
m_frame.setTitle(m_Browse.getName());
initComponents();
statInit();
p_loadedOK = initBrowser ();
m_frame.setPreferredSize(getPreferredSize());
int no = detail.getRowCount();
setStatusLine(Integer.toString(no) + " "
+ Msg.getMsg(Env.getCtx(), "SearchRows_EnterQuery"), false);
setStatusDB(Integer.toString(no));
}
private ProcessParameterPanel parameterPanel;
protected StatusBar statusBar = new StatusBar();
private Worker m_worker = null;
{
searchPanel.setLayout(new ALayout());
int cols = 0;
int col = 2;
int row = 0;
for(MBrowseField field : m_Browse.getCriteriaFields())
{
M_Element element = new M_Element(m_Browse.getCtx(),field.getAD_Element_ID(), null);
String title = Msg.translate(Env.getCtx(), element.getColumnName());
String name = field.getAD_View_Column().getAD_Column().getColumnName();
addComponent(field, row, cols, field.getName(),title);
cols = cols + col;
if(field.isRange())
{
title = Msg.getMsg(Env.getCtx(), "To");
addComponent(field, row, cols, field.getName()+"_To", title);
cols = cols + col;
}
if(cols >= 4)
{
cols = 0;
row ++;
}
}
}
private void addComponent(MBrowseField field,
int row,
int col,String name, String title)
{
Component data = null;
CLabel label = new CLabel(title);
label.setName("L_"+name);
if(DisplayType.YesNo== field.getAD_Reference_ID())
{
data= new VCheckBox();
data.setName(name);
label.setLabelFor(data);
}
else if (DisplayType.String== field.getAD_Reference_ID())
{
data= new VString(name, field.isMandatory(), false, true, 30, 30, "", null);
data.setName(name);
label.setLabelFor(data);
}
else if ( DisplayType.Number == field.getAD_Reference_ID()
|| DisplayType.Quantity == field.getAD_Reference_ID()
|| DisplayType.CostPrice == field.getAD_Reference_ID()
|| DisplayType.Integer == field.getAD_Reference_ID()
|| DisplayType.Amount == field.getAD_Reference_ID())
{
data= new VNumber(name, field.isMandatory(), false, true, field.getAD_Reference_ID(), title);
data.setName(name);
label.setLabelFor(data);
}
else if (DisplayType.Date== field.getAD_Reference_ID()
|| DisplayType.DateTime== field.getAD_Reference_ID())
{
data= new VDate();
data.setName(name);
label.setLabelFor(data);
}
else if ( DisplayType.TableDir== field.getAD_Reference_ID()
|| DisplayType.Table == field.getAD_Reference_ID()
|| DisplayType.ID == field.getAD_Reference_ID()
|| DisplayType.List == field.getAD_Reference_ID()
|| DisplayType.Search == field.getAD_Reference_ID())
{
data = (Component) getLookup(field);
label.setLabelFor(data);
}
searchPanel.add(label , new ALayoutConstraint(row,col));
searchPanel.add(data , new ALayoutConstraint(row,col+1));
}
private Component
getLookup(MBrowseField field)
{
try
{
MLookup dataL = getMLookup(field);
VLookup data = new VLookup(field.getAD_View_Column().getAD_Column().getColumnName(), field.isMandatory(), false, true, dataL);
data.addVetoableChangeListener(this);
data.setName(field.getName());
return data;
}
catch (Exception e) {
log.log(Level.SEVERE, "Browser.init", e);
}
return null;
}
{
if (!initBrowserTable())
return false;
StringBuffer where = new StringBuffer(m_View.getParentEntityAliasName()+".IsActive='Y'");
if (p_whereClause.length() > 0)
{
where.append(p_whereClause);
}
prepareTable(m_generalLayout,
m_View.getFromClause(),
where.toString(),
"2");
if(m_Browse.getAD_Process_ID() > 0)
{
m_process = MProcess.get(Env.getCtx(), m_Browse.getAD_Process_ID());
m_pi = new ProcessInfo(m_process.getName(), m_Browse.getAD_Process_ID());
m_pi.setAD_User_ID (Env.getAD_User_ID(Env.getCtx()));
m_pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));
parameterPanel = new ProcessParameterPanel(p_WindowNo, m_pi);
parameterPanel.setMode(ProcessParameterPanel.MODE_HORIZONTAL);
parameterPanel.init();
processPanel.add(parameterPanel,BorderLayout.CENTER);
}
return true;
}
{
String title = Msg.translate(Env.getCtx(), m_Browse.getName());
m_frame.setTitle(m_frame.getTitle() + " " + title);
ArrayList<Info_Column> list = initBrowserData();
if (list.size() == 0)
{
ADialog.error(p_WindowNo, m_frame, "Error", "No Browse Fields");
log.log(Level.SEVERE, "No Brwose for view=" + m_View.getName());
return false;
}
log.finest("Browse Fields #" + list.size());
m_generalLayout = new Info_Column[list.size()];
list.toArray(m_generalLayout);
return true;
}
{
m_parameters = new ArrayList();
m_values = new ArrayList();
StringBuffer sb = new StringBuffer("");
for (Component c : searchPanel.getComponents())
{
String name = c.getName();
if(name == null || name.startsWith("L_"))
continue;
MBrowseField field = m_Browse.getField(name);
if(name.endsWith("_To"))
field = m_Browse.getField(name.substring(0, name.indexOf("_To")));
if(field == null)
continue;
M_Element element = new M_Element(m_Browse.getCtx(),field.getAD_Element_ID(), null);
String title = Msg.translate(Env.getCtx(), element.getColumnName());
if(c instanceof VLookup)
{
VLookup component = (VLookup) c;
addParameter(component.getName(), component.getValue());
if(field.isMandatory() && component.getValue()==null)
sb.append(title+", ");
continue;
}
if(c instanceof VString)
{
VString component = (VString) c;
addParameter(component.getName(), component.getValue());
if(field.isMandatory() && component.getValue()==null)
sb.append(title+", ");
continue;
}
if(c instanceof VCheckBox)
{
VCheckBox component = (VCheckBox) c;
addParameter(component.getName(), component.getValue());
if(field.isMandatory() && component.getValue()==null)
sb.append(title+", ");
continue;
}
if(c instanceof VDate)
{
VDate component = (VDate) c;
addParameter(component.getName(), component.getValue());
if(field.isMandatory() && component.getValue()==null)
sb.append(title+", ");
continue;
}
}
if (sb.length() != 0)
{
ADialog.error(p_WindowNo, m_frame.getContentPane(), "FillMandatory", sb.toString());
return false;
}
return true;
}
{
statusBar.setStatusLine(text, error);
Thread.yield();
}
{
statusBar.setStatusDB(text);
}
{
if(!setParameters())
;
if (m_worker != null && m_worker.isAlive())
return;
if (!testCount())
return;
m_frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setStatusLine(Msg.getMsg(Env.getCtx(), "StartSearch"), false);
m_worker = new Worker();
m_worker.start();
}
{
m_frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
Integer record_ID = getSelectedRowKey();
if (record_ID == null)
return;
AEnv.zoom(m_View.getParentViewDefinition().getAD_Table_ID(), record_ID);
m_frame.setCursor(Cursor.getDefaultCursor());
}
protected void prepareTable (Info_Column[] layout, String from, String staticWhere, String orderBy)
{
p_layout = layout;
StringBuffer sql = new StringBuffer ("SELECT ");
for (int i = 0; i < layout.length; i++)
{
if (i > 0)
sql.append(", ");
sql.append(layout[i].getColSQL());
if (layout[i].isIDcol())
sql.append(",").append(layout[i].getIDcolSQL());
detail.addColumn(layout[i].getColHeader());
if (layout[i].isColorColumn())
detail.setColorColumn(i);
if (layout[i].getColClass() == IDColumn.class)
m_keyColumnIndex = i;
}
detail.setRowSelectionAllowed(true);
detail.setMultiSelection(p_multiSelection);
detail.setShowTotals(true);
for (int i = 0; i < layout.length; i++)
detail.setColumnClass(i, layout[i].getColClass(), layout[i].isReadOnly(), layout[i].getColHeader());
sql.append( " FROM ").append(from);
sql.append(" WHERE ").append(staticWhere);
m_sqlMain = sql.toString();
m_sqlCount = "SELECT COUNT(*) FROM " + from + " WHERE " + staticWhere;
m_sqlOrder = "";
if (orderBy != null && orderBy.length() > 0)
m_sqlOrder = " ORDER BY " + orderBy;
if (m_keyColumnIndex == -1)
log.log(Level.SEVERE, "No KeyColumn - " + sql);
}
{
int no=-1;
no = getCount();
MRole role = MRole.getDefault();
if (role.isQueryMax(no))
return ADialog.ask(p_WindowNo, m_frame, "InfoHighRecordCount", String.valueOf(no));
return true;
}
{
if (detail == null)
return;
log.config( "OK=" + m_ok);
if (!m_ok)
{
m_results.clear();
detail.removeAll();
detail = null;
return;
}
if (p_multiSelection)
{
m_results.addAll(getSelectedRowKeys());
}
else
{
Integer data = getSelectedRowKey();
if (data != null)
m_results.add(data);
}
log.config(getSelectedSQL());
detail.removeAll();
detail= null;
}
{
ArrayList<Integer> selectedDataList = new ArrayList<Integer>();
if (m_keyColumnIndex == -1)
{
return selectedDataList;
}
if (p_multiSelection)
{
int rows = detail.getRowCount();
for (int row = 0; row < rows; row++)
{
Object data = detail.getModel().getValueAt(row, m_keyColumnIndex);
if (data instanceof IDColumn)
{
IDColumn dataColumn = (IDColumn)data;
if (dataColumn.isSelected())
{
selectedDataList.add(dataColumn.getRecord_ID());
}
}
}
}
if (selectedDataList.size() == 0)
{
int row = detail.getSelectedRow();
if (row != -1 && m_keyColumnIndex != -1)
{
Object data = detail.getModel().getValueAt(row, m_keyColumnIndex);
if (data instanceof IDColumn)
selectedDataList.add(((IDColumn)data).getRecord_ID());
if (data instanceof Integer)
selectedDataList.add((Integer)data);
}
}
return selectedDataList;
}
{
log.config("OK=" + ok);
m_ok = ok;
if (m_worker != null)
{
if (m_worker.isAlive())
m_worker.interrupt();
log.config("Worker alive=" + m_worker.isAlive());
}
m_worker = null;
saveSelection();
m_frame.removeAll();
m_frame.dispose();
if(m_Browse.getAD_Process_ID() <= 0)
return;
MPInstance instance = new MPInstance(Env.getCtx(), m_Browse.getAD_Process_ID(), 0);
instance.saveEx();
DB.createT_Selection(instance.getAD_PInstance_ID(), getSelectedKeys(), null);
m_pi.setAD_PInstance_ID (instance.getAD_PInstance_ID());
parameterPanel.saveParameters();
ProcessCtl worker = new ProcessCtl(this, Env.getWindowNo(m_frame), m_pi, null);
worker.start();
}
{
AppsAction a = new AppsAction(ConfirmPanel.A_OK, null, ConfirmPanel.A_OK);
bOk = new javax.swing.JButton(a);
a = new AppsAction(ConfirmPanel.A_CANCEL, null, ConfirmPanel.A_CANCEL);
bCancel = new javax.swing.JButton(a);
toolsBar = new javax.swing.JToolBar();
a = new AppsAction(ConfirmPanel.A_PRINT, null, ConfirmPanel.A_PRINT);
bPrint = new javax.swing.JButton(a);
a = new AppsAction(ConfirmPanel.A_ZOOM, null, ConfirmPanel.A_ZOOM);
bZoom = new javax.swing.JToggleButton(a);
a = new AppsAction(ConfirmPanel.A_EXPORT, null, ConfirmPanel.A_EXPORT);
bExport = new javax.swing.JButton(a);
a = new AppsAction(ConfirmPanel.A_DELETE, null, ConfirmPanel.A_DELETE);
bDelete = new javax.swing.JButton(a);
a = new AppsAction("Find", null, "Find");
bFind = new javax.swing.JButton(a);
}
@SuppressWarnings("unchecked")
toolsBar = new javax.swing.JToolBar();
bPrint = new javax.swing.JButton();
bZoom = new javax.swing.JToggleButton();
bExport = new javax.swing.JButton();
bDelete = new javax.swing.JButton();
bFind = new javax.swing.JButton();
tabsPanel = new javax.swing.JTabbedPane();
searchTab = new javax.swing.JPanel();
topPanel = new javax.swing.JPanel();
searchPanel = new javax.swing.JPanel();
buttonSearchPanel = new javax.swing.JPanel();
bSearch = new javax.swing.JButton();
centerPanel = new javax.swing.JScrollPane();
detail = new MiniTable();
footPanel = new javax.swing.JPanel();
footButtonPanel = new javax.swing.JPanel();
bCancel = new javax.swing.JButton();
bOk = new javax.swing.JButton();
processPanel = new javax.swing.JPanel();
graphPanel = new javax.swing.JPanel();
setupToolBar();
toolsBar.setRollover(true);
bPrint.setText("Print");
bPrint.setFocusable(false);
bPrint.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bPrint.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bPrint.addActionListener(new java.awt.event.ActionListener() {
bPrintActionPerformed(evt);
}
});
toolsBar.add(bPrint);
bZoom.setText("Zoom");
bZoom.setFocusable(false);
bZoom.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bZoom.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bZoom.addActionListener(new java.awt.event.ActionListener() {
bZoomActionPerformed(evt);
}
});
toolsBar.add(bZoom);
bExport.setText("Export");
bExport.setFocusable(false);
bExport.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bExport.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bExport.addActionListener(new java.awt.event.ActionListener() {
bExportActionPerformed(evt);
}
});
toolsBar.add(bExport);
bDelete.setText("Delete");
bDelete.setFocusable(false);
bDelete.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bDelete.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bDelete.addActionListener(new java.awt.event.ActionListener() {
bDeleteActionPerformed(evt);
}
});
toolsBar.add(bDelete);
bFind.setText("Find");
bFind.setFocusable(false);
bFind.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bFind.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bFind.addActionListener(new java.awt.event.ActionListener() {
bFindActionPerformed(evt);
}
});
toolsBar.add(bFind);
AppsAction selectAllAction = new AppsAction ("SelectAll", null, "Select All");
JButton bSelectAll = new JButton(selectAllAction);
bSelectAll.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
bSelectAll.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
bSelectAll.addActionListener(new java.awt.event.ActionListener(){
{
if(!isAllSelected)
{
int topIndex = detail.getShowTotals() ? 2 : 1;
ListSelectionModel selectionModel = detail.getSelectionModel();
selectionModel.setSelectionInterval(0, detail.getRowCount()-topIndex);
int rows = detail.getRowCount();
for (int row = 0; row <= rows - topIndex; row++)
{
Object data = detail.getModel().getValueAt(row, m_keyColumnIndex);
if (data instanceof IDColumn)
{
IDColumn dataColumn = (IDColumn)data;
dataColumn.setSelected(true);
}
}
}
else
{
detail.clearSelection();
}
isAllSelected = !isAllSelected;
}
});
toolsBar.add(bSelectAll);
m_frame.getContentPane().add(toolsBar, java.awt.BorderLayout.PAGE_START);
searchTab.setLayout(new java.awt.BorderLayout());
topPanel.setLayout(new java.awt.BorderLayout());
searchPanel.setLayout(new java.awt.GridBagLayout());
topPanel.add(searchPanel, java.awt.BorderLayout.NORTH);
bSearch.setText("Search");
bSearch.addActionListener(new java.awt.event.ActionListener() {
bSearchActionPerformed(evt);
}
});
buttonSearchPanel.add(bSearch);
topPanel.add(buttonSearchPanel, java.awt.BorderLayout.CENTER);
searchTab.add(topPanel, java.awt.BorderLayout.NORTH);
centerPanel.setViewportView(detail);
searchTab.add(centerPanel, java.awt.BorderLayout.CENTER);
footPanel.setLayout(new java.awt.BorderLayout());
bCancel.setText("Cancel");
bCancel.addActionListener(new java.awt.event.ActionListener() {
bCancelActionPerformed(evt);
}
});
footButtonPanel.add(bCancel);
bOk.setText("Ok");
bOk.addActionListener(new java.awt.event.ActionListener() {
bOkActionPerformed(evt);
}
});
footButtonPanel.add(bOk);
footPanel.add(footButtonPanel, java.awt.BorderLayout.SOUTH);
processPanel.setLayout(new java.awt.BorderLayout());
footPanel.add(processPanel, java.awt.BorderLayout.CENTER);
searchTab.add(footPanel, java.awt.BorderLayout.SOUTH);
tabsPanel.addTab("Search", searchTab);
graphPanel.setLayout(new java.awt.BorderLayout());
tabsPanel.addTab("Graph", graphPanel);
m_frame.getContentPane().add(tabsPanel, java.awt.BorderLayout.CENTER);
}
cmd_zoom();
}
dispose(true);
}
m_frame.dispose();
}
executeQuery();
}
}
}
}
}
private javax.swing.JButton bCancel;
private javax.swing.JButton bDelete;
private javax.swing.JButton bExport;
private javax.swing.JButton bFind;
private javax.swing.JButton bOk;
private javax.swing.JButton bPrint;
private javax.swing.JButton bSearch;
private javax.swing.JToggleButton bZoom;
private javax.swing.JPanel buttonSearchPanel;
private javax.swing.JScrollPane centerPanel;
private MiniTable detail;
private javax.swing.JPanel footButtonPanel;
private javax.swing.JPanel footPanel;
private javax.swing.JPanel graphPanel;
private javax.swing.JPanel processPanel;
private javax.swing.JPanel searchPanel;
private javax.swing.JPanel searchTab;
private javax.swing.JTabbedPane tabsPanel;
private javax.swing.JToolBar toolsBar;
private javax.swing.JPanel topPanel;
{
private PreparedStatement m_pstmt = null;
private ResultSet m_rs = null;
{
long start = System.currentTimeMillis();
detail.setRowCount(0);
String dynWhere = getSQLWhere();
StringBuffer sql = new StringBuffer (m_sqlMain);
if (dynWhere.length() > 0)
sql.append(dynWhere);
sql.append(m_sqlOrder);
String dataSql = Msg.parseTranslation(Env.getCtx(), sql.toString());
dataSql = MRole.getDefault().addAccessSQL(dataSql, m_View.getParentEntityAliasName(),
MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO);
log.finer(dataSql);
try
{
m_pstmt = DB.prepareStatement(dataSql, null);
if(getParametersValues().size() > 0)
DB.setParameters(m_pstmt, getParametersValues());
setParameters (m_pstmt, false);
log.fine("Start query - " + (System.currentTimeMillis()-start) + "ms");
m_rs = m_pstmt.executeQuery();
log.fine("End query - " + (System.currentTimeMillis()-start) + "ms");
while (m_rs.next())
{
if (this.isInterrupted()) {
log.finer("Interrupted");
close();
return;
}
int row = detail.getRowCount();
detail.setRowCount(row+1);
int colOffset = 1;
for (int col = 0; col < p_layout.length; col++)
{
Object data = null;
Class<?> c = p_layout[col].getColClass();
int colIndex = col + colOffset;
if (c == IDColumn.class)
data = new IDColumn(m_rs.getInt(colIndex));
else if (c == Boolean.class)
data = new Boolean("Y".equals(m_rs.getString(colIndex)));
else if (c == Timestamp.class)
data = m_rs.getTimestamp(colIndex);
else if (c == BigDecimal.class)
data = m_rs.getBigDecimal(colIndex);
else if (c == Double.class)
data = new Double(m_rs.getDouble(colIndex));
else if (c == Integer.class)
data = new Integer(m_rs.getInt(colIndex));
else if (c == KeyNamePair.class)
{
String display = m_rs.getString(colIndex);
int key = m_rs.getInt(colIndex+1);
data = new KeyNamePair(key, display);
colOffset++;
}
else
data = m_rs.getString(colIndex);
detail.setValueAt(data, row, col);
}
}
}
catch (SQLException e)
{
log.log(Level.SEVERE, dataSql, e);
}
close();
int no = detail.getRowCount();
log.fine("#" + no + " - " + (System.currentTimeMillis()-start) + "ms");
if(detail.getShowTotals())
detail.addTotals(p_layout);
detail.autoSize();
m_frame.setCursor(Cursor.getDefaultCursor());
setStatusLine(Integer.toString(no) + " " + Msg.getMsg(Env.getCtx(), "SearchRows_EnterQuery"), false);
setStatusDB(Integer.toString(no));
if (no == 0)
log.fine(dataSql);
else
{
detail.getSelectionModel().setSelectionInterval(0, 0);
detail.requestFocus();
}
}
DB.close(m_rs, m_pstmt);
m_rs = null;
m_pstmt = null;
}
}
public static void main( String args[] )
{
Splash.getSplash();
Adempiere.startup(true);
Ini.setProperty(Ini.P_UID,"SuperUser");
Ini.setProperty(Ini.P_PWD,"System");
Ini.setProperty(Ini.P_ROLE,"GardenWorld Admin");
Ini.setProperty(Ini.P_CLIENT, "GardenWorld");
Ini.setProperty(Ini.P_ORG,"HQ");
Ini.setProperty(Ini.P_WAREHOUSE,"HQ Warehouse");
Ini.setProperty(Ini.P_LANGUAGE,"English");
Login login = new Login(Env.getCtx());
login.batchLogin();
Properties m_ctx = Env.getCtx();
MBrowse browse = new MBrowse(m_ctx, 1000002 , null);
JFrame frame = new JFrame();
boolean modal = true;
int WindowNo = 0;
String value = "";
String keyColumn = "";
boolean multiSelection = true;
String whereClause = "";
VBrowser browser = new VBrowser(frame, modal , WindowNo, value, browse, keyColumn,multiSelection, whereClause);
browser.getFrame().setVisible(true);
browser.getFrame().pack();
}
{
return m_frame;
}
{
Dimension size = m_frame.getPreferredSize ();
if (size.width > WINDOW_WIDTH)
size.width = WINDOW_WIDTH - 30;
return size;
}
}
throws PropertyVetoException {
}
}
}
}
}
return false;
}
public void lockUI(ProcessInfo pi) {
}
}
}