// Path: src/main/java/org/harmony_analyser/application/visualizations/DataChartFactory.java
// public class DataChartFactory {
// 	private final String[] ALL_VISUALIZATIONS = new String[] {
// 		"nnls-chroma:chordino-labels",
// 		"qm-vamp-plugins:qm-keydetector",
// 		"chord_analyser:average_chord_complexity_distance",
// 		"chord_analyser:chord_complexity_distance",
// 		"chord_analyser:tps_distance",
// 		"chroma_analyser:simple_difference",
// 		"chroma_analyser:complexity_difference",
// 	};
// 
// 	public String[] getAllVisualizations() {
// 		return ALL_VISUALIZATIONS;
// 	}
// 
// 	public DataChart createDataChart(String analysisKey, VisualizationData visualizationData) {
// 		switch (analysisKey) {
// 			case "nnls-chroma:chordino-labels":
// 			case "qm-vamp-plugins:qm-keydetector":
// 				return new SegmentationDataChart(visualizationData);
// 			case "chord_analyser:average_chord_complexity_distance":
// 				return new AveragesDataChart(visualizationData);
// 			case "chord_analyser:chord_complexity_distance":
// 			case "chroma_analyser:simple_difference":
// 			case "chroma_analyser:complexity_difference":
// 			case "chord_analyser:tps_distance":
// 				return new LineDataChart(visualizationData);
// 			default:
// 				return new EmptyDataChart(VisualizationData.EMPTY_VISUALIZATION_DATA);
// 		}
// 	}
// }


import javafx.collections.*;
import javafx.event.ActionEvent;
import javafx.fxml.*;
import javafx.scene.control.*;
import javafx.scene.layout.StackPane;
import java.io.*;
import java.net.URL;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ResourceBundle;
import org.harmony_analyser.application.visualizations.DataChartFactory;
import org.harmony_analyser.jharmonyanalyser.services.*;
	@FXML
	private Button chrSettings;

	@FXML
	private Button chrAnalyse;

	@FXML
	private ListView<String> ppAvailable;

	@FXML
	private Label ppTitle;

	@FXML
	private Label ppDescription;

	@FXML
	private Button ppSettings;

	@FXML
	private Button ppAnalyse;

	@FXML
	private TextField ppExtension;

	private AudioAnalyser audioAnalyser;

	@Override // This method is called by the FXMLLoader when initialization is complete
	public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
		//initialize AudioAnalyser
		AnalysisFactory analysisFactory = new AnalysisFactory();
// Path: src/main/java/org/harmony_analyser/application/visualizations/DataChartFactory.java
// public class DataChartFactory {
// 	private final String[] ALL_VISUALIZATIONS = new String[] {
// 		"nnls-chroma:chordino-labels",
// 		"qm-vamp-plugins:qm-keydetector",
// 		"chord_analyser:average_chord_complexity_distance",
// 		"chord_analyser:chord_complexity_distance",
// 		"chord_analyser:tps_distance",
// 		"chroma_analyser:simple_difference",
// 		"chroma_analyser:complexity_difference",
// 	};
// 
// 	public String[] getAllVisualizations() {
// 		return ALL_VISUALIZATIONS;
// 	}
// 
// 	public DataChart createDataChart(String analysisKey, VisualizationData visualizationData) {
// 		switch (analysisKey) {
// 			case "nnls-chroma:chordino-labels":
// 			case "qm-vamp-plugins:qm-keydetector":
// 				return new SegmentationDataChart(visualizationData);
// 			case "chord_analyser:average_chord_complexity_distance":
// 				return new AveragesDataChart(visualizationData);
// 			case "chord_analyser:chord_complexity_distance":
// 			case "chroma_analyser:simple_difference":
// 			case "chroma_analyser:complexity_difference":
// 			case "chord_analyser:tps_distance":
// 				return new LineDataChart(visualizationData);
// 			default:
// 				return new EmptyDataChart(VisualizationData.EMPTY_VISUALIZATION_DATA);
// 		}
// 	}
// }


// Path: src/main/java/org/harmony_analyser/application/AudioAnalysisToolController.java
import javafx.collections.*;
import javafx.event.ActionEvent;
import javafx.fxml.*;
import javafx.scene.control.*;
import javafx.scene.layout.StackPane;
import java.io.*;
import java.net.URL;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ResourceBundle;
import org.harmony_analyser.application.visualizations.DataChartFactory;
import org.harmony_analyser.jharmonyanalyser.services.*;

	@FXML
	private Button chrSettings;

	@FXML
	private Button chrAnalyse;

	@FXML
	private ListView<String> ppAvailable;

	@FXML
	private Label ppTitle;

	@FXML
	private Label ppDescription;

	@FXML
	private Button ppSettings;

	@FXML
	private Button ppAnalyse;

	@FXML
	private TextField ppExtension;

	private AudioAnalyser audioAnalyser;

	@Override // This method is called by the FXMLLoader when initialization is complete
	public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
		//initialize AudioAnalyser
		AnalysisFactory analysisFactory = new AnalysisFactory();
		DataChartFactory dataChartFactory = new DataChartFactory();