// Path: app/src/main/java/javax/microedition/lcdui/event/CommandActionEvent.java
// public class CommandActionEvent extends Event
// {
// 	private static ArrayStack<CommandActionEvent> recycled = new ArrayStack();
// 	
// 	private CommandListener listener;
// 	private ItemCommandListener itemlistener;
// 	
// 	private Command command;
// 	private Displayable displayable;
// 	private Item item;
// 	
// 	private CommandActionEvent()
// 	{
// 	}
// 	
// 	public static Event getInstance(CommandListener listener, Command command, Displayable displayable)
// 	{
// 		CommandActionEvent instance = recycled.pop();
// 		
// 		if(instance == null)
// 		{
// 			instance = new CommandActionEvent();
// 		}
// 		
// 		instance.listener = listener;
// 		instance.command = command;
// 		instance.displayable = displayable;
// 		
// 		return instance;
// 	}
// 	
// 	public static Event getInstance(ItemCommandListener itemlistener, Command command, Item item)
// 	{
// 		CommandActionEvent instance = recycled.pop();
// 		
// 		if(instance == null)
// 		{
// 			instance = new CommandActionEvent();
// 		}
// 		
// 		instance.itemlistener = itemlistener;
// 		instance.command = command;
// 		instance.item = item;
// 		
// 		return instance;
// 	}
// 	
// 	public void process()
// 	{
// 		if(listener != null)
// 		{
// 			listener.commandAction(command, displayable);
// 		}
// 		else if(itemlistener != null)
// 		{
// 			itemlistener.commandAction(command, item);
// 		}
// 	}
// 	
// 	public void recycle()
// 	{
// 		listener = null;
// 		itemlistener = null;
// 		
// 		command = null;
// 		displayable = null;
// 		item = null;
// 		
// 		recycled.push(this);
// 	}
// 	
// 	public void enterQueue()
// 	{
// 	}
// 	
// 	public void leaveQueue()
// 	{
// 	}
// 	
// 	public boolean placeableAfter(Event event)
// 	{
// 		return true;
// 	}
// 	
// //	public String toString()
// //	{
// //		if(listener != null)
// //		{
// //			return "сommandAction(" + command + ", " + displayable + ")";
// //		}
// //		else if(itemlistener != null)
// //		{
// //			return "сommandAction(" + command + ", " + item + ")";
// //		}
// //		else
// //		{
// //			return "сommandAction(" + command + ")";
// //		}
// //	}
// }
// 
// Path: app/src/main/java/javax/microedition/lcdui/event/SimpleEvent.java
// public abstract class SimpleEvent extends Event
// {
// 	public void recycle()
// 	{
// 	}
// 	
// 	public void enterQueue()
// 	{
// 	}
// 	
// 	public void leaveQueue()
// 	{
// 	}
// 
// 	public boolean placeableAfter(Event event)
// 	{
// 		return true;
// 	}
// }


import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import javax.microedition.lcdui.event.CommandActionEvent;
import javax.microedition.lcdui.event.SimpleEvent;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;

		{
			ViewHandler.postEvent(msgSetContextMenuListener);
		}
	}
	
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
	{
		menu.clear();
		
		for(Command cmd : commands)
		{
			menu.add(Menu.NONE, cmd.hashCode(), cmd.getPriority(), cmd.getLabel());
		}
	}
	
	public boolean contextMenuItemSelected(MenuItem item)
	{
		if(listener == null)
		{
			return false;
		}
		
		int id = item.getItemId();
		
		for(Command cmd : commands)
		{
			if(cmd.hashCode() == id)
			{
				if(owner != null)
				{

// Path: app/src/main/java/javax/microedition/lcdui/event/CommandActionEvent.java
// public class CommandActionEvent extends Event
// {
// 	private static ArrayStack<CommandActionEvent> recycled = new ArrayStack();
// 	
// 	private CommandListener listener;
// 	private ItemCommandListener itemlistener;
// 	
// 	private Command command;
// 	private Displayable displayable;
// 	private Item item;
// 	
// 	private CommandActionEvent()
// 	{
// 	}
// 	
// 	public static Event getInstance(CommandListener listener, Command command, Displayable displayable)
// 	{
// 		CommandActionEvent instance = recycled.pop();
// 		
// 		if(instance == null)
// 		{
// 			instance = new CommandActionEvent();
// 		}
// 		
// 		instance.listener = listener;
// 		instance.command = command;
// 		instance.displayable = displayable;
// 		
// 		return instance;
// 	}
// 	
// 	public static Event getInstance(ItemCommandListener itemlistener, Command command, Item item)
// 	{
// 		CommandActionEvent instance = recycled.pop();
// 		
// 		if(instance == null)
// 		{
// 			instance = new CommandActionEvent();
// 		}
// 		
// 		instance.itemlistener = itemlistener;
// 		instance.command = command;
// 		instance.item = item;
// 		
// 		return instance;
// 	}
// 	
// 	public void process()
// 	{
// 		if(listener != null)
// 		{
// 			listener.commandAction(command, displayable);
// 		}
// 		else if(itemlistener != null)
// 		{
// 			itemlistener.commandAction(command, item);
// 		}
// 	}
// 	
// 	public void recycle()
// 	{
// 		listener = null;
// 		itemlistener = null;
// 		
// 		command = null;
// 		displayable = null;
// 		item = null;
// 		
// 		recycled.push(this);
// 	}
// 	
// 	public void enterQueue()
// 	{
// 	}
// 	
// 	public void leaveQueue()
// 	{
// 	}
// 	
// 	public boolean placeableAfter(Event event)
// 	{
// 		return true;
// 	}
// 	
// //	public String toString()
// //	{
// //		if(listener != null)
// //		{
// //			return "сommandAction(" + command + ", " + displayable + ")";
// //		}
// //		else if(itemlistener != null)
// //		{
// //			return "сommandAction(" + command + ", " + item + ")";
// //		}
// //		else
// //		{
// //			return "сommandAction(" + command + ")";
// //		}
// //	}
// }
// 
// Path: app/src/main/java/javax/microedition/lcdui/event/SimpleEvent.java
// public abstract class SimpleEvent extends Event
// {
// 	public void recycle()
// 	{
// 	}
// 	
// 	public void enterQueue()
// 	{
// 	}
// 	
// 	public void leaveQueue()
// 	{
// 	}
// 
// 	public boolean placeableAfter(Event event)
// 	{
// 		return true;
// 	}
// }


// Path: app/src/main/java/javax/microedition/lcdui/Item.java
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import javax.microedition.lcdui.event.CommandActionEvent;
import javax.microedition.lcdui.event.SimpleEvent;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.RoundRectShape;
import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;

		{
			ViewHandler.postEvent(msgSetContextMenuListener);
		}
	}
	
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
	{
		menu.clear();
		
		for(Command cmd : commands)
		{
			menu.add(Menu.NONE, cmd.hashCode(), cmd.getPriority(), cmd.getLabel());
		}
	}
	
	public boolean contextMenuItemSelected(MenuItem item)
	{
		if(listener == null)
		{
			return false;
		}
		
		int id = item.getItemId();
		
		for(Command cmd : commands)
		{
			if(cmd.hashCode() == id)
			{
				if(owner != null)
				{

					owner.postEvent(CommandActionEvent.getInstance(listener, cmd, this));
