2010-07-16 16 views
0

我想捕捉查询组件模式|在QueryEvent processQuery事件侦听器方法(基本高级),如下:追溯模式| ADF查询组件(基本高级)

public void processQuery(QueryEvent queryEvent) 
{ 
// Add event code here... 
QueryDescriptor qdesc = queryEvent.getDescriptor(); 
String searchName = qdesc.getName(); 
String queryMode =? 

我试图得到该值getUIHints()使用UIHINT_MODE键映射。但getUIHints()返回空映射。

回答

1

试试这个:

ViewCriteria vc = null; 
try 
{ 
    Method m = 
    pQueryDescriptor.getClass().getDeclaredMethod("getViewCriteria", 
                null); 
    m.setAccessible(true); 
    vc = (ViewCriteria) m.invoke(pQueryDescriptor, null); 
} 
catch (Exception ite) 
{ 
    _logger.logp(Level.SEVERE, CLAZZ_NAME, methodName, 
       "Exception getting ViewCriteria from QueryDescriptor.", 
       ite); 
} 
String searchType = 
     (String) vc .getProperty(ViewCriteriaHints.CRITERIA_MODE); 

的想法是让从QueryDescriptor的ViewCriteria并获得来自VC的模式。这是因为模式是在标准对象本身上设置的,VC知道如何显示以及在每种模式下显示什么,所以它使得MODE成为VC的固有属性,而不仅仅是一个UI事物......