package rabbitescape.engine.menu;
import java.util.Arrays;
import java.util.List;
import rabbitescape.engine.util.Util;
public class Menu
{
public final String intro;
public final MenuItem[] items;
public Menu( String intro, MenuItem[] items )
{
this.intro = intro;
this.items = filterNotNull( items );
}
private MenuItem[] filterNotNull( MenuItem[] incomingItems )
{
Util.Function<MenuItem, Boolean> notNull =
new Util.Function<MenuItem, Boolean>()
{
@Override
public Boolean apply( MenuItem item )
{
return ( item != null );
}
};
List<MenuItem> filtered = Util.list(
Util.filter( notNull, Arrays.asList( incomingItems ) )
);
return filtered.toArray( new MenuItem[ filtered.size() ] );
}
/**
* Overridden by subclasses that need to refresh their items when
* something changes.
*/
public void refresh()
{
}
}