IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation. Added search editor processing feedback. Fixed order by and where clause for info product window. In progress implementation of info bpartner window.
This commit is contained in:
parent
66c7e2267e
commit
70c91a34c9
|
@ -47,6 +47,8 @@ import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.DisplayType;
|
import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
import org.zkoss.zk.ui.Executions;
|
||||||
|
import org.zkoss.zk.ui.Page;
|
||||||
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;
|
||||||
|
@ -67,12 +69,15 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
private String columnName;
|
private String columnName;
|
||||||
private Object value;
|
private Object value;
|
||||||
private InfoPanel infoPanel = null;
|
private InfoPanel infoPanel = null;
|
||||||
|
private String imageUrl;
|
||||||
|
|
||||||
private static CLogger log = CLogger.getCLogger(WSearchEditor.class);
|
private static CLogger log = CLogger.getCLogger(WSearchEditor.class);
|
||||||
|
|
||||||
|
private static final String IN_PROGRESS_IMAGE = "~./zk/img/progress3.gif";
|
||||||
|
|
||||||
public WSearchEditor (GridField gridField)
|
public WSearchEditor (GridField gridField)
|
||||||
{
|
{
|
||||||
super(new Searchbox(), gridField);
|
super(new CustomSearchBox(), gridField);
|
||||||
|
|
||||||
lookup = gridField.getLookup();
|
lookup = gridField.getLookup();
|
||||||
|
|
||||||
|
@ -150,21 +155,22 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
{
|
{
|
||||||
|
|
||||||
columnName = this.getColumnName();
|
columnName = this.getColumnName();
|
||||||
|
imageUrl = "/images/PickOpen10.png";
|
||||||
if (columnName.equals("C_BPartner_ID"))
|
if (columnName.equals("C_BPartner_ID"))
|
||||||
{
|
{
|
||||||
popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), true, true, false, lookup);
|
popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), true, true, false, lookup);
|
||||||
getComponent().setButtonImage("/images/BPartner10.png");
|
imageUrl = "/images/BPartner10.png";
|
||||||
}
|
}
|
||||||
else if (columnName.equals("M_Product_ID"))
|
else if (columnName.equals("M_Product_ID"))
|
||||||
{
|
{
|
||||||
popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), false, false, false, lookup);
|
popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), false, false, false, lookup);
|
||||||
getComponent().setButtonImage("/images/Product10.png");
|
imageUrl = "/images/Product10.png";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), false, false, false, lookup);
|
popupMenu = new WEditorPopupMenu(true, true, isShowPreference(), false, false, false, lookup);
|
||||||
getComponent().setButtonImage("/images/PickOpen10.png");
|
|
||||||
}
|
}
|
||||||
|
getComponent().getButton().setImage(imageUrl);
|
||||||
|
|
||||||
addChangeLogMenu(popupMenu);
|
addChangeLogMenu(popupMenu);
|
||||||
|
|
||||||
|
@ -319,6 +325,7 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
if (text == null || text.length() == 0 || text.equals("%"))
|
if (text == null || text.length() == 0 || text.equals("%"))
|
||||||
{
|
{
|
||||||
actionButton(text);
|
actionButton(text);
|
||||||
|
resetButtonState();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (log.isLoggable(Level.CONFIG))
|
if (log.isLoggable(Level.CONFIG))
|
||||||
|
@ -351,16 +358,25 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
{
|
{
|
||||||
actionButton(getComponent().getText());
|
actionButton(getComponent().getText());
|
||||||
}
|
}
|
||||||
|
resetButtonState();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (log.isLoggable(Level.FINE))
|
if (log.isLoggable(Level.FINE))
|
||||||
log.fine(getColumnName() + " - Unique ID=" + id);
|
log.fine(getColumnName() + " - Unique ID=" + id);
|
||||||
|
|
||||||
actionCombo(new Integer(id)); // data binding
|
actionCombo(new Integer(id)); // data binding
|
||||||
//m_text.requestFocus();
|
|
||||||
|
resetButtonState();
|
||||||
} // actionText
|
} // actionText
|
||||||
|
|
||||||
|
|
||||||
|
private void resetButtonState() {
|
||||||
|
getComponent().getButton().setEnabled(true);
|
||||||
|
getComponent().getButton().setImage(imageUrl);
|
||||||
|
getComponent().invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void actionCombo (Object value)
|
private void actionCombo (Object value)
|
||||||
{
|
{
|
||||||
if (log.isLoggable(Level.FINE))
|
if (log.isLoggable(Level.FINE))
|
||||||
|
@ -533,7 +549,6 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
m_tableName = m_columnName.substring(0, m_columnName.length()-3);
|
m_tableName = m_columnName.substring(0, m_columnName.length()-3);
|
||||||
m_keyColumnName = m_columnName;
|
m_keyColumnName = m_columnName;
|
||||||
|
|
||||||
//TODO: check info window definition
|
|
||||||
if (m_columnName.equals("M_Product_ID"))
|
if (m_columnName.equals("M_Product_ID"))
|
||||||
{
|
{
|
||||||
// Reset
|
// Reset
|
||||||
|
@ -849,4 +864,24 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class CustomSearchBox extends Searchbox {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* generated serial id
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 7490301044763375829L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageAttached(Page newpage, Page oldpage) {
|
||||||
|
super.onPageAttached(newpage, oldpage);
|
||||||
|
if (newpage != null) {
|
||||||
|
String w = "var btn=jq('#'+this.parent.uuid+' @button').zk.$();";
|
||||||
|
getTextbox().setWidgetListener("onChange", "try{"+w+"btn.setImage(\""
|
||||||
|
+ Executions.getCurrent().encodeURL(IN_PROGRESS_IMAGE)+"\");"
|
||||||
|
+ "btn.setDisabled(true, {adbs: false, skip: false});}catch(err){}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
*/
|
*/
|
||||||
package org.adempiere.webui.info;
|
package org.adempiere.webui.info;
|
||||||
|
|
||||||
|
import org.adempiere.webui.panel.InvoiceHistory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hengsin
|
* @author hengsin
|
||||||
*
|
*
|
||||||
|
@ -49,4 +51,30 @@ public class InfoBPartnerWindow extends InfoWindow {
|
||||||
// TODO Auto-generated constructor stub
|
// TODO Auto-generated constructor stub
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Has History
|
||||||
|
* @return true
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected boolean hasHistory()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
} // hasHistory
|
||||||
|
|
||||||
|
// Elaine 2008/12/16
|
||||||
|
/**************************************************************************
|
||||||
|
* Show History
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected void showHistory()
|
||||||
|
{
|
||||||
|
log.info("");
|
||||||
|
Integer C_BPartner_ID = getSelectedRowKey();
|
||||||
|
if (C_BPartner_ID == null)
|
||||||
|
return;
|
||||||
|
InvoiceHistory ih = new InvoiceHistory (this, C_BPartner_ID.intValue(),
|
||||||
|
0, 0, 0);
|
||||||
|
ih.setVisible(true);
|
||||||
|
ih = null;
|
||||||
|
} // showHistory
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,6 +114,12 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
@Override
|
@Override
|
||||||
protected String getSQLWhere() {
|
protected String getSQLWhere() {
|
||||||
StringBuilder where = new StringBuilder(super.getSQLWhere());
|
StringBuilder where = new StringBuilder(super.getSQLWhere());
|
||||||
|
if (getSelectedWarehouseId() > 0) {
|
||||||
|
if (where.length() > 0) {
|
||||||
|
where.append(" AND ");
|
||||||
|
}
|
||||||
|
where.append("p.IsSummary='N' ");
|
||||||
|
}
|
||||||
return where.toString();
|
return where.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -801,4 +807,14 @@ public class InfoProductWindow extends InfoWindow {
|
||||||
String.valueOf(m_M_Locator_ID));
|
String.valueOf(m_M_Locator_ID));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void prepareTable(ColumnInfo[] layout, String from, String where,
|
||||||
|
String orderBy) {
|
||||||
|
if (getSelectedWarehouseId() > 0)
|
||||||
|
{
|
||||||
|
orderBy = "QtyAvailable DESC";
|
||||||
|
}
|
||||||
|
super.prepareTable(layout, from, where, orderBy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -772,6 +772,8 @@ span.z-tree-tee, span.z-tree-last {
|
||||||
.editor-box .editor-button img {
|
.editor-box .editor-button img {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.editor-box .editor-button-column {
|
.editor-box .editor-button-column {
|
||||||
|
|
Loading…
Reference in New Issue