Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Visualizando Eventos de Calendário em Java ME

From Wiki
Jump to: navigation, search
Article Metadata

Testado com
Aparelho(s): Nokia 6131, Nokia E70

Compatibilidade
Artigo
Tradução:
Por thiagobrunoms
Última alteração feita por hamishwillee em 26 Jul 2013

Contents

Introdução

This code snippet demonstrates how to get a list of calendar events using the PIM API, show it to the user, and show the values of all fields of the selected event. Este exemplo de códito demonstra como obter a lista de eventos no calendário através de PIM API. O objetivo é mostrar ao usuário os valores de todos os campos do evento selecionado.

Código-fonte: ShowingCalendarEvent.java

import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Alert;
 
import javax.microedition.pim.PIM;
import javax.microedition.pim.PIMItem;
import javax.microedition.pim.EventList;
import javax.microedition.pim.Event;
import javax.microedition.pim.PIMException;
 
import java.util.Enumeration;
import java.util.Vector;
import java.util.Date;
 
 
public class ShowingCalendarEvents extends MIDlet implements CommandListener {
 
private Display display;
 
// Um objeto List para adicionar a lista de eventos
private List eventListCtrl;
// Objeto Form para visualizar os detalhes do evento selecionado
private Form eventForm;
 
// Objeto Command para selecionar os detalhes do evento. Comando adicionado na Lista eventListCtrl
private Command cmdShowDetails;
// Comando para retornar de detailsForm para eventListCtrl
private Command cmdBack;
// Comando para sair da aplicação
private Command cmdExit;
 
// Contem eventos recuperados do array de eventos (PIM)
private Vector eventsArray;
 
/**
* Constructor.
*/

public ShowingCalendarEvents() {
if(checkPIMSupport() == false) {
exitMIDlet();
}
 
initializeComponents();
}
 
/**
* Inicializa os componentes da MIDlet
*/

private void initializeComponents() {
display = Display.getDisplay(this);
 
// Cria lista de eventos
eventListCtrl = new List("Eventos", List.IMPLICIT);
cmdShowDetails = new Command("Detalhes", Command.ITEM, 0);
eventListCtrl.addCommand(cmdShowDetails);
cmdExit = new Command("Exit", Command.EXIT, 0);
eventListCtrl.addCommand(cmdExit);
eventListCtrl.setCommandListener(this);
 
addEventsToListCtrl();
 
// Cria o formulálio de eventos
eventForm = new Form("Detalhes do Evento");
cmdBack = new Command("Voltar", Command.BACK, 0);
eventForm.addCommand(cmdBack);
eventForm.setCommandListener(this);
}
 
/**
* Verifica o suporte a API PIM
* @return - true se a API PIM é suportada. Falso caso contrário
*/

private boolean checkPIMSupport() {
String propValue = System.getProperty("microedition.pim.version");
if(propValue != null) {
return true;
} else {
return false;
}
}
 
/**
* Adiciona eventos a lista
*/

private void addEventsToListCtrl() {
try {
// Cria array de eventos
eventsArray = new Vector();
 
// Obtém a lista de eventos
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_WRITE);
 
Enumeration events = eventList.items();
while(events.hasMoreElements() == true) {
Event event = (Event)events.nextElement();
// Adiciona o evento ao array
eventsArray.addElement(event);
 
String eventSummary = event.getString(Event.SUMMARY,
PIMItem.ATTR_NONE);
eventListCtrl.append(eventSummary, null);
}
 
// Finaliza a lista de eventos
eventList.close();
 
} catch(PIMException pimExc) {
pimExc.printStackTrace();
} catch(Exception exc) {
exc.printStackTrace();
}
}
 
/**
* Visualiza os detalhes do evento
*/

