package bms.player.beatoraja.launcher; import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.ResourceBundle; import bms.player.beatoraja.song.SongData; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.PropertyValueFactory; public class SongDataView implements Initializable { @FXML private TableColumn<SongData, String> title; @FXML private TableColumn<SongData, String> artist; @FXML private TableColumn<SongData, String> genre; @FXML private TableColumn<SongData, Integer> mode; @FXML private TableColumn<SongData, Integer> notes; @FXML private TableColumn<SongData, Integer> level; @FXML private TableColumn<SongData, String> sha256; private Map<String, TableColumn> columnMap = new HashMap<String, TableColumn>(); public void initialize(URL arg0, ResourceBundle arg1) { // タイトル initColumn(title, "fullTitle"); initColumn(artist, "fullArtist"); initColumn(genre, "genre"); initColumn(mode, "mode"); initColumn(notes, "notes"); initColumn(level, "level"); initColumn(sha256, "sha256"); } private void initColumn(TableColumn column, String value) { column.setCellValueFactory(new PropertyValueFactory(value)); columnMap.put(value, column); } public void setVisible(String... values) { for(TableColumn column : columnMap.values()) { column.setVisible(false); } for(String value : values) { TableColumn column = columnMap.get(value); if(column != null) { column.setVisible(true);; } } } }