1 package debugger.gui.debugging;
2
3 import javax.swing.*;
4 import java.awt.*;
5
6
12
13 public class MainDebugPanel extends JPanel {
14 private JTabbedPane tabbedPane;
15 private JapeSourcePanel japeSourcePanel;
16 private RulePanel rulePanel;
17 private PhasePanel phasePanel;
18 private TraceHistoryPanel traceHistoryPanel;
19
20 public MainDebugPanel() {
21 initGui();
22 }
23
24 private void initGui() {
25 this.setLayout(new BorderLayout());
26 this.add(getPhasePanel(), BorderLayout.NORTH);
27 this.add(getTabbedPane(), BorderLayout.CENTER);
28 }
29
30 private JTabbedPane getTabbedPane() {
31 if (tabbedPane == null) {
32 tabbedPane = new JTabbedPane();
33 tabbedPane.addTab("Trace History", getTraceHistoryPanel());
36 tabbedPane.addTab("Jape Rule", getRulePanel());
37 tabbedPane.addTab("Jape Source", getJapeSourcePanel());
42 }
49 return tabbedPane;
50 }
51
52 public JapeSourcePanel getJapeSourcePanel() {
53 if (japeSourcePanel == null) {
54 japeSourcePanel = new JapeSourcePanel();
55 }
56 return japeSourcePanel;
57 }
58
59 public RulePanel getRulePanel() {
60 if (rulePanel == null) {
61 rulePanel = new RulePanel();
62 }
63 return rulePanel;
64 }
65
66 public PhasePanel getPhasePanel() {
67 if (phasePanel == null) {
68 phasePanel = new PhasePanel();
69 }
70 return phasePanel;
71 }
72
73 public TraceHistoryPanel getTraceHistoryPanel() {
74 if (traceHistoryPanel == null) {
75 traceHistoryPanel = new TraceHistoryPanel();
76 }
77 return traceHistoryPanel;
78 }
79
80 public void selectJapeRulePanel() {
81 tabbedPane.setSelectedComponent(getRulePanel());
82 }
83
84 public void selectTraceHisoryPanel() {
85 tabbedPane.setSelectedComponent(getTraceHistoryPanel());
86 }
87
88 public void selectJapeSourcePanel() {
89 tabbedPane.setSelectedComponent(getJapeSourcePanel());
90 }
91 }