Режим извлечения (Basic | Advanced) компонента запроса ADF - PullRequest
0 голосов
/ 16 июля 2010

Я хочу записать режим компонента запроса (Basic | Advanced) в методе прослушивания событий processQuery для QueryEvent, как показано ниже:

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

Я пытался получить это значение из карты getUIHints (), используя ключ UIHINT_MODE. но getUIHints () возвращает пустую карту.

Ответы [ 2 ]

1 голос
/ 24 сентября 2018
QueryDescriptor qdesc = queryEvent.getDescriptor();
QueryDescriptor.QueryMode mode = (QueryDescriptor.QueryMode) qdesc.getUIHints().get(qdesc.UIHINT_MODE);

if ("BASIC" .equals (mode.toString ())) {

}
1 голос
/ 03 ноября 2010

Попробуйте это:

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);

Идея состоит в том, чтобы получить ViewCriteria из QueryDescriptor и получить режим из VC. Это происходит потому, что режим установлен на самом объекте критериев, VC знает, как отображать и что отображать в каждом режиме, и поэтому делает MODE неотъемлемым свойством VC, а не просто элементом пользовательского интерфейса .... 1004 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...