La clase CheckboxOptionControl cambiará el campo de texto
predeterminado de CARMA por un recuadro de selección en el parámetro Option.
Dado que este parámetro es de tipo Sí o No, un recuadro de selección será más
conveniente para el usuario.
- En la vista Explorador de paquetes, abra la clase
CheckboxOptionControl que ha creado navegando a
com.ibm.carma.plugin.howto > src >
com.ibm.carma.plugin.howto.action y efectuando una doble pulsación sobre
la clase.
- En primer lugar, añadirá un objeto de botón de recuadro de selección como datos de
instancia para la clase. Esto permitirá que el botón de recuadro de selección y todos sus
metadatos estén disponibles para la clase CheckboxOptionControl.
Añada la siguiente línea de código: Button theButton;
- A continuación, alterará temporalmente el método createControl para
crear el botón de recuadro de selección y devolverlo en lugar del campo de
texto predeterminado. A continuación figura un pseudocódigo que muestra lo que debe
realizar este método:
Crear theButton con estilo de recuadro de selección
Especificar texto para theButton
Devolver theButton
Utilice el siguiente código de muestra para
alterar temporalmente este método:
/* Crear un recuadro de selección para la opción de Sí/No */
public Control createControl(Composite parent,
RepositoryManager repositoryManager,
Parameter param,
Action action,
CustomActionAccepter custActionAccepter,
Object defaultValue)
{
theButton = new Button(parent, SWT.CHECK);
theButton.setText("Seleccionar.");
return theButton;
}
- A continuación, alterará temporalmente el método getValue.
Este método devuelve el valor de los parámetros. Dado que está utilizando un recuadro
de selección en lugar de un campo de texto, el código que escribirá deberá convertir el
estado de seleccionado o deseleccionado del recuadro de selección al formato de serie
esperado. A continuación figura un pseudocódigo que lo muestra:
si el recuadro de selección está seleccionado
devolver "Y" para Sí
de lo contrario
devolver "N" para No
Utilice el siguiente código de muestra para alterar temporalmente este
método:
public Object getValue() {
if(theButton.getSelection())
return "Y";
else
return "N";
}
- El último método que debe alterar temporalmente es el método
isUsingDefaultLabel.
Si se establece en false (falso), este método no visualizará la etiqueta predeterminada
que ha suministrado al añadir el parámetro al RAM. Si se establece en true (verdadero),
la etiqueta se visualizará normalmente. En este ejemplo, el código utilizará la
etiqueta predeterminada. Utilice el siguiente código de muestra para alterar temporalmente este método:
public boolean isUsingDefaultLabel()
{
return true;
}
- Finalmente, debe asegurarse de que se incluyan todas las importaciones necesarias. Añada
cualquiera de las sentencias de importación siguientes que no se encuentre listada en la
clase:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import com.ibm.carma.model.*;
import com.ibm.carma.ui.action.custom.AbstractCustomParameterControl;
- Guarde el código fuente y depure los errores.
El código completo para
CheckBoxOptionControl debe ser el
siguiente:
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 {
//Añadir el botón a los datos de instancia
Button theButton;
/* Crear un recuadro de selección para la opción de Sí/No */
public Control createControl(Composite parent,
RepositoryManager repositoryManager,
Parameter param,
Action action,
CustomActionAccepter customActionAccepter, Object defaultValue) {
theButton = new Button(parent, SWT.CHECK);
theButton.setText("Seleccionar.");
return theButton;
}
@Override
public Object getValue() {
if(theButton.getSelection())
return "Y";
de lo contrario
return "N";
}
@Override
public boolean isUsingDefaultLabel() {
return true;
}
}