Package org.ggp.base.apps.player.match

Source Code of org.ggp.base.apps.player.match.MatchPanel

package org.ggp.base.apps.player.match;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.table.DefaultTableModel;

import org.ggp.base.player.gamer.event.GamerCompletedMatchEvent;
import org.ggp.base.player.gamer.event.GamerNewMatchEvent;
import org.ggp.base.util.observer.Event;
import org.ggp.base.util.observer.Observer;
import org.ggp.base.util.ui.table.JZebraTable;


@SuppressWarnings("serial")
public final class MatchPanel extends JPanel implements Observer
{

  private final JZebraTable matchTable;

  public MatchPanel()
  {
    super(new GridBagLayout());

    DefaultTableModel model = new DefaultTableModel();
    model.addColumn("Match Id");
    model.addColumn("Role");
    model.addColumn("Start Clock");
    model.addColumn("Play Clock");
    model.addColumn("Status");

    matchTable = new JZebraTable(model)
    {

      @Override
      public boolean isCellEditable(int rowIndex, int colIndex)
      {
        return false;
      }
    };
    matchTable.setShowHorizontalLines(true);
    matchTable.setShowVerticalLines(true);

    this.add(new JScrollPane(matchTable, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED), new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 5, 5));
  }

  @Override
  public void observe(Event event)
  {
    if (event instanceof GamerCompletedMatchEvent)
    {
      observe((GamerCompletedMatchEvent) event);
    }
    else if (event instanceof GamerNewMatchEvent)
    {
      observe((GamerNewMatchEvent) event);
    }
  }

  private void observe(GamerCompletedMatchEvent event)
  {
    DefaultTableModel model = (DefaultTableModel) matchTable.getModel();
    model.setValueAt("Inactive", model.getRowCount() - 1, 4);
  }

  private void observe(GamerNewMatchEvent event)
  {
    String matchId = event.getMatch().getMatchId();
    String role = event.getRoleName().toString();
    String startClock = Integer.toString(event.getMatch().getStartClock());
    String playClock = Integer.toString(event.getMatch().getPlayClock());
    String status = "Active";

    DefaultTableModel model = (DefaultTableModel) matchTable.getModel();
    model.addRow(new String[] { matchId, role, startClock, playClock, status });
  }

}
TOP

Related Classes of org.ggp.base.apps.player.match.MatchPanel

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.