private void showCurrentEvent() {
try {
// Obtem o evento selecionado
int eventIndex = eventListCtrl.getSelectedIndex();
Event event = (Event)eventsArray.elementAt(eventIndex);
if(event == null) {
throw new Exception("Nenhum evento foi encontrado.");
}
 
// Obtem a lista de eventos
EventList eventList = (EventList)PIM.getInstance().openPIMList(
PIM.EVENT_LIST, PIM.READ_WRITE);
 
// Remove do form os dados sobre o evento
eventForm.deleteAll();
 
// Mostra resumo do evento
if(eventList.isSupportedField(Event.SUMMARY) == true) {
if(event.countValues(Event.SUMMARY) > 0) {
String summary = event.getString(Event.SUMMARY,
PIMItem.ATTR_NONE);
eventForm.append(new StringItem("Resumo", summary));
}
}
// Mostra a data de início do evento
if(eventList.isSupportedField(Event.START) == true) {
if(event.countValues(Event.START) > 0) {
String startDate = new Date(event.getDate(Event.START,
PIMItem.ATTR_NONE)).toString();
eventForm.append(new StringItem("Data de Início", startDate));
}
}
// Mostra a data de término do evento
if(eventList.isSupportedField(Event.END) == true) {
if(event.countValues(Event.END) > 0) {
String endDate = new Date(event.getDate(Event.END,
PIMItem.ATTR_NONE)).toString();
eventForm.append(new StringItem("Data de Término", endDate));
}
}
// Mostra hora do alarme
if(eventList.isSupportedField(Event.ALARM) == true) {
if(event.countValues(Event.ALARM) > 0) {
int alarm = event.getInt(Event.ALARM,
PIMItem.ATTR_NONE);
String alarmStr = Integer.toString(alarm);
eventForm.append(new StringItem("Alarme", alarmStr));
}
}
// Mostra descrição
if(eventList.isSupportedField(Event.NOTE) == true) {
if(event.countValues(Event.NOTE) > 0) {
String note = event.getString(Event.NOTE,
PIMItem.ATTR_NONE);
eventForm.append(new StringItem("Descrição", note));
}
}
// Mostra local do evento
if(eventList.isSupportedField(Event.LOCATION) == true) {
if(event.countValues(Event.LOCATION) > 0) {
String note = event.getString(Event.LOCATION,
PIMItem.ATTR_NONE);
eventForm.append(new StringItem("Local", note));
}
}
 
if(eventList.isSupportedField(Event.REVISION) == true) {
if(event.countValues(Event.REVISION) > 0) {
Date revisionDate = new Date(event.getDate(Event.REVISION,
PIMItem.ATTR_NONE));
String revision = revisionDate.toString();
eventForm.append(new StringItem("Revision", revision));
}
}
 
// Fecha a lista de eventos
eventList.close();
 
// Mostra objeto form com os dados do evento selecionado
display.setCurrent(eventForm);
 
} catch(PIMException pimExc) {
// TODO: error!
showAlert("PIMException", pimExc.getMessage());
} catch(Exception exc) {
// TODO: captura quaisquer outras exceções
showAlert("Exception", exc.getMessage());
}
}
 
/**
* Mostra Alerta com título e texto especificado
* @param title - Título do alerta
* @param message - Texto do alerta
*/

private void showAlert(String title, String message) {
Alert alert = new Alert(title);
alert.setString(message);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
 
/**
* From MIDlet.
* Estado ativo da MIDlet
*/

public void startApp() {
display.setCurrent(eventListCtrl);
}
 
/**
* From MIDlet.
* Estado em Pause da MIDlet
*/

public void pauseApp() {
// Nenhuma implementação é necessária
}
 
/**
* From MIDlet.
* Estado antes de finalizar a aplicação para este exemplo
*/

public void destroyApp(boolean unconditional) {
// Nenhuma implementação é necessária para este exemplo
}
 
/**
* Finaliza a MIDlet (aplicação)
*/

private void exitMIDlet() {
notifyDestroyed();
}
 
/**
* From CommandListener.
* Algum comando foi disparado
* @param command - O objeto Command que identifica o comando disparado
* @param displayable - o objeto Displayable no qual o evento de comando ocorreu
*/

public void commandAction(Command command, Displayable displayable) {
// Mostra detalhes do evento
if(command == cmdShowDetails) {
showCurrentEvent();
}
// Sair da aplicação
if(command == cmdExit) {
exitMIDlet();
}
// Comando de retornar
if(command == cmdBack) {
display.setCurrent(eventListCtrl);
}
}
}

Pós-condições

Este código representa uma MIDlet com uma lista a qual contem um resumo dos eventos armazenados no calendário do chip PIM.

Ao selecionar um evento da lista e pressionar o comando "Detalhes" do menu, o usuário poderá visualizar os campos do evento selecionado.

Materiais Complementares

Arquivos executáveis e códigos-fonte estão disponíveis em Media:Showing calendar events.zip.

This page was last modified on 26 July 2013, at 06:19.
264 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×