📄 apanel.java
字号:
m_curTab.getTableName(), query);
} // cmd_zoom
/**
* Open/View Request
*/
private void cmd_request()
{
int record_ID = m_curTab.getRecord_ID();
log.info("ID=" + record_ID);
if (record_ID <= 0)
return;
int AD_Table_ID = m_curTab.getAD_Table_ID();
int C_BPartner_ID = 0;
Object BPartner_ID = m_curTab.getValue("C_BPartner_ID");
if (BPartner_ID != null)
C_BPartner_ID = ((Integer)BPartner_ID).intValue();
new ARequest (aRequest.getButton(), AD_Table_ID, record_ID, C_BPartner_ID);
} // cmd_request
/**
* Open/View Archive
*/
private void cmd_archive()
{
int record_ID = m_curTab.getRecord_ID();
log.info("ID=" + record_ID);
if (record_ID <= 0)
return;
int AD_Table_ID = m_curTab.getAD_Table_ID();
new AArchive (aArchive.getButton(), AD_Table_ID, record_ID);
} // cmd_archive
/**
* Print specific Report - or start default Report
*/
private void cmd_print()
{
// Get process defined for this tab
int AD_Process_ID = m_curTab.getAD_Process_ID();
log.info("ID=" + AD_Process_ID);
// No report defined
if (AD_Process_ID == 0)
{
cmd_report();
return;
}
cmd_save(false);
//
int table_ID = m_curTab.getAD_Table_ID();
int record_ID = m_curTab.getRecord_ID();
ProcessInfo pi = new ProcessInfo (getTitle(), AD_Process_ID, table_ID, record_ID);
ProcessCtl.process(this, m_curWindowNo, pi, null); // calls lockUI, unlockUI
} // cmd_print
/**
* Find - Set Query
*/
private void cmd_find()
{
if (m_curTab == null)
return;
cmd_save(false);
// Gets Fields from AD_Field_v
MField[] findFields = MField.createFields(m_ctx, m_curWindowNo, 0, m_curTab.getAD_Tab_ID());
Find find = new Find (Env.getFrame(this), m_curWindowNo, m_curTab.getName(),
m_curTab.getAD_Table_ID(), m_curTab.getTableName(),
m_curTab.getWhereExtended(), findFields, 1);
MQuery query = find.getQuery();
find = null;
// Confirmed query
if (query != null)
{
m_onlyCurrentRows = false; // search history too
m_curTab.setQuery(query);
m_curGC.query(m_onlyCurrentRows, m_onlyCurrentDays); // autoSize
}
aFind.setPressed(m_curTab.isQueryActive());
} // cmd_find
/**
* Attachment
*/
private void cmd_attachment()
{
log.info("");
int record_ID = m_curTab.getRecord_ID();
if (record_ID == -1) // No Key
{
aAttachment.setEnabled(false);
return;
}
Attachment va = new Attachment (Env.getFrame(this), m_curWindowNo,
m_curTab.getAD_AttachmentID(), m_curTab.getAD_Table_ID(), record_ID, null);
//
m_curTab.loadAttachments(); // reload
aAttachment.setPressed(m_curTab.hasAttachment());
} // attachment
/**
* Lock
*/
private void cmd_lock()
{
log.info("Modifiers=" + m_lastModifiers);
if (!m_isPersonalLock)
return;
int record_ID = m_curTab.getRecord_ID();
if (record_ID == -1) // No Key
return;
// Control Pressed
if ((m_lastModifiers & InputEvent.CTRL_MASK) != 0)
{
new RecordAccessDialog(Env.getFrame(this), m_curTab.getAD_Table_ID(), record_ID);
}
else
{
m_curTab.lock (Env.getCtx(), record_ID, aLock.getButton().isSelected());
m_curTab.loadAttachments(); // reload
}
aLock.setPressed(m_curTab.isLocked());
} // lock
/**
* Toggle History
*/
private void cmd_history()
{
log.info("");
if (m_mWorkbench.getMWindow(getWindowIndex()).isTransaction())
{
if (m_curTab.needSave(true, true) && !cmd_save(false))
return;
Point pt = new Point (0, aHistory.getButton().getBounds().height);
SwingUtilities.convertPointToScreen(pt, aHistory.getButton());
VOnlyCurrentDays ocd = new VOnlyCurrentDays(Env.getFrame(this), pt);
m_onlyCurrentDays = ocd.getCurrentDays();
if (m_onlyCurrentDays == 1) // Day
{
m_onlyCurrentRows = true;
m_onlyCurrentDays = 0; // no Created restriction
}
else
m_onlyCurrentRows = false;
log.config("OnlyCurrent=" + m_onlyCurrentRows + ", Days=" + m_onlyCurrentDays);
// No check for max query records
m_curGC.query(m_onlyCurrentRows, m_onlyCurrentDays); // autoSize
}
} // cmd_history
/**
* Help
*/
private void cmd_help()
{
log.info("");
Help hlp = new Help (Env.getFrame(this), this.getTitle(), m_mWorkbench.getMWindow(getWindowIndex()));
hlp.setVisible(true);
} // cmd_help
/**
* Close this screen - after save
* @param exit ask if user wants to exit application
*/
private void cmd_end (boolean exit)
{
boolean exitSystem = false;
if (!cmd_save(false))
return;
if (exit && ADialog.ask(m_curWindowNo, this, "ExitApplication?"))
exitSystem = true;
Env.getFrame(this).dispose(); // calls this dispose
if (exitSystem)
AEnv.exit(0);
} // cmd_end
/**
* Set Window Size
*/
private void cmd_winSize()
{
Dimension size = getSize();
if (!ADialog.ask(m_curWindowNo, this, "WinSizeSet",
"x=" + size.width + " - y=" + size.height))
{
setPreferredSize(null);
SwingUtilities.getWindowAncestor(this).pack();
size = new Dimension (0,0);
}
//
M_Window win = new M_Window(m_ctx, m_curTab.getAD_Window_ID(), null);
win.setWindowSize(size);
win.save();
} // cmdWinSize
/**************************************************************************
* Start Button Process
* @param vButton button
*/
private void actionButton (VButton vButton)
{
log.info(vButton.toString());
boolean startWOasking = false;
String col = vButton.getColumnName();
// Zoom
if (col.equals("Record_ID"))
{
int AD_Table_ID = Env.getContextAsInt (m_ctx, m_curWindowNo, "AD_Table_ID");
int Record_ID = Env.getContextAsInt (m_ctx, m_curWindowNo, "Record_ID");
AEnv.zoom(AD_Table_ID, Record_ID);
return;
} // Zoom
// save first ---------------
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
//
int table_ID = m_curTab.getAD_Table_ID();
// Record_ID
int record_ID = m_curTab.getRecord_ID();
// Record_ID - Language Handling
if (record_ID == -1 && m_curTab.getKeyColumnName().equals("AD_Language"))
record_ID = Env.getContextAsInt (m_ctx, m_curWindowNo, "AD_Language_ID");
// Record_ID - Change Log ID
if (record_ID == -1
&& (vButton.getProcess_ID() == 306 || vButton.getProcess_ID() == 307))
{
Integer id = (Integer)m_curTab.getValue("AD_ChangeLog_ID");
record_ID = id.intValue();
}
// Ensure it's saved
if (record_ID == -1 && m_curTab.getKeyColumnName().endsWith("_ID"))
{
ADialog.error(m_curWindowNo, this, "SaveErrorRowNotFound");
return;
}
// Pop up Payment Rules
if (col.equals("PaymentRule"))
{
VPayment vp = new VPayment(m_curWindowNo, m_curTab, vButton);
if (vp.isInitOK()) // may not be allowed
vp.setVisible(true);
vp.dispose();
if (vp.needSave())
{
cmd_save(false);
cmd_refresh();
}
} // PaymentRule
// Pop up Document Action (Workflow)
else if (col.equals("DocAction"))
{
VDocAction vda = new VDocAction(m_curWindowNo, m_curTab, vButton, record_ID);
// Something to select from?
if (vda.getNumberOfOptions() == 0)
{
vda.dispose ();
log.info("DocAction - No Options");
return;
}
else
{
vda.setVisible(true);
if (!vda.getStartProcess())
return;
startWOasking = true;
vda.dispose();
}
} // DocAction
// Pop up Create From
else if (col.equals("CreateFrom"))
{
// m_curWindowNo
VCreateFrom vcf = VCreateFrom.create (m_curTab);
if (vcf != null)
{
if (vcf.isInitOK())
{
vcf.setVisible(true);
vcf.dispose();
m_curTab.dataRefresh();
}
else
vcf.dispose();
return;
}
// else may start process
} // CreateFrom
// Posting -----
else if (col.equals("Posted") && MRole.getDefault().isShowAcct())
{
// Check Doc Status
String processed = Env.getContext(m_ctx, m_curWindowNo, "Processed");
if (!processed.equals("Y"))
{
String docStatus = Env.getContext(m_ctx, m_curWindowNo, "DocStatus");
if (DocAction.STATUS_Completed.equals(docStatus)
|| DocAction.STATUS_Closed.equals(docStatus)
|| DocAction.STATUS_Reversed.equals(docStatus)
|| DocAction.STATUS_Voided.equals(docStatus))
;
else
{
ADialog.error(m_curWindowNo, this, "PostDocNotComplete");
return;
}
}
// Check Post Status
Object ps = m_curTab.getValue("Posted");
if (ps != null && ps.equals("Y"))
{
new org.compiere.acct.AcctViewer (Env.getContextAsInt (m_ctx, m_curWindowNo, "AD_Client_ID"),
m_curTab.getAD_Table_ID(), m_curTab.getRecord_ID());
}
else
{
if (ADialog.ask(m_curWindowNo, this, "PostImmediate?"))
{
String error = AEnv.postImmediate (m_curWindowNo, Env.getAD_Client_ID(m_ctx),
m_curTab.getAD_Table_ID(), m_curTab.getRecord_ID(), false);
m_curTab.dataRefresh();
if (error != null)
ADialog.error(m_curWindowNo, this, "PostingError-N", error);
}
}
return;
} // Posted
/**
* Start Process ----
*/
log.config("Process_ID=" + vButton.getProcess_ID() + ", Record_ID=" + record_ID);
if (vButton.getProcess_ID() == 0)
return;
// Save item changed
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// Ask user to start process, if Description and Help is not empty
if (!startWOasking && !(vButton.getDescription().equals("") && vButton.getHelp().equals("")))
if (!ADialog.ask(m_curWindowNo, this, "StartProcess?",
// "<b><i>" + vButton.getText() + "</i></b><br>" +
vButton.getDescription() + "\n" + vButton.getHelp()))
return;
//
String title = vButton.getDescription();
if (title == null || title.length() == 0)
title = vButton.getName();
ProcessInfo pi = new ProcessInfo (title, vButton.getProcess_ID(), table_ID, record_ID);
pi.setAD_User_ID (Env.getAD_User_ID(m_ctx));
pi.setAD_Client_ID (Env.getAD_Client_ID(m_ctx));
// Trx trx = Trx.get(Trx.createTrxName("AppsPanel"), true);
ProcessCtl.process(this, m_curWindowNo, pi, null); // calls lockUI, unlockUI
} // actionButton
/**************************************************************************
* Lock User Interface.
* Called from the Worker before processing
* @param pi process info
*/
public void lockUI (ProcessInfo pi)
{
// log.fine("" + pi);
setBusy(true);
} // lockUI
/**
* Unlock User Interface.
* Called from the Worker when processing is done
* @param pi of execute ASync call
*/
public void unlockUI (ProcessInfo pi)
{
// log.fine("" + pi);
setBusy(false);
// Process Result
if (pi != null // refresh if not print
&& pi.getAD_Process_ID() != m_curTab.getAD_Process_ID())
{
// Refresh data
m_curTab.dataRefresh();
m_curGC.dynamicDisplay(0);
// Update Status Line
setStatusLine(pi.getSummary(), pi.isError());
// Get Log Info
ProcessInfoUtil.setLogFromDB(pi);
String log = pi.getLogInfo();
if (log.length() > 0)
ADialog.info(m_curWindowNo, this, Env.getHeader(m_ctx, m_curWindowNo),
pi.getTitle(), log); // clear text
}
} // unlockUI
/**
* Is the UI locked (Internal method)
* @return true, if UI is locked
*/
public boolean isUILocked()
{
return m_isLocked;
} // isLoacked
/**
* Method to be executed async.
* Called from the ASyncProcess worker
* @param pi process info
*/
public void executeASync (ProcessInfo pi)
{
log.config("-");
} // executeASync
/**
* Get Current Tab
* @return current tab
*/
protected MTab getCurrentTab()
{
return m_curTab;
} // getCurrentTab
/**
* String representation
* @return String representation
*/
public String toString()
{
String s = "APanel[curWindowNo=" + m_curWindowNo;
if (m_mWorkbench != null)
s += ",WB=" + m_mWorkbench.toString();
s += "]";
return s;
} // toString
} // APanel
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -