IDEMPIERE-3978 Zoom from QuickInfo to a specific window / peer review and tests
This commit is contained in:
parent
c0b4da403d
commit
b600b9878d
|
|
@ -49,7 +49,7 @@ public class MQuery implements Serializable
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 481623650333512326L;
|
private static final long serialVersionUID = -1495322773308601375L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Query from Parameter
|
* Get Query from Parameter
|
||||||
|
|
@ -386,12 +386,12 @@ public class MQuery implements Serializable
|
||||||
private int m_zoomWindow_ID;
|
private int m_zoomWindow_ID;
|
||||||
|
|
||||||
|
|
||||||
public int getM_zoomWindow_ID() {
|
public int getZoomWindowID() {
|
||||||
return m_zoomWindow_ID;
|
return m_zoomWindow_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setM_zoomWindow_ID(int m_zoomWindow_ID) {
|
public void setZoomWindowID(int m_zoomWindow_ID) {
|
||||||
this.m_zoomWindow_ID = m_zoomWindow_ID;
|
this.m_zoomWindow_ID = m_zoomWindow_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import java.awt.Dimension;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
@ -41,7 +42,7 @@ public class MWindow extends X_AD_Window
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 8966733945232755787L;
|
private static final long serialVersionUID = -6027810254265627308L;
|
||||||
|
|
||||||
/** Static Logger */
|
/** Static Logger */
|
||||||
private static CLogger s_log = CLogger.getCLogger (MWindow.class);
|
private static CLogger s_log = CLogger.getCLogger (MWindow.class);
|
||||||
|
|
@ -69,6 +70,39 @@ public class MWindow extends X_AD_Window
|
||||||
return retValue;
|
return retValue;
|
||||||
} // get
|
} // get
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get Window ID by UU
|
||||||
|
* @param ctx context
|
||||||
|
* @param uu AD_Window_UU
|
||||||
|
* @return MWindow object
|
||||||
|
*/
|
||||||
|
public static synchronized MWindow get(Properties ctx, String uu)
|
||||||
|
{
|
||||||
|
if (uu == null)
|
||||||
|
return null;
|
||||||
|
MWindow retValue = null;
|
||||||
|
Iterator<MWindow> it = s_cache.values().iterator();
|
||||||
|
while (it.hasNext())
|
||||||
|
{
|
||||||
|
retValue = it.next();
|
||||||
|
if (uu.equals(retValue.getAD_Window_UU()) && retValue.getCtx() == ctx)
|
||||||
|
{
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final String whereClause = MWindow.COLUMNNAME_AD_Window_UU + "=?";
|
||||||
|
MWindow window = new Query(Env.getCtx(), MWindow.Table_Name, whereClause, null)
|
||||||
|
.setParameters(uu)
|
||||||
|
.setOnlyActiveRecords(true)
|
||||||
|
.first();
|
||||||
|
|
||||||
|
if (window != null)
|
||||||
|
retValue = window;
|
||||||
|
|
||||||
|
return retValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard Constructor
|
* Standard Constructor
|
||||||
* @param ctx context
|
* @param ctx context
|
||||||
|
|
@ -241,26 +275,4 @@ public class MWindow extends X_AD_Window
|
||||||
}
|
}
|
||||||
//end vpj-cd e-evolution
|
//end vpj-cd e-evolution
|
||||||
|
|
||||||
/**
|
|
||||||
* get Window ID by UU
|
|
||||||
* @param uu
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static int findByUU(String uu)
|
|
||||||
{
|
|
||||||
int retValue = 0;
|
|
||||||
|
|
||||||
final String whereClause = MWindow.COLUMNNAME_AD_Window_UU + "=?";
|
|
||||||
|
|
||||||
MWindow window = new Query(Env.getCtx(), MWindow.Table_Name, whereClause, null)
|
|
||||||
.setParameters(uu)
|
|
||||||
.setOnlyActiveRecords(true)
|
|
||||||
.first();
|
|
||||||
|
|
||||||
if (window != null)
|
|
||||||
retValue = window.get_ID();
|
|
||||||
|
|
||||||
return retValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // M_Window
|
} // M_Window
|
||||||
|
|
|
||||||
|
|
@ -462,7 +462,7 @@ public final class AEnv
|
||||||
if (query == null || query.getTableName() == null || query.getTableName().length() == 0)
|
if (query == null || query.getTableName() == null || query.getTableName().length() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int AD_Window_ID = query.getM_zoomWindow_ID();
|
int AD_Window_ID = query.getZoomWindowID();
|
||||||
|
|
||||||
if (AD_Window_ID <= 0)
|
if (AD_Window_ID <= 0)
|
||||||
AD_Window_ID = Env.getZoomWindowID(query);
|
AD_Window_ID = Env.getZoomWindowID(query);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import java.util.Map;
|
||||||
import org.adempiere.webui.event.ZoomEvent;
|
import org.adempiere.webui.event.ZoomEvent;
|
||||||
import org.compiere.model.MQuery;
|
import org.compiere.model.MQuery;
|
||||||
import org.compiere.model.MWindow;
|
import org.compiere.model.MWindow;
|
||||||
|
import org.compiere.util.Env;
|
||||||
import org.zkoss.json.JSONArray;
|
import org.zkoss.json.JSONArray;
|
||||||
import org.zkoss.lang.Objects;
|
import org.zkoss.lang.Objects;
|
||||||
import org.zkoss.zk.au.AuRequest;
|
import org.zkoss.zk.au.AuRequest;
|
||||||
|
|
@ -69,10 +70,13 @@ public class ZoomCommand implements AuService {
|
||||||
code = data.get(1);
|
code = data.get(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.size() > 3)
|
if ( data.size() > 3 && data.get(3) != null
|
||||||
|
&& data.get(2) != null && data.get(2).toString().equalsIgnoreCase("AD_Window_UU"))
|
||||||
{
|
{
|
||||||
String windowUU = (String) data.get(3);
|
String windowUU = (String) data.get(3);
|
||||||
windowID = MWindow.findByUU(windowUU);
|
MWindow window = MWindow.get(Env.getCtx(), windowUU);
|
||||||
|
if (window != null)
|
||||||
|
windowID = window.getAD_Window_ID();
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
MQuery query = new MQuery(tableName);
|
MQuery query = new MQuery(tableName);
|
||||||
|
|
@ -81,7 +85,7 @@ public class ZoomCommand implements AuService {
|
||||||
query.setZoomTableName(tableName);
|
query.setZoomTableName(tableName);
|
||||||
query.setZoomColumnName(columnName);
|
query.setZoomColumnName(columnName);
|
||||||
query.setZoomValue(code);
|
query.setZoomValue(code);
|
||||||
query.setM_zoomWindow_ID(windowID);
|
query.setZoomWindowID(windowID);
|
||||||
|
|
||||||
Events.postEvent(new ZoomEvent(comp, query));
|
Events.postEvent(new ZoomEvent(comp, query));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
function zoom(cmpid, column, value){
|
function zoom(cmpid, column, value){
|
||||||
zoomWindow(cmpid, column, value, null)
|
zAu.cmd0.showBusy(null);
|
||||||
|
var widget = zk.Widget.$(cmpid);
|
||||||
|
var event = new zk.Event(widget, 'onZoom', {data: [column, value]}, {toServer: true});
|
||||||
|
zAu.send(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
function zoomWindow(cmpid, column, value, windowuu){
|
function zoomWindow(cmpid, column, value, windowuu){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue