BoardWidget.java :  » Game » sysboard » cli » Java Open Source

Java Open Source » Game » sysboard 
sysboard » cli » BoardWidget.java
package cli;

import java.awt.Color;
import java.awt.Point;
import java.util.ArrayList;

import base.Engine;
import base.Piece;
import base.Set;
import base.State;
import base.VirtualBoard;

public class BoardWidget {
  private ArrayList<String> board = new ArrayList<String>();
  private StringBuilder stringBuilder;
  private VirtualBoard virtualBoard;
  private Set set;
  private Engine engine;
  
  public BoardWidget(Engine engine) {
    this.setEngine(engine);
    this.virtualBoard = this.getEngine().getVirtualBoard();
  }
  
  public void refreshBoard() {
    this.board.clear();
    
    for (int y = 0; y < this.virtualBoard.getSize().height; y++) {
      StringBuilder row = new StringBuilder();
      
      for (int x = 0; x < this.virtualBoard.getSize().width; x++) {
        Point location = new Point(x, y);
        String label;
        
        if (!this.virtualBoard.isEmpty(location)) {
          Piece piece = this.virtualBoard.getPiece(location);
          State state = this.virtualBoard.getCurrentState(piece);
          
          label = this.getRepresentation(state.getUpgrade());
          
          if (this.virtualBoard.getCurrentState(piece).getOwner().getColor().equals(Color.BLACK)) {
            label = label.toUpperCase();
          }
          else {
            label = label.toLowerCase();
          }
        }
        else {
          label = "*";
        }
        
        row.append(label);
      }
      
      this.board.add(row.toString());
    }
    
    this.stringBuilder = new StringBuilder();
    
    for (String row : this.board) {
      this.stringBuilder.append(row);
      this.stringBuilder.append(CLI.NEWLINE);
    }
    
    this.stringBuilder.trimToSize();
  }

  private String getRepresentation(Piece piece) {
    return this.getSet().getRepresentationByPiece(piece.getRepresentation());
  }

  public void setEngine(Engine engine) {
    this.engine = engine;
  }

  public Engine getEngine() {
    return engine;
  }

  public void setBoard(ArrayList<String> board) {
    this.board = board;
  }

  public ArrayList<String> getBoard() {
    return board;
  }

  public void setSet(Set set) {
    this.set = set;
    this.refreshBoard();
  }

  public Set getSet() {
    return set;
  }
  
  @Override
  public String toString() {
    return this.stringBuilder.toString();
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.