package commands.ui;
import gui.CustomBaseAdapter;
import gui.CustomListActivity;
import gui.ListSettings;
import system.ActivityConnector;
import system.Container;
import util.Log;
import util.Wrapper;
import android.app.Activity;
import android.widget.BaseAdapter;
import commands.Command;
import commands.undoable.UndoableCommand;
public class CommandShowListActivity extends Command {
private Wrapper myListItemsWrapper;
private Activity myCurrentActivity;
private boolean closeOnCorrectClick;
private Command myDefaultClickCommand;
private UndoableCommand myDefaultLongClickCommand;
private Command myOnCorrectClickCommand;
private Command myOnCorrectLongClickCommand;
private UndoableCommand myMenuCommands;
private String myActivityName;
public CommandShowListActivity(Wrapper listItemsWrapper,
Activity currentActivity) {
this(listItemsWrapper, currentActivity, true, null, null, null, null,
null, null);
}
/**
* @param listItemsWrapper
* @param currentActivity
* @param closeOnCorrectClick
* @param defaultOnClickCommand
* @param defaultOnLongClickCommand
* @param onCorrectClickCommand
* @param onCorrectLongClickCommand
* @param menuCommands
* @param activityName
*/
public CommandShowListActivity(Wrapper listItemsWrapper,
Activity currentActivity, boolean closeOnCorrectClick,
Command defaultOnClickCommand,
UndoableCommand defaultOnLongClickCommand,
Command onCorrectClickCommand, Command onCorrectLongClickCommand,
UndoableCommand menuCommands, String activityName) {
myListItemsWrapper = listItemsWrapper;
this.closeOnCorrectClick = closeOnCorrectClick;
myCurrentActivity = currentActivity;
myDefaultClickCommand = defaultOnClickCommand;
myDefaultLongClickCommand = defaultOnLongClickCommand;
myOnCorrectClickCommand = onCorrectClickCommand;
myOnCorrectLongClickCommand = onCorrectLongClickCommand;
myMenuCommands = menuCommands;
myActivityName = activityName;
}
@Override
public boolean execute() {
/*
* create an adapter and pass it to the listactivity by using the
* ActivityConnector
*/
if (myListItemsWrapper.getObject() instanceof Container) {
BaseAdapter adapter = new CustomBaseAdapter(
(Container) myListItemsWrapper.getObject());
ListSettings listSettings = new ListSettings(adapter,
closeOnCorrectClick, myOnCorrectClickCommand,
myOnCorrectLongClickCommand, myDefaultClickCommand,
myDefaultLongClickCommand, myMenuCommands, myActivityName);
ActivityConnector.getInstance().startActivity(myCurrentActivity,
CustomListActivity.class, listSettings);
return true;
} else {
Log.d("Commands",
"No activity will be created because you did not pass a CanBeShownInList-Class of ListItems in the Wrapper!");
}
return false;
}
}