Display pipeline in main window.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / gui / MainWindow.java
index 0cc3b13..3077950 100644 (file)
@@ -20,14 +20,18 @@ package net.pterodactylus.sonitus.gui;
 import java.awt.BorderLayout;
 import java.awt.Dimension;
 import java.util.List;
+import javax.swing.BorderFactory;
 import javax.swing.JFrame;
 import javax.swing.JTabbedPane;
 import javax.swing.WindowConstants;
 
 import net.pterodactylus.sonitus.data.Controlled;
 import net.pterodactylus.sonitus.data.Controller;
+import net.pterodactylus.sonitus.data.Pipeline;
 import net.pterodactylus.sonitus.main.Version;
 
+import com.google.common.eventbus.EventBus;
+
 /**
  * Sonitus main window.
  *
@@ -35,12 +39,29 @@ import net.pterodactylus.sonitus.main.Version;
  */
 public class MainWindow extends JFrame {
 
+       /** The event bus. */
+       private final EventBus eventBus;
+
+       /** The pipeline to display. */
+       private final Pipeline pipeline;
+
        /** The tabbed pane displaying all controlled components. */
        private final JTabbedPane tabbedPane = new JTabbedPane();
 
-       /** Creates a new main window. */
-       public MainWindow() {
+       /**
+        * Creates a new main window.
+        *
+        * @param eventBus
+        *              The event bus
+        * @param pipeline
+        *              The pipeline to display
+        */
+       public MainWindow(EventBus eventBus, Pipeline pipeline) {
                super(String.format("Sonitus %s", Version.version()));
+               this.eventBus = eventBus;
+               this.pipeline = pipeline;
+               tabbedPane.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
+               tabbedPane.add("Pipeline", new PipelinePanel(pipeline));
                getContentPane().add(tabbedPane, BorderLayout.CENTER);
                setSize(new Dimension(800, 450));
 
@@ -60,11 +81,8 @@ public class MainWindow extends JFrame {
         */
        public void addControllers(Controlled controlled) {
                List<Controller<?>> controllers = controlled.controllers();
-               if (controllers.isEmpty()) {
-                       return;
-               }
-               ControlledPane controlledPane = new ControlledPane(controlled);
-               tabbedPane.addTab(controlled.toString(), controlledPane);
+               ControlledPane controlledPane = new ControlledPane(eventBus, controlled);
+               tabbedPane.addTab(controlled.name(), controlledPane);
        }
 
 }