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.
- 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.
- 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;
- 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;
}
- 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";
}
- 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;
}
- 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;
- 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;
}
}