mt
Class TelaBT

java.lang.Object
  extended by javax.microedition.lcdui.Displayable
      extended by javax.microedition.lcdui.Canvas
          extended by mt.TelaBT
All Implemented Interfaces:
java.lang.Runnable, javax.microedition.lcdui.CommandListener
Direct Known Subclasses:
ClienteBT, ServidorBT

public abstract class TelaBT
extends javax.microedition.lcdui.Canvas
implements javax.microedition.lcdui.CommandListener, java.lang.Runnable

Decorator para o servidor e o cliente BlueTooth código para exibição dos jogadores conectados, constantes e outros elementos comnus aos dois lados.

A procura/oferta do serviço de jogo é feita pelas classes descendentes.

Author:
Chester

Field Summary
protected  java.lang.String[] apelidos
          Apelidos dos jogadores nas quatro posições da mesa.
protected static java.lang.String[] APELIDOS_CPU
           
protected  javax.microedition.lcdui.Display display
          Referência à tela do jogo em execução
(package private)  javax.bluetooth.LocalDevice localDevice
          Permite acessar as capacidades bluetooth do celular
protected  MiniTruco midlet
          Referência ao jogo em execução
protected static javax.microedition.lcdui.Command okApelidoCommand
           
 java.lang.String regras
          Regras (string de 2 caracteres T/F, indicando baralho limpo e manilha velha, nesta ordem) para o jogo a iniciar
static byte[] SEPARADOR_ENV
          Separador de linha enviado (tanto no sentido client-server quanto no server-client).
static int SEPARADOR_REC
          Separador de linha recebido
(package private)  javax.microedition.lcdui.TextField txtApelido
          Campo texto do apleido do jogador
static javax.bluetooth.UUID UUID_BT
          Identificador único Bluetooth do "serviço miniTruco"
protected static javax.microedition.lcdui.Command voltarCommand
           
 
Fields inherited from class javax.microedition.lcdui.Canvas
DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP
 
Constructor Summary
TelaBT(MiniTruco midlet)
           
 
Method Summary
 void alerta(java.lang.String titulo, java.lang.String texto)
          Exibe um alerta e aguarda o "ok"
 void alerta(java.lang.String titulo, java.lang.String texto, boolean bloqueia)
          Exibe um alerta
 void commandAction(javax.microedition.lcdui.Command cmd, javax.microedition.lcdui.Displayable arg1)
           
abstract  void encerraSessaoBT()
          Encerra a sessão (cliente ou servidor), liberando quaisquer recursos que estejam em uso.
abstract  int getPosicaoMesa(int i)
          Recupera a posição na mesa para o jogador conectado na posição i.
protected  void log(java.lang.String msg)
          Faz o log de uma mensagem, garantindo que ela seja exibida (caso esta opção esteja ativada)
protected  void paint(javax.microedition.lcdui.Graphics g)
          Mostra os jogadores conectados
protected  void setTelaMsg(java.lang.String msg)
          Define o que será mostrado na tela (pode ser uma mensagem ou os jogadores conectados) e a atualiza.
static java.lang.String[] split(java.lang.String original, char separador)
          Divide uma string com base em um separador (como o split()) da classe String do J2SE.
 
Methods inherited from class javax.microedition.lcdui.Canvas
getGameAction, getHeight, getKeyCode, getKeyName, getWidth, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, hideNotify, isDoubleBuffered, keyPressed, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints, showNotify
 
Methods inherited from class javax.microedition.lcdui.Displayable
addCommand, isShown, removeCommand, setCommandListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.lang.Runnable
run
 

Field Detail

okApelidoCommand

protected static final javax.microedition.lcdui.Command okApelidoCommand

voltarCommand

protected static final javax.microedition.lcdui.Command voltarCommand

SEPARADOR_ENV

public static final byte[] SEPARADOR_ENV
Separador de linha enviado (tanto no sentido client-server quanto no server-client).

É propositalmente um conjunto de SEPARADOR_REC, para garantir que o recebimento seja detectado (linhas em branco são ignoradas de qualquer forma).


SEPARADOR_REC

public static final int SEPARADOR_REC
Separador de linha recebido

See Also:
Constant Field Values

UUID_BT

public static final javax.bluetooth.UUID UUID_BT
Identificador único Bluetooth do "serviço miniTruco"


APELIDOS_CPU

protected static final java.lang.String[] APELIDOS_CPU

midlet

protected MiniTruco midlet
Referência ao jogo em execução


display

protected javax.microedition.lcdui.Display display
Referência à tela do jogo em execução


txtApelido

javax.microedition.lcdui.TextField txtApelido
Campo texto do apleido do jogador


localDevice

javax.bluetooth.LocalDevice localDevice
Permite acessar as capacidades bluetooth do celular


apelidos

protected java.lang.String[] apelidos
Apelidos dos jogadores nas quatro posições da mesa.


regras

public java.lang.String regras
Regras (string de 2 caracteres T/F, indicando baralho limpo e manilha velha, nesta ordem) para o jogo a iniciar

Constructor Detail

TelaBT

public TelaBT(MiniTruco midlet)
Method Detail

setTelaMsg

protected void setTelaMsg(java.lang.String msg)
Define o que será mostrado na tela (pode ser uma mensagem ou os jogadores conectados) e a atualiza.

Caso haja outro Displayable em exibição, solicita a mudança para este.

Parameters:
msg - Mensagem a ser exibida. Se for null, exibe a mesa com os jogadores posicionados.

log

protected void log(java.lang.String msg)
Faz o log de uma mensagem, garantindo que ela seja exibida (caso esta opção esteja ativada)

Parameters:
msg -

commandAction

public void commandAction(javax.microedition.lcdui.Command cmd,
                          javax.microedition.lcdui.Displayable arg1)
Specified by:
commandAction in interface javax.microedition.lcdui.CommandListener

encerraSessaoBT

public abstract void encerraSessaoBT()
Encerra a sessão (cliente ou servidor), liberando quaisquer recursos que estejam em uso.


alerta

public void alerta(java.lang.String titulo,
                   java.lang.String texto)
Exibe um alerta e aguarda o "ok"

Parameters:
titulo - Título da janela
texto - Texto do alerta

alerta

public void alerta(java.lang.String titulo,
                   java.lang.String texto,
                   boolean bloqueia)
Exibe um alerta

Parameters:
titulo - Título da janela
texto - Texto do alerta
bloqueia - true para bloquear até o usuário dar o "ok", false para exibir e continuar rodando

paint

protected void paint(javax.microedition.lcdui.Graphics g)
Mostra os jogadores conectados

Specified by:
paint in class javax.microedition.lcdui.Canvas

getPosicaoMesa

public abstract int getPosicaoMesa(int i)
Recupera a posição na mesa para o jogador conectado na posição i.

Este método permite que cliente e servidor compartilhem o código de desenho da tela (pois o que muda de um para outro é o "ponto de vista" mesmo - ambos têm que ter o jogador humano na posição 1)

Parameters:
i - posição (1 a 4) na conexão (no cliente é a posição na lista recebida; no servidor é a posição de jogo mesmo)
Returns:
posição em que este jogador deve ser desenhado na mesa (e adicionado no jogo), na mesma convenção da classe Mesa (1=inferior, 2=direita, 3=superior, 4=esquerda)

split

public static java.lang.String[] split(java.lang.String original,
                                       char separador)
Divide uma string com base em um separador (como o split()) da classe String do J2SE.

Ele efetua a operação em dois passos, mas esta abordagem tem a vantagem de não alocar nenhum objeto além das strings não-nulas do array.