2010-07-16 14 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 ...