content: package org.lightview.view;
  
  import javafx.collections.ObservableList;
  import javafx.scene.Node;
  import javafx.scene.control.TableColumn;
  import javafx.scene.control.TableView;
  import javafx.scene.control.cell.PropertyValueFactory;
  import org.lightview.model.Snapshot;
  
  /**
   * User: blog.adam-bien.com Date: 23.11.11 Time: 20:02
   */
  public class SnapshotTable {
  
      private ObservableList<Snapshot> snapshots;
  
      public SnapshotTable(ObservableList<Snapshot> snapshots) {
          this.snapshots = snapshots;
      }
  
      public Node createTable() {
          TableView tableView = new TableView();
          ObservableList columns = tableView.getColumns();
          columns.add(createColumn("monitoringTime", "Monitoring Time"));
          columns.add(createColumn("usedHeapSizeInMB", "Heap Size"));
          columns.add(createColumn("threadCount", "Thread Count"));
          columns.add(createColumn("peakThreadCount", "Peak Thread Count"));
          columns.add(createColumn("totalErrors", "Total Errors"));
          columns.add(createColumn("currentThreadBusy", "Busy Threads"));
          columns.add(createColumn("committedTX", "Commits"));
          columns.add(createColumn("rolledBackTX", "Rollbacks"));
          columns.add(createColumn("queuedConnections", "Queued Connections"));
          columns.add(createColumn("totalErrors", "Total Errors"));
          columns.add(createColumn("activeSessions", "Active Sessions"));
          columns.add(createColumn("expiredSessions", "Expired Sessions"));
          tableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
          tableView.setItems(this.snapshots);
          return tableView;
      }
  
      private TableColumn createColumn(String name, String caption) {
          TableColumn column = new TableColumn(caption);
          column.setCellValueFactory(new PropertyValueFactory<Snapshot, String>(name));
          return column;
      }
  }
  