1 package org.woehlke.computer.kurzweil.tabs.cca;
2
3 import lombok.Getter;
4 import lombok.experimental.Delegate;
5 import lombok.extern.log4j.Log4j2;
6 import org.woehlke.computer.kurzweil.commons.Startable;
7 import org.woehlke.computer.kurzweil.commons.Updateable;
8 import org.woehlke.computer.kurzweil.commons.widgets.PanelStartStopButtons;
9 import org.woehlke.computer.kurzweil.commons.widgets.SubTabImpl;
10 import org.woehlke.computer.kurzweil.tabs.cca.canvas.PanelNeighbourhoodButtons;
11
12 import javax.swing.*;
13
14 @Log4j2
15 @Getter
16 public class CyclicCellularAutomatonTabPane extends JTabbedPane implements Startable {
17
18 @Delegate(excludes={SubTabImpl.class,JPanel.class,Updateable.class})
19 private final PanelNeighbourhoodButtons panelNeighbourhoodButtons;
20 @Delegate(excludes={SubTabImpl.class,JPanel.class,Updateable.class})
21 private final PanelStartStopButtons startStopButtonsPanel;
22
23 private final CyclicCellularAutomatonTab tab;
24
25 public CyclicCellularAutomatonTabPane(CyclicCellularAutomatonTab tab) {
26 this.tab = tab;
27 this.panelNeighbourhoodButtons = new PanelNeighbourhoodButtons(tab.getCanvas());
28 this.startStopButtonsPanel = new PanelStartStopButtons( tab );
29 this.addTab(this.startStopButtonsPanel.getTitle(), this.startStopButtonsPanel);
30 this.addTab(this.panelNeighbourhoodButtons.getTitle(), this.panelNeighbourhoodButtons);
31 this.panelNeighbourhoodButtons.getButtonVonNeumann().addActionListener( tab);
32 this.panelNeighbourhoodButtons.getButtonMoore().addActionListener( tab);
33 this.panelNeighbourhoodButtons.getButtonWoehlke().addActionListener(tab);
34 this.startStopButtonsPanel.stop();
35 }
36
37 }
38
39