Package com.kolakcc.loljclient.model.swing

Source Code of com.kolakcc.loljclient.model.swing.CustomGameTableModel

package com.kolakcc.loljclient.model.swing;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

import com.gvaneyck.rtmp.encoding.TypedObject;
import com.kolakcc.loljclient.model.CustomGameListItem;
import com.kolakcc.loljclient.util.TOUtils;

public class CustomGameTableModel extends AbstractTableModel {
  private String[] columnNames = { "Game Name", "Creator" };
  private ArrayList<CustomGameListItem> data;
  private ArrayList<CustomGameListItem> filtered;
  private String gameNameFilter;
  public boolean showPrivateGames;
 
  public ArrayList<Integer> showGameMaps;

  public CustomGameTableModel(TypedObject customGamesList) {
    data = new ArrayList<CustomGameListItem>();
    filtered = new ArrayList<CustomGameListItem>();
   
    gameNameFilter = "";
    showGameMaps = new ArrayList<Integer>();
    showGameMaps.add(7);
    showGameMaps.add(1);
    showGameMaps.add(8);
    showGameMaps.add(10);
    showPrivateGames = true;
    add(customGamesList);
  }

  public int getColumnCount() {
    return this.columnNames.length;
  }

  public String getColumnName(int col) {
    return this.columnNames[col];
  }

  public CustomGameListItem getGameAt(int row) {
    return this.filtered.get(row);
  }

  public int getRowCount() {
    return this.filtered.size();
  }

  public Object getValueAt(int row, int col) {
    CustomGameListItem selectedObject = this.filtered.get(row);
    if (col == 0) {
      return selectedObject.getName();
    }
    if (col == 1) {
      return selectedObject.getOwner().getSummonerName();
    }
    return "???";
  }
  public void removeAll() {
    data.clear();
    this.fireTableDataChanged();
  }
  public void reapplyFilters() {
    filtered.clear();
    this.filterGameName(gameNameFilter);
    for (CustomGameListItem item : data) {
      if (showItem(item)) {
        filtered.add(item);
      }
    }
    this.fireTableDataChanged();
  }
  private boolean showItem(CustomGameListItem item) {
    boolean show = true;
    if (!item.getName().toLowerCase().contains(gameNameFilter.toLowerCase())) show = false;
    if (!showGameMaps.contains(item.getGameMapID())) show = false;
    if ((!this.showPrivateGames) && (item.isPrivateGame() == true)) show = false;
    return show;
  }
  public void filterGameName(String newFilter) {
    gameNameFilter = newFilter;
  }
  public void clear() {
    data.clear();
    filtered.clear();
    this.fireTableDataChanged();
  }
  public void add(TypedObject customGamesList) {
    for (TypedObject game : TOUtils.ArrayToTOArray(customGamesList.getArray("array"))) {
      this.data.add(new CustomGameListItem(game));
    }
    filtered = (ArrayList<CustomGameListItem>) data.clone();
    this.fireTableDataChanged();
    this.reapplyFilters();
  }
}
TOP

Related Classes of com.kolakcc.loljclient.model.swing.CustomGameTableModel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.