1   package debugger.gui.debugging;
2   
3   import javax.swing.*;
4   import java.awt.*;
5   
6   /**
7    * Copyright (c) Ontos AG (http://www.ontosearch.com).
8    * This class is part of JAPE Debugger component for
9    * GATE (Copyright (c) "The University of Sheffield" see http://gate.ac.uk/) <br>
10   * @author Andrey Shafirin, Oleg Mishenko
11   * */
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  //long i = System.currentTimeMillis();
34  //System.out.println("Initializing Jape Rule...");
35              tabbedPane.addTab("Trace History", getTraceHistoryPanel());
36              tabbedPane.addTab("Jape Rule", getRulePanel());
37  //long j = System.currentTimeMillis();
38  //System.out.println("Time: " + (j - i));
39  //i = System.currentTimeMillis();
40  //System.out.println("Initializing Jape Source...");
41              tabbedPane.addTab("Jape Source", getJapeSourcePanel());
42  //j = System.currentTimeMillis();
43  //System.out.println("Time: " + (j - i));
44  //i = System.currentTimeMillis();
45  //System.out.println("Initializing Jape Debugging...");
46  //j = System.currentTimeMillis();
47  //System.out.println("Time: " + (j - i));
48          }
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  }