use of org.adempiere.model.MBrowse in project adempiere by adempiere.
the class APanel method actionButton.
/**************************************************************************
* Start Button Process
* @param vButton button
*/
protected void actionButton(VButton vButton) {
log.info(vButton.toString());
if (m_curTab.hasChangedCurrentTabAndParents()) {
String msg = CLogger.retrieveErrorString("Please ReQuery Window");
ADialog.error(m_curWindowNo, this, null, msg);
return;
}
boolean startWOasking = false;
// boolean batch = 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;
}
// save first ---------------
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// Save included tabs if necessary - teo_sarca BF [ 2876892 ]
for (GridTab includedTab : m_curTab.getIncludedTabs()) {
if (includedTab.needSave(true, false))
if (!includedTab.dataSave(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;
}
boolean isProcessMandatory = false;
// Pop up Payment Rules
if (col.equals("PaymentRule")) {
VPayment vp = new VPayment(m_curWindowNo, m_curTab, vButton);
if (// may not be allowed
vp.isInitOK())
vp.setVisible(true);
vp.dispose();
if (vp.needSave()) {
cmd_save(false);
cmd_refresh();
}
} else // Pop up Document Action (Workflow)
if (col.equals("DocAction")) {
isProcessMandatory = true;
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.isStartProcess())
return;
// batch = vda.isBatch();
startWOasking = true;
vda.dispose();
}
} else // Pop up Create From
if (col.equals("CreateFrom")) {
// Run form only if the button has no process defined - teo_sarca [ 1974354 ]
if (vButton.getProcess_ID() <= 0) {
ICreateFrom cf = VCreateFromFactory.create(m_curTab);
if (cf != null) {
if (cf.isInitOK()) {
cf.showWindow();
cf.closeWindow();
m_curTab.dataRefresh();
} else
cf.closeWindow();
return;
}
// else may start process
}
} else // Posting -----
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;
}
}
// try to get table and record id from context data (eg for unposted view)
// otherwise use current table/record
int tableId = Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Table_ID", true);
int recordId = Env.getContextAsInt(m_ctx, m_curWindowNo, "Record_ID", true);
if (tableId == 0 || recordId == 0) {
tableId = m_curTab.getAD_Table_ID();
recordId = m_curTab.getRecord_ID();
}
// 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"), tableId, recordId);
} else {
if (ADialog.ask(m_curWindowNo, this, "PostImmediate?")) {
// force when problems
boolean force = ps != null && !ps.equals("N");
String error = AEnv.postImmediate(m_curWindowNo, Env.getAD_Client_ID(m_ctx), tableId, recordId, force);
if (error != null)
ADialog.error(m_curWindowNo, this, "PostingError-N", error);
cmd_refresh();
}
}
return;
}
// Posted
/**
* Start Process ----
* or invoke user form
*/
log.config("Process_ID=" + vButton.getProcess_ID() + ", Record_ID=" + record_ID);
if (vButton.getProcess_ID() == 0) {
if (isProcessMandatory) {
ADialog.error(m_curWindowNo, this, null, Msg.parseTranslation(m_ctx, "@NotFound@ @AD_Process_ID@"));
}
return;
}
// Save item changed
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// call form
MProcess pr = new MProcess(m_ctx, vButton.getProcess_ID(), null);
// Validate Access
MRole role = MRole.getDefault(m_ctx, false);
Boolean accessRW = role.checkProcessAccess(pr.getAD_Process_ID());
if (accessRW == null || !accessRW.booleanValue()) {
ADialog.error(m_curWindowNo, this, null, Msg.parseTranslation(m_ctx, "@AccessCannotProcess@"));
return;
}
//
int form_ID = pr.getAD_Form_ID();
if (form_ID != 0) {
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
return;
// Yamel Senih FR [ 114 ] 2015-11-23 Add Support to Dialog for create from
FormFrame ff = new FormFrame(getWindowNo());
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));
ff.setProcessInfo(pi);
ff.openForm(form_ID);
ff.pack();
AEnv.showCenterScreen(ff);
// Refresh
m_curTab.dataRefresh();
// End Yamel Senih
return;
}
int browse_ID = pr.getAD_Browse_ID();
if (browse_ID != 0) {
if (m_curTab.needSave(true, false))
if (!cmd_save(true))
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));
FormFrame ff = new FormFrame(getWindowNo());
ff.setProcessInfo(pi);
MBrowse browse = new MBrowse(Env.getCtx(), browse_ID, null);
new VBrowser(ff, true, getWindowNo(), "", browse, "", true, "", Env.isSOTrx(Env.getCtx(), m_curWindowNo));
ff.pack();
AEnv.showCenterScreen(ff);
// Yamel Senih
// Refresh
m_curTab.dataRefresh();
return;
} else {
ProcessModalDialog dialog = new ProcessModalDialog(m_ctx, Env.getWindow(m_curWindowNo), Env.getHeader(m_ctx, m_curWindowNo), this, m_curWindowNo, vButton.getProcess_ID(), table_ID, record_ID, startWOasking);
// BR [ 323 ]
if (!startWOasking) {
dialog.validate();
dialog.pack();
AEnv.showCenterWindow(Env.getWindow(m_curWindowNo), dialog);
}
}
}
use of org.adempiere.model.MBrowse in project adempiere by adempiere.
the class VBrowser method openBrowse.
/**
* get Browse
* @param windowNo
* @param browserId
* @param whereClause
* @param isSOTrx
*/
public static CFrame openBrowse(int windowNo, int browserId, String whereClause, Boolean isSOTrx) {
MBrowse browse = new MBrowse(Env.getCtx(), browserId, null);
boolean modal = false;
if (windowNo > 0)
modal = true;
String value = "";
String keyColumn = "";
boolean multiSelection = true;
FormFrame ff = new FormFrame(windowNo);
return new VBrowser(ff, modal, windowNo, value, browse, keyColumn, multiSelection, whereClause, isSOTrx).getFrame();
}
use of org.adempiere.model.MBrowse in project adempiere by adempiere.
the class VBrowser method main.
// Worker
public static void main(String[] args) {
Splash.getSplash();
// Adempiere.startup(true); // needs to be here for UI
// Adempiere.startupEnvironment(false);
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");
// Ini.setProperty(Ini.P_PRINTER,"MyPrinter");
Login login = new Login(Env.getCtx());
login.batchLogin();
Properties m_ctx = Env.getCtx();
MBrowse browse = new MBrowse(m_ctx, 50025, null);
FormFrame frame = new FormFrame(0);
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, true);
// browser.setPreferredSize(getPreferredSize ());
browser.getFrame().setVisible(true);
browser.getFrame().pack();
}
use of org.adempiere.model.MBrowse in project adempiere by adempiere.
the class BrowseElementHandler method create.
public void create(Properties ctx, TransformerHandler document) throws SAXException {
int AD_Browse_ID = Env.getContextAsInt(ctx, "AD_Browse_ID");
PackOut packOut = (PackOut) ctx.get("PackOutProcess");
MBrowse m_Browse = new MBrowse(ctx, AD_Browse_ID, null);
AttributesImpl atts = new AttributesImpl();
packOut.createView(m_Browse.getAD_View_ID(), document);
packOut.createProcess(m_Browse.getAD_Process_ID(), document);
createBrowseBinding(atts, m_Browse);
document.startElement("", "", "browse", atts);
// Tab Tag
StringBuilder whereClause = new StringBuilder(I_AD_Browse_Field.COLUMNNAME_AD_Browse_ID).append("=?");
List<MBrowseField> browseFields = new Query(ctx, I_AD_Browse_Field.Table_Name, whereClause.toString(), getTrxName(ctx)).setParameters(m_Browse.getAD_Browse_ID()).list();
for (MBrowseField bf : browseFields) {
createBrowseField(ctx, document, bf.getAD_Browse_Field_ID());
}
// Loop tags.
document.endElement("", "", "browse");
}
use of org.adempiere.model.MBrowse in project adempiere by adempiere.
the class BrowseElementHandler method startElement.
public void startElement(Properties ctx, Element element) throws SAXException {
// Check namespace.
String elementValue = element.getElementValue();
Attributes atts = element.attributes;
log.info(elementValue + " " + atts.getValue("Name"));
String entitytype = atts.getValue("EntityType");
if (isProcessElement(ctx, entitytype)) {
String name = atts.getValue("Name");
int id = get_ID(ctx, "AD_Browse", name);
if (id > 0 && browses.contains(id)) {
return;
}
MBrowse m_Browse = new MBrowse(ctx, id, getTrxName(ctx));
if (id <= 0 && atts.getValue("AD_Browse_ID") != null && Integer.parseInt(atts.getValue("AD_Browse_ID")) <= PackOut.MAX_OFFICIAL_ID)
m_Browse.setAD_Browse_ID(Integer.parseInt(atts.getValue("AD_Browse_ID")));
String Object_Status = null;
int AD_Backup_ID = -1;
if (id > 0) {
AD_Backup_ID = copyRecord(ctx, "AD_Browse", m_Browse);
Object_Status = "Update";
} else {
Object_Status = "New";
AD_Backup_ID = 0;
}
if (getStringValue(atts, "ADViewNameID") != null) {
name = atts.getValue("ADViewNameID");
id = get_IDWithColumn(ctx, "AD_View", "Name", name);
if (id <= 0) {
element.defer = true;
element.unresolved = "AD_View: " + name;
return;
}
m_Browse.setAD_View_ID(id);
}
if (getStringValue(atts, "ADProcessNameID") != null) {
name = atts.getValue("ADProcessNameID");
if (name != null && name.trim().length() > 0) {
id = get_IDWithColumn(ctx, "AD_Process", "Name", name);
if (id <= 0) {
element.defer = true;
element.unresolved = "AD_Process: " + name;
return;
}
m_Browse.setAD_Process_ID(id);
}
}
if (getStringValue(atts, "ADWindowNameID") != null) {
name = atts.getValue("ADWindowNameID");
if (name != null && name.trim().length() > 0) {
id = get_IDWithColumn(ctx, "AD_Window", "Name", name);
if (id <= 0) {
element.defer = true;
element.unresolved = "AD_Window: " + name;
return;
}
m_Browse.setAD_Window_ID(id);
}
}
m_Browse.setValue(atts.getValue("Value"));
m_Browse.setName(atts.getValue("Name"));
m_Browse.setDescription(getStringValue(atts, "Description"));
m_Browse.setHelp(getStringValue(atts, "Help"));
m_Browse.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue() : true);
m_Browse.setIsCollapsibleByDefault(atts.getValue("IsCollapsibleByDefault") != null ? Boolean.valueOf(atts.getValue("IsCollapsibleByDefault")).booleanValue() : true);
m_Browse.setIsDeleteable(atts.getValue("IsDeleteable") != null ? Boolean.valueOf(atts.getValue("IsDeleteable")).booleanValue() : true);
m_Browse.setIsExecutedQueryByDefault(atts.getValue("IsExecutedQueryByDefault") != null ? Boolean.valueOf(atts.getValue("IsExecutedQueryByDefault")).booleanValue() : true);
m_Browse.setIsSelectedByDefault(atts.getValue("IsSelectedByDefault") != null ? Boolean.valueOf(atts.getValue("IsSelectedByDefault")).booleanValue() : true);
m_Browse.setIsShowTotal(atts.getValue("IsShowTotal") != null ? Boolean.valueOf(atts.getValue("IsShowTotal")).booleanValue() : true);
m_Browse.setEntityType(atts.getValue("EntityType"));
m_Browse.setWhereClause(atts.getValue("WhereClause"));
m_Browse.setAccessLevel(atts.getValue("AccessLevel"));
if (m_Browse.save(getTrxName(ctx)) == true) {
record_log(ctx, 1, m_Browse.getName(), "Browse", m_Browse.get_ID(), AD_Backup_ID, Object_Status, "AD_Browse", get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Browse"));
element.recordId = m_Browse.getAD_Browse_ID();
browses.add(m_Browse.getAD_Browse_ID());
} else {
record_log(ctx, 0, m_Browse.getName(), "Browse", m_Browse.get_ID(), AD_Backup_ID, Object_Status, "AD_Browse", get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Browse"));
throw new POSaveFailedException("Browse");
}
} else {
element.skip = true;
}
}
Aggregations