Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

package com.gebauz.bauzoid.menu;

import java.util.Vector;

import com.gebauz.bauzoid.parser.ScanException;
import com.gebauz.bauzoid.parser.Tokenizer;

/** Provides static functions for processing default commands in events. */
public class EventProcessor
{
        // Constants========================================================================================

        // Embedded Types===================================================================================

        // Fields===========================================================================================

        // Methods==========================================================================================
       
        /** Breaks the parameter down to a list of Strings containing a statement/instruction each for easier parsing. */
        public static Vector<String> parseParameter(String param)
        {
                Vector<String> paramList = new Vector<String>();
               
                Tokenizer t = new Tokenizer(param);
               
                try
                {
                        while (!t.isEndOfString())
                        {
                                String p = t.readUntilToken(";");
                                if (!p.isEmpty())
                                        paramList.add(p);
                               
                                if (t.isEndOfString() || !t.checkToken(";"))
                                        break;
                               
                                t.readToken(";");
                        }
                }
                catch (ScanException e)
                {
                        e.log("DefaultEventProcessor");
                }
               
                return paramList;
        }
       
        public static void processEvent(Menu menu, MenuItem sender, String msgType, String param)
        {
                Tokenizer t = new Tokenizer(param);
               
                try
                {
                        String command = t.readIdentifier();
                               
                        if (command.equalsIgnoreCase("switchState"))
                        {
                                // stitch together identifier
                                String switchState = t.readIdentifier();
                               
                                while (t.checkToken("."))
                                {
                                        t.readToken(".");
                                        switchState = switchState + "." + t.readIdentifier();
                                }
                               
                                String switchParam = t.readUntilEndOfString();
                                       
                                menu.getGame().getGameStateManager().switchTo(switchState, switchParam);
                        }
/*                      else if (command.equalsIgnoreCase("fadeOut"))
                        {
                                menu.startFadeOut();
                        }*/

                        else
                        {
                                // unknown command -> skip
                                return;
                        }
                }
                catch (ScanException e)
                {
                        e.log("DefaultEventProcessor");
                }
        }

        // Getters/Setters==================================================================================
}