예제 #1
0
  /**
   * Handle player.
   *
   * @param player the player
   */
  private void handlePlayer(IPlayer player, IGameEntry entry) {
    if (player != null) {
      TableViewerColumn column;
      // mark column
      column = this.playerColumn.get(player);
      TableViewerColumn c;
      for (IPlayer p : this.game.getPlayers()) {
        c = this.playerColumn.get(p);
        if (c.equals(column)) {
          c.getColumn().setImage(ProtoPlugin.getImage(ISharedImages.IMG_ARROW_DECO));
        } else {
          c.getColumn().setImage(null);
        }
      }
      // enable/disable inputs & focus
      Text playerInputTxt = this.playerScoreInput.get(player);
      for (Text inputTxt : this.playerScoreInput.values()) {
        if (playerInputTxt.equals(inputTxt)) {
          inputTxt.setEnabled(true);
          inputTxt.setBackground(
              OpenDartsFormsToolkit.getToolkit()
                  .getColors()
                  .getColor(OpenDartsFormsToolkit.COLOR_ACTIVE));
          inputTxt.setFocus();
        } else {
          inputTxt.setEnabled(false);
          inputTxt.setText("");
          inputTxt.setBackground(
              OpenDartsFormsToolkit.getToolkit()
                  .getColors()
                  .getColor(OpenDartsFormsToolkit.COLOR_INACTIVE));
        }
      }

      // IA playing
      if (player.isComputer()) {
        ThreeDartsComputerDialog computerThrow =
            new DartsComputerX01Dialog(
                this.getSite().getShell(), player, this.game, (GameX01Entry) entry);
        computerThrow.open();

        IDartsThrow dartThrow = computerThrow.getComputerThrow();
        if (dartThrow instanceof WinningX01DartsThrow) {
          this.gameService.addWinningPlayerThrow(this.game, player, dartThrow);
        } else {
          this.gameService.addPlayerThrow(this.game, player, dartThrow);
        }
      }
    }
  }