View Javadoc
1   package org.woehlke.computer.kurzweil.tabs.mandelbrot2julia;
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.mandelbrotzoom.canvas.PanelChooseMouseClickMode;
11  import org.woehlke.computer.kurzweil.tabs.mandelbrotzoom.canvas.PanelZoom;
12  
13  import javax.swing.*;
14  
15  @Log4j2
16  @Getter
17  public class MandelbrotTabPane  extends JTabbedPane implements Startable {
18  
19      @Delegate(excludes={SubTabImpl.class,JPanel.class, Updateable.class})
20      private final PanelStartStopButtons startStopButtonsPanel;
21      private final PanelChooseMouseClickMode panelChooseMouseClickMode;
22      private final PanelZoom panelZoom;
23  
24      private final MandelbrotTab tab;
25  
26      public MandelbrotTabPane(MandelbrotTab tab) {
27          this.tab = tab;
28          this.startStopButtonsPanel = new PanelStartStopButtons( tab );
29          this.addTab(this.startStopButtonsPanel.getTitle(), this.startStopButtonsPanel);
30          this.panelChooseMouseClickMode = new PanelChooseMouseClickMode(this.tab.getTabCtx());
31          this.panelZoom = new PanelZoom(this.tab.getTabCtx());
32          this.addTab(panelChooseMouseClickMode.getTitle(),panelChooseMouseClickMode);
33          this.addTab(panelZoom.getTitle(),panelZoom);
34          this.startStopButtonsPanel.stop();
35          this.disableZoomButton();
36      }
37  
38  
39      public void enableZoomButton() {
40          this.panelZoom.setEnabled(false);
41      }
42  
43      public void disableZoomButton() {
44          this.panelZoom.setEnabled(true);
45      }
46  
47      public JRadioButton getRadioButtonsSwitch() {
48          return this.panelChooseMouseClickMode.getRadioButtonsSwitch();
49      }
50  
51      public JRadioButton getRadioButtonsZoom() {
52          return this.panelChooseMouseClickMode.getRadioButtonsZoom();
53      }
54  
55      public AbstractButton getZoomOutButton() {
56          return this.panelZoom.getZoomOutButton();
57      }
58  
59  }