2010-07-16 4 views
0

Je veux saisir le mode de composant de requête (de base | Avancé) dans la méthode d'écouteur d'événement processQuery pour QueryEvent comme ci-dessous:mode Récupération (de base | Avancé) du composant de requête ADF

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

j'ai essayé d'obtenir cette valeur getUIHints() mappe en utilisant la clé UIHINT_MODE. mais getUIHints() retourne une carte vide.

Répondre

1

Essayez ceci:

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

L'idée est d'obtenir le ViewCriteria du QueryDescriptor et pour obtenir le mode de la VC. C'est parce que le mode est défini sur l'objet critère lui-même, le VC sait comment afficher et quoi afficher dans chaque mode, et donc il fait du MODE une propriété inhérente du VC et pas seulement une chose de l'interface utilisateur ...

Questions connexes