Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/arranger/jarl/shell/views/JarlShellFrame.java


1   package com.arranger.jarl.shell.views;
2   
3   import com.arranger.jarl.shell.JarlShell;
4   
5   import javax.swing.*;
6   import javax.swing.event.InternalFrameAdapter;
7   import javax.swing.event.InternalFrameEvent;
8   import java.awt.*;
9   import java.awt.event.WindowAdapter;
10  import java.awt.event.WindowEvent;
11  import java.beans.PropertyVetoException;
12  import java.beans.PropertyChangeListener;
13  import java.beans.PropertyChangeEvent;
14  
15  /**
16   * JarlShellFrame is an abstraction
17   * for either a {@link JFrame} or a {@link JInternalFrame}
18   */
19  public class JarlShellFrame {
20  
21      protected JFrame m_jFrame;
22      protected JInternalFrame m_jInternalFrame;
23      protected boolean m_useIntenalFrame;
24  
25      public static JarlShellFrame createJarlShellFrame(JarlShell jarlShell,
26                                                        Container container,
27                                                        int width, int height,
28                                                        String title) {
29  
30          JarlShellFrame jarlShellFrame = new JarlShellFrame(jarlShell, title);
31  
32          jarlShellFrame.setBackground(SystemColor.window);
33          container.setBackground(SystemColor.window);
34          jarlShellFrame.setSize(width, height);
35          jarlShellFrame.setContentPane(container);
36  
37          return jarlShellFrame;
38      }
39  
40      public JarlShellFrame(JarlShell jarlShell, String title) {
41          m_useIntenalFrame = jarlShell.isFullGUI();
42          if (m_useIntenalFrame) {
43              m_jInternalFrame = new JInternalFrame(title, false, true, false, true);
44              jarlShell.getMainJarlShellFrame().addFrame(this);
45              try {
46                  m_jInternalFrame.setSelected(true);
47              } catch (PropertyVetoException e) {
48                  e.printStackTrace();
49              }
50          } else {
51              m_jFrame = new JFrame(title);
52          }
53      }
54  
55      /**
56       * You might want to do some stuff prior to opening it
57       */
58      public void packAndShow() {
59          pack();
60          setVisible(true);
61          show();
62      }
63  
64      public Component getComponent() {
65          if (m_useIntenalFrame) {
66              return m_jInternalFrame;
67          } else {
68              return m_jFrame;
69          }
70      }
71  
72      public interface JarlShellFrameClosingListener {
73          public void onClosing();
74      }
75  
76      public void addWindowClosingListener(final JarlShellFrameClosingListener jarlShellFrameClosingListener) {
77          if (m_useIntenalFrame) {
78              m_jInternalFrame.addInternalFrameListener(new InternalFrameAdapter() {
79                  public void internalFrameClosing(InternalFrameEvent e) {
80                      super.internalFrameClosing(e);
81                      jarlShellFrameClosingListener.onClosing();
82                  }
83              });
84              m_jInternalFrame.addPropertyChangeListener(JInternalFrame.IS_CLOSED_PROPERTY, new PropertyChangeListener() {
85                  public void propertyChange(PropertyChangeEvent evt) {
86                      jarlShellFrameClosingListener.onClosing();
87                  }
88              });
89          } else {
90              m_jFrame.addWindowListener(new WindowAdapter() {
91                  public void windowClosing(WindowEvent e) {
92                      super.windowClosing(e);
93                      jarlShellFrameClosingListener.onClosing();
94                  }
95              });
96          }
97      }
98  
99      public void setContentPane(Container container) {
100         if (m_useIntenalFrame) {
101             m_jInternalFrame.setContentPane(container);
102         } else {
103             m_jFrame.setContentPane(container);
104         }
105     }
106 
107     public void setBackground(Color color) {
108         if (m_useIntenalFrame) {
109             m_jInternalFrame.setBackground(color);
110         } else {
111             m_jFrame.setBackground(color);
112         }
113     }
114 
115     public void setSize(int width, int height) {
116         if (m_useIntenalFrame) {
117             m_jInternalFrame.setSize(width, height);
118         } else {
119             m_jFrame.setSize(width, height);
120         }
121     }
122 
123     public void setJMenuBar(JMenuBar jMenuBar) {
124         if (m_useIntenalFrame) {
125             m_jInternalFrame.setJMenuBar(jMenuBar);
126         } else {
127             m_jFrame.setJMenuBar(jMenuBar);
128         }
129     }
130 
131     public void setTitle(String title) {
132         if (m_useIntenalFrame) {
133             m_jInternalFrame.setTitle(title);
134         } else {
135             m_jFrame.setTitle(title);
136         }
137     }
138 
139     public void pack() {
140         if (m_useIntenalFrame) {
141             m_jInternalFrame.pack();
142         } else {
143             m_jFrame.pack();
144         }
145     }
146 
147     public void setResizable(boolean resizable) {
148         if (m_useIntenalFrame) {
149             m_jInternalFrame.setResizable(resizable);
150         } else {
151             m_jFrame.setResizable(resizable);
152         }
153     }
154 
155     public void show() {
156         if (m_useIntenalFrame) {
157             m_jInternalFrame.show();
158         } else {
159             m_jFrame.show();
160         }
161     }
162 
163     public void setVisible(boolean visible) {
164         if (m_useIntenalFrame) {
165             m_jInternalFrame.setVisible(visible);
166         } else {
167             m_jFrame.setVisible(visible);
168         }
169     }
170 
171     public void repaint() {
172         if (m_useIntenalFrame) {
173             m_jInternalFrame.repaint();
174         } else {
175             m_jFrame.repaint();
176         }
177     }
178 
179     public void dispose() {
180         if (m_useIntenalFrame) {
181             m_jInternalFrame.dispose();
182         } else {
183             m_jFrame.dispose();
184         }
185     }
186 }