PhaseDiagramPanel.java
package org.hammer;
import java.awt.BorderLayout;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import org.hammer.audio.AudioCaptureService;
/**
* Panel containing the phase diagram visualization.
*
* <p>Refactored to inject AudioCaptureService into the canvas.
*
* @author chammer
*/
public class PhaseDiagramPanel extends JPanel {
private static final Logger LOGGER = Logger.getLogger(PhaseDiagramPanel.class.getName());
private final PhaseDiagramCanvas canvas;
public PhaseDiagramPanel() {
super();
LOGGER.info("PhaseDiagramPanel created");
setLayout(new BorderLayout(0, 0));
setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
canvas = new PhaseDiagramCanvas();
add(canvas, BorderLayout.CENTER);
}
/**
* Set the audio capture service for the phase diagram.
*
* @param service the AudioCaptureService
*/
public void setAudioCaptureService(AudioCaptureService service) {
LOGGER.info("AudioCaptureService set: " + (service != null));
canvas.setAudioCaptureService(service);
}
}