import javax.swing.Timer;
import javax.swing.WindowConstants;
-import net.pterodactylus.sonitus.data.Controlled;
+import net.pterodactylus.sonitus.data.Filter;
import net.pterodactylus.sonitus.data.Pipeline;
-import net.pterodactylus.sonitus.gui.PipelinePanel.ComponentHoverListener;
+import net.pterodactylus.sonitus.gui.PipelinePanel.FilterSelectionListener;
import net.pterodactylus.sonitus.main.Version;
import com.google.common.base.Optional;
/** The pipeline to display. */
private final Pipeline pipeline;
- /** The tabbed pane displaying all controlled components. */
+ /** The tabbed pane displaying all pipelines. */
private final JTabbedPane tabbedPane = new JTabbedPane();
/** The info panel card layout. */
/** The info panel. */
private final JPanel infoPanel = new JPanel(infoPanelCardLayout);
- /** The mapping from controlled components to info panels. */
- private final Map<Controlled, ComponentInfoPanel> controlledInfoPanels = Maps.newHashMap();
+ /** The mapping from filters to info panels. */
+ private final Map<Filter, FilterInfoPanel> filterInfoPanels = Maps.newHashMap();
/**
* Creates a new main window.
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() {
+ pipelinePanel.addFilterSelectionListener(new FilterSelectionListener() {
@Override
- public void componentEntered(Controlled controlled) {
- infoPanelCardLayout.show(infoPanel, controlled.name());
+ public void filterSelected(Filter filter) {
+ infoPanelCardLayout.show(infoPanel, filter.name());
}
});
pipelineInfoPanel.add(pipelinePanel, BorderLayout.CENTER);
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);
+ /* create info panels for all filters. */
+ for (Filter fliter : pipeline) {
+ FilterInfoPanel filterInfoPanel = new FilterInfoPanel(fliter);
+ infoPanel.add(filterInfoPanel, fliter.name());
+ filterInfoPanels.put(fliter, filterInfoPanel);
}
Timer timer = new Timer(250, new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
/* update all info panels. */
- for (Controlled controlled : MainWindow.this.pipeline) {
- ComponentInfoPanel componentInfoPanel = controlledInfoPanels.get(controlled);
- componentInfoPanel.input(MainWindow.this.pipeline.trafficCounter(controlled).input());
- componentInfoPanel.output(MainWindow.this.pipeline.trafficCounter(controlled).output());
- componentInfoPanel.format(Optional.of(controlled.metadata().format()));
+ for (Filter filter : MainWindow.this.pipeline) {
+ FilterInfoPanel filterInfoPanel = filterInfoPanels.get(filter);
+ filterInfoPanel.input(MainWindow.this.pipeline.trafficCounter(filter).input());
+ filterInfoPanel.output(MainWindow.this.pipeline.trafficCounter(filter).output());
+ filterInfoPanel.format(Optional.of(filter.metadata().format()));
}
}
});