Android Open Source - NAQT-Scoresheet-for-Android Player Stats Screen






From Project

Back to project page NAQT-Scoresheet-for-Android.

License

The source code is released under:

Apache License

If you think the Android project NAQT-Scoresheet-for-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2011 Mark Hahnenberg/*from   w  w  w .j  ava 2s  .  c om*/
 *
 * 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 com.naqtscoresheet;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;

public class PlayerStatsScreen extends Activity {
  private Game game;
  
  private void updateTeamNames() {
    TextView teamALabel = (TextView)findViewById(R.id.teamaplayerstatslabel);
    TextView teamBLabel = (TextView)findViewById(R.id.teambplayerstatslabel);
    teamALabel.setText(game.getTeamA().getName());
    teamBLabel.setText(game.getTeamB().getName());
  }
  
  private void updatePlayerName(Player p, TableRow row) {
    TextView name = new TextView(this);
    name.setText(p.getName());
    row.addView(name);
  }
  
  private int getPlayerPoints(Team team, Player p) {
    Tossup currTossup = game.getNthTossup(1);
    int i = 1;
    int points = 0;
    while (currTossup != null) {
      if (currTossup.getWinnerTeam().equals(team) && p.equals(currTossup.getWinnerPlayer())) {
        points += currTossup.getWinnerPoints();
      }
      else if (currTossup.getLoserTeam().equals(team) && p.equals(currTossup.getLoserPlayer())) {
        points += currTossup.getLoserPoints();
      }
      i += 1;
      currTossup = game.getNthTossup(i);
    }
    return points;
  }
  
  private void updatePlayerPoints(Team team, Player p, TableRow row) {
    TextView points = new TextView(this);
    points.setText(Integer.toString(getPlayerPoints(team, p)));
    row.addView(points);
  }
  
  private int getPlayerTens(Team team, Player p) {
    Tossup currTossup = game.getNthTossup(1);
    int i = 1;
    int tens = 0;
    while (currTossup != null) {
      if (currTossup.getWinnerTeam().equals(team) && 
        p.equals(currTossup.getWinnerPlayer()) && 
        currTossup.getWinnerPoints() == 10) {
        tens += 1;
      }
      i += 1;
      currTossup = game.getNthTossup(i);
    }
    return tens;
  }
  
  private void updatePlayerTens(Team team, Player p, TableRow row) {
    TextView tens = new TextView(this);
    tens.setText(Integer.toString(getPlayerTens(team, p)));
    row.addView(tens);
  }
  
  private int getPlayerPowers(Team team, Player p) {
    Tossup currTossup = game.getNthTossup(1);
    int i = 1;
    int powers = 0;
    while (currTossup != null) {
      if (currTossup.getWinnerTeam().equals(team) && 
        p.equals(currTossup.getWinnerPlayer()) && 
        currTossup.getWinnerPoints() == 15) {
        powers += 1;
      }
      i += 1;
      currTossup = game.getNthTossup(i);
    }
    return powers;
  }
  
  private void updatePlayerPowers(Team team, Player p, TableRow row) {
    TextView powers = new TextView(this);
    powers.setText(Integer.toString(getPlayerPowers(team, p)));
    row.addView(powers);
  }
  
  private int getPlayerNegs(Team team, Player p) {
    Tossup currTossup = game.getNthTossup(1);
    int i = 1;
    int negs = 0;
    while (currTossup != null) {
      if (currTossup.getLoserTeam().equals(team) && 
        p.equals(currTossup.getLoserPlayer()) && 
        currTossup.getLoserPoints() == -5) {
        negs += 1;
      }
      else if (currTossup.getLoserTeam().equals(team) && 
        p.equals(currTossup.getLoserPlayer())) {
        System.err.println(currTossup.getLoserPoints());
      }
      else {
        System.err.println(currTossup.getLoserTeam() + " " + currTossup.getLoserPlayer() + " " + currTossup.getLoserPoints());
      }
      i += 1;
      currTossup = game.getNthTossup(i);
    }
    return negs;
  }
  
  private void updatePlayerNegs(Team team, Player p, TableRow row) {
    TextView negs = new TextView(this);
    negs.setText(Integer.toString(getPlayerNegs(team, p)));
    row.addView(negs);
  }
  
  private void updatePlayerStats(Team team, Player p) {
    TableLayout table;
    if (team.equals(this.game.getTeamA())) {
      table = (TableLayout)findViewById(R.id.teamaplayertable);
    }
    else {
      table = (TableLayout)findViewById(R.id.teambplayertable);
    }
    // create new row for player
    TableRow newRow = new TableRow(this);
    table.addView(newRow);
    
    updatePlayerName(p, newRow);
    updatePlayerPoints(team, p, newRow);
    updatePlayerTens(team, p, newRow);
    updatePlayerPowers(team, p, newRow);
    updatePlayerNegs(team, p, newRow);
  }
  
  private void updatePlayersStats() {
    List<Player> teamAPlayers = this.game.getTeamA().getPlayers();
    List<Player> teamBPlayers = this.game.getTeamB().getPlayers();

    TableLayout teamATable = (TableLayout)findViewById(R.id.teamaplayertable);
    if (teamAPlayers.size() == 0) {
      TextView noPlayers = new TextView(this);
      noPlayers.setText("No Players Found");
      TableRow noPlayersRow = new TableRow(this);
      noPlayersRow.addView(noPlayers);
      teamATable.addView(noPlayersRow);
    }
    else {
      for (Player p : teamAPlayers) {
        updatePlayerStats(this.game.getTeamA(), p);
      }
    }
    
    TableLayout teamBTable = (TableLayout)findViewById(R.id.teambplayertable);
    if (teamBPlayers.size() == 0) {
      TextView noPlayers = new TextView(this);
      noPlayers.setText("No Players Found");
      TableRow noPlayersRow = new TableRow(this);
      noPlayersRow.addView(noPlayers);
      teamBTable.addView(noPlayersRow);
    }
    else {
      for (Player p : teamBPlayers) {
        updatePlayerStats(this.game.getTeamB(), p);
      }
    }
  }
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.player_stats);
    
    Bundle bun = getIntent().getExtras();
    this.game = (Game)bun.getSerializable("game");
    
    this.updateTeamNames();
    this.updatePlayersStats();
  }
  
}




Java Source Code List

com.naqtscoresheet.Bonus.java
com.naqtscoresheet.DataExport.java
com.naqtscoresheet.Game.java
com.naqtscoresheet.JSONVisitor.java
com.naqtscoresheet.LoadGameScreen.java
com.naqtscoresheet.NAQTScoresheet.java
com.naqtscoresheet.PlayerStatsScreen.java
com.naqtscoresheet.Player.java
com.naqtscoresheet.StatsScreen.java
com.naqtscoresheet.TeamStatsScreen.java
com.naqtscoresheet.Team.java
com.naqtscoresheet.Tossup.java
com.naqtscoresheet.Visitable.java
com.naqtscoresheet.Visitor.java
com.naqtscoresheet.XMLVisitor.java