Thanks for the answer, i think that then i have to do it for myself, for now i have one dialog similar to that, only that whith vertical scroll.
package es.telefonica.ui.menus;
import net.rim.device.api.i18n.ResourceBundle;
import net.rim.device.api.system.EncodedImage;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Keypad;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.Dialog;
import es.telefonica.cmcore.ComunicadorCore;
import es.telefonica.common.MensajesLog;
import es.telefonica.countryinfo.CountryResource;
import es.telefonica.icons.IconosResource;
import es.telefonica.ui.componentes.BotonContactos;
import es.telefonica.ui.componentes.ImagenException;
/**
* Dialogo que sirve para seleccionar los posibles estados de presencia
* Ejemplo:Ausente, Conectado, etc..-
* @author jose
*
*/
public class DialogoEstados extends Dialog
{
private static ResourceBundle countryResource = ResourceBundle.getBundle(
CountryResource.BUNDLE_ID, CountryResource.BUNDLE_NAME);
private static ResourceBundle iconResource = ResourceBundle.getBundle(
IconosResource.BUNDLE_ID, IconosResource.BUNDLE_NAME);
private BotonContactos desconectado;
private BotonContactos conectado;
private BotonContactos ocupado;
private BotonContactos vuelvoEnseguida;
private BotonContactos ausente;
private BotonContactos alTelefono;
/**
* El constructor ya crea un dialogo con los botones y el titulo correctos
*/
public DialogoEstados()
{
super(countryResource.getString(CountryResource.Title_Status_Dialog),null,null,0,null,Manager.VERTICAL_SCROLL);
try
{
desconectado=new BotonContactos();
desconectado.setImagenEstado(ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Disconnected)));
// TODO Auto-generated catch block
desconectado.setLabelNombre(countryResource.getString(CountryResource.Disconnected));
this.add(desconectado);
conectado=new BotonContactos();
conectado.setImagenEstado(ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Connected)));
conectado.setLabelNombre(countryResource.getString(CountryResource.Connected));
this.add(conectado);
ocupado=new BotonContactos();
ocupado.setImagenEstado(ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Busy)));
ocupado.setLabelNombre(countryResource.getString(CountryResource.Busy));
this.add(ocupado);
vuelvoEnseguida=new BotonContactos();
vuelvoEnseguida.setImagenEstado(ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Back_Right_Away)));
vuelvoEnseguida.setLabelNombre(countryResource.getString(CountryResource.BackRightAway));
this.add(vuelvoEnseguida);
ausente=new BotonContactos();
ausente.setImagenEstado(ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Absent)));
ausente.setLabelNombre(countryResource.getString(CountryResource.Absent));
this.add(ausente);
alTelefono=new BotonContactos();
alTelefono.setImagenEstado(ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_To_The_Phone)));
alTelefono.setLabelNombre(countryResource.getString(CountryResource.ToThePhone));
this.add(alTelefono);
}
catch (ImagenException e)
{
e.printStackTrace();
}
}
/**
* Metodo que se ejecuta cuando se pulsa la rueda
*/
protected boolean navigationClick(int status, int time)
{
onSeleccion();
return super.navigationUnclick(status, time);
}
/**
* MEtodo que se ejecuta cuando se pulsa una tecla, en este caso no interesa solo el Enter y el Escape
*/
protected boolean keyChar(char key, int status, int time)
{
// TODO Auto-generated method stub
if(key==Keypad.KEY_ENTER)
{
onSeleccion();
}
else if(key==Keypad.KEY_ESCAPE)
{
this.close();
}
return super.keyChar(key, status, time);
}
/**
* Este metodo es el que extrae el boton que actualmente esta seleccionado, y ejecuta el cambio de estado
*/
private void onSeleccion()
{
Field panelVertical = this.getFieldWithFocus();
if(panelVertical instanceof Manager)
{
Manager manager=(Manager)panelVertical;
Field campoSeleccionado = manager.getFieldWithFocus();
campoSeleccionado.getBorderBottom();
EncodedImage imagenEstado=null;
if(campoSeleccionado instanceof BotonContactos)
{
try
{
BotonContactos boton=(BotonContactos)campoSeleccionado;
String id = boton.getLabelNombre();
if(id.equals(countryResource.getString(CountryResource.Disconnected)))
{
imagenEstado=ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Disconnected));
MensajesLog.debug(DialogoEstados.class, "Seleccionado: "+countryResource.getString(CountryResource.Disconnected));
}
else if(id.equals(countryResource.getString(CountryResource.Connected)))
{
imagenEstado=ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Connected));
MensajesLog.debug(DialogoEstados.class, "Seleccionado: "+countryResource.getString(CountryResource.Connected));
}
else if(id.equals(countryResource.getString(CountryResource.Busy)))
{
imagenEstado=ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Busy));
MensajesLog.debug(DialogoEstados.class, "Seleccionado: "+countryResource.getString(CountryResource.Busy));
}
else if(id.equals(countryResource.getString(CountryResource.BackRightAway)))
{
imagenEstado=ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Back_Right_Away));
MensajesLog.debug(DialogoEstados.class, "Seleccionado: "+countryResource.getString(CountryResource.BackRightAway));
}
else if(id.equals(countryResource.getString(CountryResource.Absent)))
{
imagenEstado=ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_Absent));
MensajesLog.debug(DialogoEstados.class, "Seleccionado: "+countryResource.getString(CountryResource.Absent));
}
else if(id.equals(countryResource.getString(CountryResource.ToThePhone)))
{
imagenEstado=ComunicadorCore.getGestorImagenes().getImagen(iconResource.getString(IconosResource.Image_To_The_Phone));
MensajesLog.debug(DialogoEstados.class, "Seleccionado: "+countryResource.getString(CountryResource.ToThePhone));
}
//TODO cambiar el icono del usuario
if(imagenEstado!=null)
{
}
}
catch(ImagenException e)
{
e.printStackTrace();
}
finally
{
this.close();
}
}
}
}
}
thanks
No comments:
Post a Comment