use of org.compiere.model.MQuery in project adempiere by adempiere.
the class APanel method initPanel.
/**************************************************************************
* Dynamic Panel Initialization - either single window or workbench.
* <pre>
* either
* - Workbench tabPanel (VTabbedPane)
* - Tab (GridController)
* or
* - Workbench tabPanel (VTabbedPane)
* - Window (VTabbedPane)
* - Tab (GridController)
* </pre>
* tabPanel
* @param AD_Workbench_ID if > 0 this is a workbench, AD_Window_ID ignored
* @param AD_Window_ID if not a workbench, Window ID
* @param query if not a Workbench, Zoom Query - additional SQL where clause
* @return true if Panel is initialized successfully
*/
public boolean initPanel(int AD_Workbench_ID, int AD_Window_ID, MQuery query) {
log.info("WB=" + AD_Workbench_ID + ", Win=" + AD_Window_ID + ", Query=" + query);
this.setName("APanel" + AD_Window_ID);
// Single Window
if (AD_Workbench_ID == 0)
m_mWorkbench = new GridWorkbench(m_ctx, AD_Window_ID);
else // Workbench
{
// m_mWorkbench = new MWorkbench(m_ctx);
// if (!m_mWorkbench.initWorkbench (AD_Workbench_ID))
// {
// log.log(Level.SEVERE, "APanel.initWindow - No Workbench Model");
// return false;
// }
// tabPanel.setWorkbench(true);
// tabPanel.addChangeListener(this);
log.warning("Workbench Not implemented yet [" + this + "]");
loadError = "Workbench Not implemented yet";
return false;
}
Dimension windowSize = m_mWorkbench.getWindowSize();
MQuery detailQuery = null;
/**
* WorkBench Loop
*/
for (int wb = 0; wb < m_mWorkbench.getWindowCount(); wb++) {
// Get/set WindowNo
// Timing: ca. 1.5 sec
m_curWindowNo = Env.createWindowNo(this);
m_mWorkbench.setWindowNo(wb, m_curWindowNo);
// Set AutoCommit for this Window
Env.setAutoCommit(m_ctx, m_curWindowNo, Env.isAutoCommit(m_ctx));
boolean autoNew = Env.isAutoNew(m_ctx);
Env.setAutoNew(m_ctx, m_curWindowNo, autoNew);
// Workbench Window
VTabbedPane window = null;
// just one window
if (m_mWorkbench.getWindowCount() == 1) {
window = tabPanel;
window.setWorkbench(false);
} else {
VTabbedPane tp = new VTabbedPane(false);
window = tp;
}
// Window Init
window.addChangeListener(this);
/**
* Init Model
*/
int wbType = m_mWorkbench.getWindowType(wb);
/**
* Window
*/
if (wbType == GridWorkbench.TYPE_WINDOW) {
includedMap = new HashMap<Integer, GridController>(4);
//
GridWindowVO wVO = AEnv.getMWindowVO(m_curWindowNo, m_mWorkbench.getWindowID(wb), 0);
if (wVO == null) {
log.warning("AccessTableNoView for [" + this + "]");
loadError = "AccessTableNoView";
return false;
}
// Timing: ca. 0.3-1 sec
GridWindow mWindow = new GridWindow(wVO, true);
// Set SO/AutoNew for Window
Env.setContext(m_ctx, m_curWindowNo, "IsSOTrx", mWindow.isSOTrx());
if (!autoNew && mWindow.isTransaction())
Env.setAutoNew(m_ctx, m_curWindowNo, true);
m_mWorkbench.setMWindow(wb, mWindow);
if (wb == 0)
// default = only current
m_onlyCurrentRows = mWindow.isTransaction();
if (windowSize == null)
windowSize = mWindow.getWindowSize();
/**
* Window Tabs
*/
int tabSize = mWindow.getTabCount();
// Zoom Query
boolean goSingleRow = query != null;
for (int tab = 0; tab < tabSize; tab++) {
boolean included = false;
// MTab
if (tab == 0)
mWindow.initTab(0);
GridTab gTab = mWindow.getTab(tab);
Env.setContext(m_ctx, m_curWindowNo, tab, GridTab.CTX_TabLevel, Integer.toString(gTab.getTabLevel()));
// Query first tab
if (tab == 0) {
// initial user query for single workbench tab
if (m_mWorkbench.getWindowCount() == 1) {
if (query != null && query.getZoomTableName() != null && query.getZoomColumnName() != null && query.getZoomValue() instanceof Integer && (Integer) query.getZoomValue() > 0) {
if (!query.getZoomTableName().equalsIgnoreCase(gTab.getTableName())) {
detailQuery = query;
query = new MQuery();
query.addRestriction("1=2");
}
}
//Goodwill
isCancel = false;
query = initialQuery(query, gTab);
if (isCancel)
//Cancel opening window
return false;
if (query != null && query.getRecordCount() <= 1)
goSingleRow = true;
} else if (wb != 0) // workbench dynamic query for dependent windows
{
query = m_mWorkbench.getQuery();
}
// Set initial Query on first tab
if (query != null) {
// Query might involve history
m_onlyCurrentRows = false;
gTab.setQuery(query);
}
if (wb == 0)
m_curTab = gTab;
}
// query on first tab
Component tabElement = null;
// GridController
if (gTab.isSortTab()) {
VSortTab st = new VSortTab(m_curWindowNo, gTab.getAD_Table_ID(), gTab.getAD_ColumnSortOrder_ID(), gTab.getAD_ColumnSortYesNo_ID());
st.setTabLevel(gTab.getTabLevel());
tabElement = st;
} else // normal tab
{
// Timing: ca. .1 sec
GridController gc = new GridController();
CompiereColor cc = mWindow.getColor();
if (cc != null)
// set color on Window level
gc.setBackgroundColor(cc);
// will set color on Tab level
gc.initGrid(gTab, false, m_curWindowNo, this, mWindow, (tab != 0));
// Timing: ca. 6-7 sec for first .2 for next
gc.addDataStatusListener(this);
// register Escape Key
gc.registerESCAction(aIgnore);
// Set First Tab
if (wb == 0 && tab == 0) {
m_curGC = gc;
// Screen Sizing
Dimension size = gc.getPreferredSize();
size.width += 4;
size.height += 4;
gc.setPreferredSize(size);
}
tabElement = gc;
// If we have a zoom query, switch to single row
if (tab == 0 && goSingleRow)
gc.switchSingleRow();
// FR [ 1757088 ]
GridField[] fields = gc.getMTab().getFields();
int m_tab_id = 0;
for (int f = 0; f < fields.length; f++) {
m_tab_id = fields[f].getIncluded_Tab_ID();
if (m_tab_id != 0) {
includedMap.put(m_tab_id, gc);
}
}
// Is this tab included?
if (includedMap.size() > 0) {
GridController parent = (GridController) includedMap.get(new Integer(gTab.getAD_Tab_ID()));
if (parent != null) {
// FR [ 1757088 ]
gc.removeDataStatusListener(this);
GridSynchronizer synchronizer = new GridSynchronizer(mWindow, parent, gc);
if (parent == m_curGC)
synchronizer.activateChild();
included = parent.includeTab(gc, this, synchronizer);
}
}
initSwitchLineAction();
}
if (// Add to TabbedPane
!included) {
StringBuffer tabName = new StringBuffer();
tabName.append("<html>");
if (gTab.isReadOnly())
tabName.append("<i>");
int pos = gTab.getName().indexOf(" ");
if (pos == -1)
tabName.append(gTab.getName()).append("<br> ");
else {
tabName.append(gTab.getName().substring(0, pos)).append("<br>").append(gTab.getName().substring(pos + 1));
}
if (gTab.isReadOnly())
tabName.append("</i>");
tabName.append("</html>");
// Add Tab - sets ALT-<number> and Shift-ALT-<x>
window.addTab(tabName.toString(), gTab, tabElement);
}
}
// Tab Loop
// Tab background
// window.setBackgroundColor(new AdempiereColor(Color.magenta, Color.green));
}
// Single Workbench Window Tab
if (m_mWorkbench.getWindowCount() == 1) {
window.setToolTipText(m_mWorkbench.getDescription(wb));
} else // Add Workbench Window Tab
{
tabPanel.addTab(m_mWorkbench.getName(wb), m_mWorkbench.getIcon(wb), window, m_mWorkbench.getDescription(wb));
}
// Used for Env.getHeader
Env.setContext(m_ctx, m_curWindowNo, "WindowName", m_mWorkbench.getName(wb));
}
// Workbench Loop
// stateChanged (<->) triggered
toolBar.setName(getTitle());
m_curTab.getTableModel().setChanged(false);
// Set Detail Button
aDetail.setEnabled(0 != m_curWinTab.getTabCount() - 1);
// Enable/Disable Tabs dynamically
if (m_curWinTab instanceof VTabbedPane)
((VTabbedPane) m_curWinTab).evaluate(null);
// Size
if (windowSize != null)
setPreferredSize(windowSize);
else
revalidate();
if (detailQuery != null && zoomToDetailTab(detailQuery)) {
return true;
}
Dimension size = getPreferredSize();
log.info("fini - " + size);
m_curWinTab.requestFocusInWindow();
return true;
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class AEnv method startWorkflowProcess.
// isWorkflowProcess
/**
* Start Workflow Process Window
* @param AD_Table_ID optional table
* @param Record_ID optional record
*/
public static void startWorkflowProcess(int AD_Table_ID, int Record_ID) {
if (s_workflow_Window_ID == 0)
return;
//
MQuery query = null;
if (AD_Table_ID != 0 && Record_ID != 0) {
query = new MQuery("AD_WF_Process");
query.addRestriction("AD_Table_ID", MQuery.EQUAL, AD_Table_ID);
query.addRestriction("Record_ID", MQuery.EQUAL, Record_ID);
}
//
AWindow frame = new AWindow();
if (!frame.initWindow(s_workflow_Window_ID, query))
return;
addToWindowManager(frame);
if (Ini.isPropertyBool(Ini.P_OPEN_WINDOW_MAXIMIZED)) {
frame.pack();
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
frame.setVisible(true);
frame.toFront();
} else
AEnv.showCenterScreen(frame);
frame = null;
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class Viewer method mouse_clicked.
// cmd_drill
/**
* Mouse clicked
* @param e event
* @param rightClick true if right click
*/
private void mouse_clicked(MouseEvent e, boolean rightClick) {
Point point = e.getPoint();
log.info("Right=" + rightClick + " - " + point.toString());
if (rightClick) {
m_ddQ = m_viewPanel.getDrillDown(point);
m_daQ = m_viewPanel.getDrillAcross(point);
m_ddM = null;
m_daM = null;
if (m_ddQ == null && m_daQ == null)
return;
// Create Menu
JPopupMenu pop = new JPopupMenu();
Icon wi = Env.getImageIcon("mWindow.gif");
if (m_ddQ != null) {
m_ddM = new CMenuItem(m_ddQ.getDisplayName(Env.getCtx()), wi);
m_ddM.setToolTipText(m_ddQ.toString());
m_ddM.addActionListener(this);
pop.add(m_ddM);
}
if (m_daQ != null) {
m_daM = new CMenuItem(m_daQ.getDisplayName(Env.getCtx()), wi);
m_daM.setToolTipText(m_daQ.toString());
m_daM.addActionListener(this);
pop.add(m_daM);
}
Point pp = e.getPoint();
pop.show((Component) e.getSource(), pp.x, pp.y);
return;
}
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
if (m_drillDown) {
MQuery query = m_viewPanel.getDrillDown(point);
if (query != null) {
log.info("Drill Down: " + query.getWhereClause(true));
executeDrill(query);
}
} else if (comboDrill.getSelectedItem() != null && comboDrill.getSelectedIndex() > 0) {
MQuery query = m_viewPanel.getDrillAcross(point);
if (query != null) {
NamePair pp = (NamePair) comboDrill.getSelectedItem();
query.setTableName(pp.getID());
log.info("Drill Accross: " + query.getWhereClause(true));
executeDrill(query);
}
}
// setCursor
cmd_drill();
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class VPrintDocument method print.
@Override
public void print(PO document, String printFormantName, int windowNo) {
JFrame window = Env.getWindow(windowNo);
if (ADialog.ask(windowNo, window, "PrintShipments")) {
window.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
// see also ProcessDialog.printShipments/Invoices
int retValue = ADialogDialog.A_CANCEL;
do {
String keyColumnName = document.get_KeyColumns()[0];
MPrintFormat format = MPrintFormat.get(Env.getCtx(), MPrintFormat.getPrintFormat_ID(printFormantName, document.get_Table_ID(), 0), false);
MQuery query = new MQuery(document.get_TableName());
query.addRestriction(keyColumnName, MQuery.EQUAL, document.get_ValueAsInt(keyColumnName));
// Engine
PrintInfo info = new PrintInfo(document.get_TableName(), document.get_Table_ID(), document.get_ValueAsInt(keyColumnName));
ReportEngine re = new ReportEngine(Env.getCtx(), format, query, info);
re.print();
new Viewer(re);
ADialogDialog d = new ADialogDialog(window, Env.getHeader(Env.getCtx(), windowNo), Msg.getMsg(Env.getCtx(), "PrintoutOK?"), JOptionPane.QUESTION_MESSAGE);
retValue = d.getReturnCode();
} while (retValue == ADialogDialog.A_CANCEL);
window.setCursor(Cursor.getDefaultCursor());
}
}
use of org.compiere.model.MQuery in project adempiere by adempiere.
the class WLocatorEditor method actionZoom.
public void actionZoom() {
int AD_Window_ID = MTable.get(Env.getCtx(), MLocator.Table_ID).getAD_Window_ID();
if (AD_Window_ID <= 0)
// hardcoded window Warehouse & Locators
AD_Window_ID = 139;
log.info("");
//
MQuery zoomQuery = new MQuery();
zoomQuery.addRestriction(MLocator.COLUMNNAME_M_Locator_ID, MQuery.EQUAL, getValue());
// guess
zoomQuery.setRecordCount(1);
AEnv.zoom(AD_Window_ID, zoomQuery);
}
Aggregations