+ public MainWindow(Pipeline pipeline) {
+ super(String.format("Sonitus %s", Version.version()));
+ this.pipeline = pipeline;
+ tabbedPane.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
+ final JPanel pipelineInfoPanel = new JPanel(new BorderLayout(12, 12));
+ PipelinePanel pipelinePanel = new PipelinePanel(pipeline);
+ pipelinePanel.addComponentHoverListener(new ComponentHoverListener() {
+
+ @Override
+ public void componentEntered(Controlled controlled) {
+ infoPanelCardLayout.show(infoPanel, controlled.name());
+ }
+ });
+ pipelineInfoPanel.add(pipelinePanel, BorderLayout.CENTER);
+ pipelineInfoPanel.add(infoPanel, BorderLayout.EAST);
+ tabbedPane.add("Pipeline", pipelineInfoPanel);
+ getContentPane().add(tabbedPane, BorderLayout.CENTER);
+ setSize(new Dimension(800, 450));
+
+ /* create info panels for all components. */
+ for (Controlled controlled : pipeline) {
+ ComponentInfoPanel componentInfoPanel = new ComponentInfoPanel(controlled);
+ infoPanel.add(componentInfoPanel, controlled.name());
+ controlledInfoPanels.put(controlled, componentInfoPanel);