Rational Developer for System z


Leçon 9 : création du code pour la classe CheckboxOptionControl

La classe CheckboxOptionControl va changer la zone de texte par défaut de CARMA en case à cocher sur le paramètre Option. Comme il s'agit d'un paramètre de type "oui ou non", une case à cocher sera plus pratique pour l'utilisateur.
  1. Dans la vue Explorateur de package, ouvrez la classe CheckboxOptionControl que vous avez créée en accédant à com.ibm.carma.plugin.howto > src > com.ibm.carma.plugin.howto.action et en cliquant deux fois sur la classe.
  2. Vous allez ajouter l'objet de bouton de case à cocher comme donnée d'instance pour la classe. Cela permet au bouton de case à cocher et à toutes ses métadonnées d'être accessibles par la classe CheckboxOptionControl. Ajoutez la ligne de code suivante : Button theButton;
  3. Ensuite, vous allez redéfinir la méthode createControl pour créer le bouton de case à cocher et le retourner au lieu de la zone de texte par défaut. Le pseudocode suivant démontre ce que vous voulez que cette méthode fasse :
    Créer theButton avec le style case à cocher
    Donner un texte au theButton
    Retourner le theButton
    Utilisez l'exemple de code suivant pour redéfinir cette méthode :
    /* Créer une case à cocher pour l'option oui/non */
    public Control createControl(Composite parent, 
                                 RepositoryManager repositoryManager,
                                 Parameter param, 
                                 Action action,
                                 CustomActionAccepter custActionAccepter,
                                 Object defaultValue) 
    {
       theButton = new Button(parent, SWT.CHECK);
       theButton.setText("Check me!");
       return theButton;
    }
  4. Maintenant, vous allez redéfinir la méthode getValue. Cette méthode retourne la valeur des paramètres. Comme vous utilisez une case à cocher au lieu d'une zone de texte, le code que vous écrivez devra traduire le statut vérifié ou non vérifié dans le format de chaîne attendu. Le pseudocode suivant le démontre :
    if la case est cochée
    	retourner "Y" pour yes
    else
    	retourner "N" pour no
    Utilisez l'exemple de code suivant pour redéfinir cette méthode :
    public Object getValue() 	{
    		if(theButton.getSelection())
    			return "Y";
    		else
    			return "N";
    	}
  5. La dernière méthode que vous devez redéfinir est isUsingDefaultLabel. Si elle est définie sur false (faux), cette méthode n'affiche pas le libellé par défaut que vous avez fourni quand vous avez ajouté le paramètre au gestionnaire RAM. Si elle est définie sur true (vrai), alors le libellé est affiché normalement. Pour cet exemple, le code utilise le libellé par défaut. Utilisez l'exemple de code suivant pour redéfinir cette méthode :
    public boolean isUsingDefaultLabel()
    {
       return true;
    }
  6. Enfin, vous devez vérifier que toutes les importations requises sont répertoriées. Ajoutez toutes les instructions d'importation suivantes éventuellement manquantes dans votre classe :
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.widgets.*;
    
    import com.ibm.carma.model.*;
    
    import com.ibm.carma.ui.action.custom.AbstractCustomParameterControl;
  7. Enregistrez la source et déboguez les éventuelles erreurs.
Votre code fini pour le CheckBoxOptionControl doit ressembler à ce qui suit :
package com.ibm.carma.plugin.howto.action;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;

import com.ibm.carma.model.*;

import com.ibm.carma.ui.action.custom.AbstractCustomParameterControl;

public class CheckboxOptionAction extends AbstractCustomParameterControl {
   //Ajouter le bouton aux données d'instance
   Button theButton;
   
   /* Créer une case à cocher pour l'option oui/non */
   public Control createControl(Composite parent, 
                                RepositoryManager repositoryManager,
                                Parameter param, 
                                Action action, 
                                CustomActionAccepter customActionAccepter, Object defaultValue) 	{
      theButton = new Button(parent, SWT.CHECK);
      theButton.setText("Check me!");
      return theButton;
   }

   @Override
   public Object getValue() 	{
      if(theButton.getSelection())
	      return "Y";
      else
         return "N";
   }

   @Override 
   public boolean isUsingDefaultLabel() 	{
      return true;
   }
}

Conditions d'utilisation | Commentaires en retour



Ce centre de documentation utilise la technologie Eclipse. (http://www.eclipse.org)