/**
* Copyright (c) 2006-2011 Floggy Open Source Group. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.sourceforge.floggy.barbecuecalculator.core;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
/**
* DOCUMENT ME!
*
* @author <a href="mailto:thiago.moreira@floggy.org">Thiago Moreira</a>
* @version $Revision$
*/
public class CommandHandler implements CommandListener {
private static CommandHandler instance;
public static Command CALCULATE_CMD =
new Command("Calculate", Command.SCREEN, 1);
public static Command SAVED_CMD =
new Command("Saved barbecues", Command.SCREEN, 2);
public static Command SHOW_BARBECUE_CMD =
new Command("Show barbecue", Command.OK, 1);
public static Command DELETE_BARBECUE_CMD =
new Command("Delete barbecue", Command.SCREEN, 2);
public static Command ABOUT_CMD = new Command("About", Command.HELP, 4);
public static Command SET_BARBECUE_NAME_CMD =
new Command("Save barbecue", Command.SCREEN, 1);
public static Command SAVE_BARBECUE_CMD =
new Command("Save", Command.SCREEN, 1);
public static Command BACK_CMD = new Command("Back", Command.BACK, 2);
public static Command EXIT_CMD = new Command("Exit", Command.EXIT, 5);
private CommandHandler() {
}
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
public static CommandHandler getInstance() {
if (instance == null)
instance = new CommandHandler();
return instance;
}
/**
* DOCUMENT ME!
*
* @param command DOCUMENT ME!
* @param displayable DOCUMENT ME!
*/
public void commandAction(Command command, Displayable displayable) {
if (command == CommandHandler.BACK_CMD) {
try {
DisplayManager.getInstance().backAndRemove();
} catch (DisplayManagerException e1) {
}
} else if (command == CommandHandler.EXIT_CMD) {
try {
FlowManager.getInstance().endApplication();
} catch (FlowManagerNotStartedException e) {
}
} else if (command.equals(CommandHandler.CALCULATE_CMD)) {
if (displayable instanceof Canvas) {
try {
FlowManager.getInstance().exibirDadosChurrasForm();
} catch (FlowManagerNotStartedException e) {
}
} else {
try {
FlowManager.getInstance().calculateBarbecue();
} catch (FlowManagerNotStartedException e) {
}
}
} else if (command == CommandHandler.SET_BARBECUE_NAME_CMD) {
try {
FlowManager.getInstance().salvarChurrasco();
} catch (FlowManagerNotStartedException e) {
}
} else if (command == CommandHandler.SAVE_BARBECUE_CMD) {
try {
FlowManager.getInstance().finalizarPersistenciaChurras();
} catch (FlowManagerNotStartedException e) {
}
} else if (command == CommandHandler.SAVED_CMD) {
try {
FlowManager.getInstance().exibirListaChurrasSalvos();
} catch (FlowManagerNotStartedException e) {
}
} else if (command == CommandHandler.SHOW_BARBECUE_CMD) {
try {
FlowManager.getInstance()
.exibirChurrasSalvo(((List) displayable).getSelectedIndex());
} catch (FlowManagerNotStartedException e) {
}
} else if (command == CommandHandler.DELETE_BARBECUE_CMD) {
try {
FlowManager.getInstance()
.apagarChurrasSalvo(((List) displayable).getSelectedIndex());
} catch (FlowManagerNotStartedException e) {
}
} else if (command == CommandHandler.ABOUT_CMD) {
try {
FlowManager.getInstance().showAboutForm();
} catch (FlowManagerNotStartedException e) {
}
}
}
}