* NPE bug.
[ 2164573 ] InfoPanel zoom doesn't work when not open by field editor
This commit is contained in:
parent
403efcc93d
commit
784d20d001
|
@ -23,6 +23,7 @@ import java.sql.Timestamp;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.Button;
|
import org.adempiere.webui.component.Button;
|
||||||
import org.adempiere.webui.component.Datebox;
|
import org.adempiere.webui.component.Datebox;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
|
@ -35,6 +36,7 @@ import org.adempiere.webui.event.WTableModelEvent;
|
||||||
import org.compiere.minigrid.ColumnInfo;
|
import org.compiere.minigrid.ColumnInfo;
|
||||||
import org.compiere.minigrid.IDColumn;
|
import org.compiere.minigrid.IDColumn;
|
||||||
import org.compiere.model.MLookupFactory;
|
import org.compiere.model.MLookupFactory;
|
||||||
|
import org.compiere.model.MQuery;
|
||||||
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;
|
||||||
|
@ -99,7 +101,7 @@ public class InfoAssignmentPanel extends InfoPanel implements EventListener, Val
|
||||||
public InfoAssignmentPanel (int WindowNo,
|
public InfoAssignmentPanel (int WindowNo,
|
||||||
String value, boolean multiSelection, String whereClause)
|
String value, boolean multiSelection, String whereClause)
|
||||||
{
|
{
|
||||||
super (WindowNo, "ra", "S_ResourceAssigment_ID",
|
super (WindowNo, "ra", "S_ResourceAssignment_ID",
|
||||||
multiSelection, whereClause);
|
multiSelection, whereClause);
|
||||||
log.info(value);
|
log.info(value);
|
||||||
setTitle(Msg.getMsg(Env.getCtx(), "InfoAssignment"));
|
setTitle(Msg.getMsg(Env.getCtx(), "InfoAssignment"));
|
||||||
|
@ -269,13 +271,13 @@ public class InfoAssignmentPanel extends InfoPanel implements EventListener, Val
|
||||||
sql.append(" AND r.S_Resource_ID=").append(S_Resource_ID.intValue());
|
sql.append(" AND r.S_Resource_ID=").append(S_Resource_ID.intValue());
|
||||||
|
|
||||||
Date f = fieldFrom.getValue();
|
Date f = fieldFrom.getValue();
|
||||||
Timestamp ts = new Timestamp(f.getTime());
|
Timestamp ts = f != null ? new Timestamp(f.getTime()) : null;
|
||||||
|
|
||||||
if (ts != null)
|
if (ts != null)
|
||||||
sql.append(" AND TRUNC(ra.AssignDateFrom)>=").append(DB.TO_DATE(ts,false));
|
sql.append(" AND TRUNC(ra.AssignDateFrom)>=").append(DB.TO_DATE(ts,false));
|
||||||
|
|
||||||
Date t = fieldTo.getValue();
|
Date t = fieldTo.getValue();
|
||||||
ts = new Timestamp(t.getTime());
|
ts = t != null ? new Timestamp(t.getTime()) : null;
|
||||||
|
|
||||||
if (ts != null)
|
if (ts != null)
|
||||||
sql.append(" AND TRUNC(ra.AssignDateTo)<=").append(DB.TO_DATE(ts,false));
|
sql.append(" AND TRUNC(ra.AssignDateTo)<=").append(DB.TO_DATE(ts,false));
|
||||||
|
@ -342,6 +344,19 @@ public class InfoAssignmentPanel extends InfoPanel implements EventListener, Val
|
||||||
|
|
||||||
public void zoom()
|
public void zoom()
|
||||||
{
|
{
|
||||||
|
if (getSelectedRowKey() != null && getSelectedRowKey() > 0)
|
||||||
|
{
|
||||||
|
MQuery zoomQuery = new MQuery(); // ColumnName might be changed in MTab.validateQuery
|
||||||
|
String column = getKeyColumn();
|
||||||
|
//strip off table name, fully qualify name doesn't work when zoom into detail tab
|
||||||
|
if (column.indexOf(".") > 0)
|
||||||
|
column = column.substring(column.indexOf(".")+1);
|
||||||
|
zoomQuery.addRestriction(column, MQuery.EQUAL, getSelectedRowKey());
|
||||||
|
zoomQuery.setRecordCount(1);
|
||||||
|
zoomQuery.setTableName(column.substring(0, column.length() - 3));
|
||||||
|
|
||||||
|
AEnv.zoom(236, zoomQuery);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -352,7 +367,7 @@ public class InfoAssignmentPanel extends InfoPanel implements EventListener, Val
|
||||||
|
|
||||||
boolean hasZoom()
|
boolean hasZoom()
|
||||||
{
|
{
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -343,10 +343,10 @@ public class InfoCashLinePanel extends InfoPanel implements ValueChangeListener,
|
||||||
sql.append(" AND TRUNC(c.StatementDate) BETWEEN ? AND ?");
|
sql.append(" AND TRUNC(c.StatementDate) BETWEEN ? AND ?");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fAmtFrom.getValue() != null || fAmtTo.getValue() != null)
|
if (!isEmpty(fAmtFrom.getValue()) || !isEmpty(fAmtTo.getValue()))
|
||||||
{
|
{
|
||||||
BigDecimal from = new BigDecimal(fAmtFrom.getValue());
|
BigDecimal from = isEmpty(fAmtFrom.getValue()) ? null : new BigDecimal(fAmtFrom.getValue());
|
||||||
BigDecimal to = new BigDecimal(fAmtTo.getValue());
|
BigDecimal to = isEmpty(fAmtTo.getValue()) ? null : new BigDecimal(fAmtTo.getValue());
|
||||||
|
|
||||||
if (cbAbsolute .isChecked())
|
if (cbAbsolute .isChecked())
|
||||||
sql.append(" AND ABS(cl.Amount)");
|
sql.append(" AND ABS(cl.Amount)");
|
||||||
|
@ -370,6 +370,10 @@ public class InfoCashLinePanel extends InfoPanel implements ValueChangeListener,
|
||||||
return sql.toString();
|
return sql.toString();
|
||||||
} // getSQLWhere
|
} // getSQLWhere
|
||||||
|
|
||||||
|
private boolean isEmpty(String value) {
|
||||||
|
return value == null || value.trim().length() == 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Parameters for Query.
|
* Set Parameters for Query.
|
||||||
* (as defined in getSQLWhere)
|
* (as defined in getSQLWhere)
|
||||||
|
@ -419,10 +423,10 @@ public class InfoCashLinePanel extends InfoPanel implements ValueChangeListener,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fAmtFrom.getValue() != null || fAmtTo.getValue() != null)
|
if (!isEmpty(fAmtFrom.getValue()) || !isEmpty(fAmtTo.getValue()))
|
||||||
{
|
{
|
||||||
BigDecimal from = new BigDecimal(fAmtFrom.getValue());
|
BigDecimal from = isEmpty(fAmtFrom.getValue()) ? null : new BigDecimal(fAmtFrom.getValue());
|
||||||
BigDecimal to = new BigDecimal(fAmtTo.getValue());
|
BigDecimal to = isEmpty(fAmtTo.getValue()) ? null : new BigDecimal(fAmtTo.getValue());
|
||||||
|
|
||||||
if (cbAbsolute.isChecked())
|
if (cbAbsolute.isChecked())
|
||||||
{
|
{
|
||||||
|
|
|
@ -382,25 +382,6 @@ public class InfoInOutPanel extends InfoPanel implements ValueChangeListener, Ev
|
||||||
return s;
|
return s;
|
||||||
} // getSQLText
|
} // getSQLText
|
||||||
|
|
||||||
/**
|
|
||||||
* Zoom
|
|
||||||
*/
|
|
||||||
|
|
||||||
public void zoom()
|
|
||||||
{
|
|
||||||
/* log.info( "InfoInOut.zoom");
|
|
||||||
Integer M_InOut_ID = getSelectedRowKey();
|
|
||||||
|
|
||||||
if (M_InOut_ID == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
MQuery query = new MQuery("M_InOut");
|
|
||||||
query.addRestriction("M_InOut_ID", MQuery.EQUAL, M_InOut_ID);
|
|
||||||
query.setRecordCount(1);
|
|
||||||
int AD_WindowNo = getAD_Window_ID("M_InOut", fIsSOTrx.isSelected());
|
|
||||||
zoom (AD_WindowNo, query);*/
|
|
||||||
} // zoom
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Has Zoom
|
* Has Zoom
|
||||||
* @return true
|
* @return true
|
||||||
|
|
|
@ -315,7 +315,7 @@ public class InfoOrderPanel extends InfoPanel implements ValueChangeListener
|
||||||
//
|
//
|
||||||
Double fromAmount = null;
|
Double fromAmount = null;
|
||||||
Double toAmount = null;
|
Double toAmount = null;
|
||||||
if (!amountFrom.getText().equals(""))
|
if (amountFrom.getText() != null && amountFrom.getText().trim().length() > 0)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -326,7 +326,7 @@ public class InfoOrderPanel extends InfoPanel implements ValueChangeListener
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!amountTo.getText().equals(""))
|
if (amountTo.getText() != null && amountTo.getText().trim().length() > 0)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -424,7 +424,7 @@ public class InfoOrderPanel extends InfoPanel implements ValueChangeListener
|
||||||
Double fromAmt = null;
|
Double fromAmt = null;
|
||||||
Double toAmt = null;
|
Double toAmt = null;
|
||||||
|
|
||||||
if (!amountFrom.getText().equals(""))
|
if (amountFrom.getText() != null && amountFrom.getText().trim().length() > 0)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -437,7 +437,7 @@ public class InfoOrderPanel extends InfoPanel implements ValueChangeListener
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!amountTo.getText().equals(""))
|
if (amountTo.getText() != null && amountTo.getText().trim().length() > 0)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.adempiere.webui.event.WTableModelListener;
|
||||||
import org.compiere.minigrid.ColumnInfo;
|
import org.compiere.minigrid.ColumnInfo;
|
||||||
import org.compiere.minigrid.IDColumn;
|
import org.compiere.minigrid.IDColumn;
|
||||||
import org.compiere.model.MRole;
|
import org.compiere.model.MRole;
|
||||||
|
import org.compiere.model.MTable;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
|
@ -862,9 +863,26 @@ public abstract class InfoPanel extends Window implements EventListener, WTableM
|
||||||
|
|
||||||
public void zoom()
|
public void zoom()
|
||||||
{
|
{
|
||||||
ValueChangeEvent event = new ValueChangeEvent(this,"zoom",
|
if (listeners != null && listeners.size() > 0)
|
||||||
contentPanel.getSelectedRowKey(),contentPanel.getSelectedRowKey());
|
{
|
||||||
fireValueChange(event);
|
ValueChangeEvent event = new ValueChangeEvent(this,"zoom",
|
||||||
|
contentPanel.getSelectedRowKey(),contentPanel.getSelectedRowKey());
|
||||||
|
fireValueChange(event);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int recordId = contentPanel.getSelectedRowKey();
|
||||||
|
int AD_Table_ID = MTable.getTable_ID(p_tableName);
|
||||||
|
if (AD_Table_ID <= 0)
|
||||||
|
{
|
||||||
|
if (p_keyColumn.endsWith("_ID"))
|
||||||
|
{
|
||||||
|
AD_Table_ID = MTable.getTable_ID(p_keyColumn.substring(0, p_keyColumn.length() - 3));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (AD_Table_ID > 0)
|
||||||
|
AEnv.zoom(AD_Table_ID, recordId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addValueChangeListener(ValueChangeListener listener)
|
public void addValueChangeListener(ValueChangeListener listener)
|
||||||
|
|
Loading…
Reference in New Issue