xref: /AOO41X/main/odk/examples/java/Inspector/SwingDialogProvider.java (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  *  The Contents of this file are made available subject to the terms of
4*cdf0e10cSrcweir  *  the BSD license.
5*cdf0e10cSrcweir  *
6*cdf0e10cSrcweir  *  Copyright 2000, 2010 Oracle and/or its affiliates.
7*cdf0e10cSrcweir  *  All rights reserved.
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  *  Redistribution and use in source and binary forms, with or without
10*cdf0e10cSrcweir  *  modification, are permitted provided that the following conditions
11*cdf0e10cSrcweir  *  are met:
12*cdf0e10cSrcweir  *  1. Redistributions of source code must retain the above copyright
13*cdf0e10cSrcweir  *     notice, this list of conditions and the following disclaimer.
14*cdf0e10cSrcweir  *  2. Redistributions in binary form must reproduce the above copyright
15*cdf0e10cSrcweir  *     notice, this list of conditions and the following disclaimer in the
16*cdf0e10cSrcweir  *     documentation and/or other materials provided with the distribution.
17*cdf0e10cSrcweir  *  3. Neither the name of Sun Microsystems, Inc. nor the names of its
18*cdf0e10cSrcweir  *     contributors may be used to endorse or promote products derived
19*cdf0e10cSrcweir  *     from this software without specific prior written permission.
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22*cdf0e10cSrcweir  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23*cdf0e10cSrcweir  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24*cdf0e10cSrcweir  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25*cdf0e10cSrcweir  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26*cdf0e10cSrcweir  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27*cdf0e10cSrcweir  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
28*cdf0e10cSrcweir  *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
29*cdf0e10cSrcweir  *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
30*cdf0e10cSrcweir  *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
31*cdf0e10cSrcweir  *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32*cdf0e10cSrcweir  *
33*cdf0e10cSrcweir  *************************************************************************/
34*cdf0e10cSrcweir 
35*cdf0e10cSrcweir import com.sun.star.uno.XComponentContext;
36*cdf0e10cSrcweir import java.awt.Component;
37*cdf0e10cSrcweir import java.awt.Container;
38*cdf0e10cSrcweir import java.awt.Dimension;
39*cdf0e10cSrcweir import java.awt.event.ActionListener;
40*cdf0e10cSrcweir import java.awt.event.ComponentAdapter;
41*cdf0e10cSrcweir import java.awt.event.ComponentEvent;
42*cdf0e10cSrcweir import java.awt.event.KeyEvent;
43*cdf0e10cSrcweir import java.awt.event.WindowAdapter;
44*cdf0e10cSrcweir import java.awt.event.WindowEvent;
45*cdf0e10cSrcweir import javax.swing.ButtonGroup;
46*cdf0e10cSrcweir import javax.swing.JCheckBoxMenuItem;
47*cdf0e10cSrcweir import javax.swing.JDialog;
48*cdf0e10cSrcweir import javax.swing.JEditorPane;
49*cdf0e10cSrcweir import javax.swing.JMenu;
50*cdf0e10cSrcweir import javax.swing.JMenuBar;
51*cdf0e10cSrcweir import javax.swing.JMenuItem;
52*cdf0e10cSrcweir import javax.swing.JPanel;
53*cdf0e10cSrcweir import javax.swing.JPopupMenu;
54*cdf0e10cSrcweir import javax.swing.JRadioButtonMenuItem;
55*cdf0e10cSrcweir import javax.swing.JTabbedPane;
56*cdf0e10cSrcweir import javax.swing.KeyStroke;
57*cdf0e10cSrcweir 
58*cdf0e10cSrcweir 
59*cdf0e10cSrcweir 
60*cdf0e10cSrcweir public class SwingDialogProvider implements XDialogProvider{
61*cdf0e10cSrcweir 
62*cdf0e10cSrcweir     private JPopupMenu m_jPopupMenu = new JPopupMenu();
63*cdf0e10cSrcweir     private XComponentContext m_xComponentContext;
64*cdf0e10cSrcweir     private Inspector._Inspector m_oInspector;
65*cdf0e10cSrcweir     private JDialog m_jInspectorDialog = new JDialog();
66*cdf0e10cSrcweir     private JTabbedPane m_jTabbedPane1 = new JTabbedPane();
67*cdf0e10cSrcweir     private Container cp;
68*cdf0e10cSrcweir 
69*cdf0e10cSrcweir     private JMenu jMnuOptions = new JMenu("Options");
70*cdf0e10cSrcweir     private JRadioButtonMenuItem jJavaMenuItem = null;
71*cdf0e10cSrcweir     private JRadioButtonMenuItem jCPlusPlusMenuItem = null;
72*cdf0e10cSrcweir     private JRadioButtonMenuItem jBasicMenuItem = null;
73*cdf0e10cSrcweir 
74*cdf0e10cSrcweir     /** Creates a new instance of SwingPopupMentuProvider */
75*cdf0e10cSrcweir     public SwingDialogProvider(Inspector._Inspector _oInspector, String _sTitle) {
76*cdf0e10cSrcweir         m_oInspector = _oInspector;
77*cdf0e10cSrcweir         m_xComponentContext = _oInspector.getXComponentContext();
78*cdf0e10cSrcweir         insertMenus();
79*cdf0e10cSrcweir         initializePopupMenu();
80*cdf0e10cSrcweir         cp = m_jInspectorDialog.getContentPane();
81*cdf0e10cSrcweir         cp.setLayout(new java.awt.BorderLayout(0, 10));
82*cdf0e10cSrcweir         m_jTabbedPane1.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
83*cdf0e10cSrcweir         m_jInspectorDialog.addWindowListener(new InspectorWindowAdapter());
84*cdf0e10cSrcweir         m_jInspectorDialog.addComponentListener(new InspectorComponentAdapter());
85*cdf0e10cSrcweir         m_jInspectorDialog.setTitle(_sTitle);
86*cdf0e10cSrcweir         m_jInspectorDialog.setLocation(100, 50);
87*cdf0e10cSrcweir         m_jInspectorDialog.getContentPane().add(m_jTabbedPane1);
88*cdf0e10cSrcweir     }
89*cdf0e10cSrcweir 
90*cdf0e10cSrcweir 
91*cdf0e10cSrcweir 
92*cdf0e10cSrcweir         public JDialog getDialog(){
93*cdf0e10cSrcweir             return m_jInspectorDialog;
94*cdf0e10cSrcweir         }
95*cdf0e10cSrcweir 
96*cdf0e10cSrcweir 
97*cdf0e10cSrcweir         public void addMenuBar(JMenuBar _jMenuBar){
98*cdf0e10cSrcweir             getDialog().setJMenuBar(_jMenuBar);
99*cdf0e10cSrcweir         }
100*cdf0e10cSrcweir 
101*cdf0e10cSrcweir 
102*cdf0e10cSrcweir         public void  removeTabPaneByIndex(int _nIndex){
103*cdf0e10cSrcweir             if (_nIndex > -1){
104*cdf0e10cSrcweir                 String sSelInspectorPanelTitle = m_jTabbedPane1.getTitleAt(_nIndex);
105*cdf0e10cSrcweir                 m_jTabbedPane1.remove(_nIndex);
106*cdf0e10cSrcweir                 m_oInspector.getInspectorPages().remove(sSelInspectorPanelTitle);
107*cdf0e10cSrcweir             }
108*cdf0e10cSrcweir         }
109*cdf0e10cSrcweir 
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir         public void selectInspectorPageByIndex(int nTabIndex){
112*cdf0e10cSrcweir             m_jTabbedPane1.setSelectedIndex(nTabIndex);
113*cdf0e10cSrcweir         }
114*cdf0e10cSrcweir 
115*cdf0e10cSrcweir 
116*cdf0e10cSrcweir         public int getInspectorPageCount(){
117*cdf0e10cSrcweir             return  m_jTabbedPane1.getTabCount();
118*cdf0e10cSrcweir         }
119*cdf0e10cSrcweir 
120*cdf0e10cSrcweir 
121*cdf0e10cSrcweir         public JTabbedPane getTabbedPane(){
122*cdf0e10cSrcweir             return m_jTabbedPane1;
123*cdf0e10cSrcweir         }
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir 
126*cdf0e10cSrcweir         public InspectorPane getSelectedInspectorPage(){
127*cdf0e10cSrcweir             int nIndex = m_jTabbedPane1.getSelectedIndex();
128*cdf0e10cSrcweir             return getInspectorPage(nIndex);
129*cdf0e10cSrcweir         }
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir 
132*cdf0e10cSrcweir         public InspectorPane getInspectorPage(int _nIndex){
133*cdf0e10cSrcweir             InspectorPane oInspectorPane = null;
134*cdf0e10cSrcweir             if (_nIndex > -1){
135*cdf0e10cSrcweir                 JPanel jPnlContainerInspectorPanel = (JPanel) m_jTabbedPane1.getComponentAt(_nIndex);
136*cdf0e10cSrcweir                 String sInspectorPanelTitle = m_jTabbedPane1.getTitleAt(_nIndex);
137*cdf0e10cSrcweir                 oInspectorPane = (InspectorPane) m_oInspector.getInspectorPages().get(sInspectorPanelTitle);
138*cdf0e10cSrcweir             }
139*cdf0e10cSrcweir             return oInspectorPane;
140*cdf0e10cSrcweir         }
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir 
143*cdf0e10cSrcweir         public void removeTabPanes(){
144*cdf0e10cSrcweir             int nCount = m_jTabbedPane1.getTabCount();
145*cdf0e10cSrcweir             if (nCount > 0){
146*cdf0e10cSrcweir                 for (int i = nCount-1; i >= 0; i--){
147*cdf0e10cSrcweir                     removeTabPaneByIndex(i);
148*cdf0e10cSrcweir                 }
149*cdf0e10cSrcweir             }
150*cdf0e10cSrcweir         }
151*cdf0e10cSrcweir 
152*cdf0e10cSrcweir         public void removeSelectedTabPane(){
153*cdf0e10cSrcweir             int nIndex = getTabbedPane().getSelectedIndex();
154*cdf0e10cSrcweir             removeTabPaneByIndex(nIndex);
155*cdf0e10cSrcweir         }
156*cdf0e10cSrcweir 
157*cdf0e10cSrcweir 
158*cdf0e10cSrcweir         private class InspectorComponentAdapter extends ComponentAdapter{
159*cdf0e10cSrcweir             public void componentHidden(ComponentEvent e){
160*cdf0e10cSrcweir                 m_jInspectorDialog.pack();
161*cdf0e10cSrcweir                 m_jInspectorDialog.invalidate();
162*cdf0e10cSrcweir 
163*cdf0e10cSrcweir             }
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir             public void componentShown(ComponentEvent e){
166*cdf0e10cSrcweir                 m_jInspectorDialog.pack();
167*cdf0e10cSrcweir                 m_jInspectorDialog.invalidate();
168*cdf0e10cSrcweir             }
169*cdf0e10cSrcweir         }
170*cdf0e10cSrcweir 
171*cdf0e10cSrcweir         private class InspectorWindowAdapter extends WindowAdapter{
172*cdf0e10cSrcweir             public void windowClosed(WindowEvent e){
173*cdf0e10cSrcweir                 removeTabPanes();
174*cdf0e10cSrcweir                 m_oInspector.disposeHiddenDocuments();
175*cdf0e10cSrcweir             }
176*cdf0e10cSrcweir 
177*cdf0e10cSrcweir             public void windowClosing(WindowEvent e){
178*cdf0e10cSrcweir                 removeTabPanes();
179*cdf0e10cSrcweir                 m_oInspector.disposeHiddenDocuments();
180*cdf0e10cSrcweir             }
181*cdf0e10cSrcweir         }
182*cdf0e10cSrcweir 
183*cdf0e10cSrcweir 
184*cdf0e10cSrcweir 
185*cdf0e10cSrcweir         private void initializePopupMenu(){
186*cdf0e10cSrcweir             m_jPopupMenu.add(getInspectMenuItem("Inspect"));
187*cdf0e10cSrcweir             m_jPopupMenu.add(getSourceCodeMenuItem(SADDTOSOURCECODE));
188*cdf0e10cSrcweir             m_jPopupMenu.add(getInvokeMenuItem(SINVOKE));
189*cdf0e10cSrcweir             m_jPopupMenu.addSeparator();
190*cdf0e10cSrcweir             m_jPopupMenu.add(getHelpMenuItem("Help"));
191*cdf0e10cSrcweir         }
192*cdf0e10cSrcweir 
193*cdf0e10cSrcweir 
194*cdf0e10cSrcweir         private void addOpenDocumentMenu(JMenu _jMnuRoot){
195*cdf0e10cSrcweir             ActionListener oActionListener = new ActionListener(){
196*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
197*cdf0e10cSrcweir                     String sTDocUrl = evt.getActionCommand();
198*cdf0e10cSrcweir                     m_oInspector.inspectOpenDocument(sTDocUrl);
199*cdf0e10cSrcweir                 }
200*cdf0e10cSrcweir             };
201*cdf0e10cSrcweir             String[] sTDocUrls = m_oInspector.getTDocUrls();
202*cdf0e10cSrcweir             String[] sTDocTitles = m_oInspector.getTDocTitles(sTDocUrls);
203*cdf0e10cSrcweir             for (int i = 0; i < sTDocUrls.length; i++){
204*cdf0e10cSrcweir                 addSingleMenuItem(_jMnuRoot, sTDocTitles[i], sTDocUrls[i], oActionListener);
205*cdf0e10cSrcweir             }
206*cdf0e10cSrcweir         }
207*cdf0e10cSrcweir 
208*cdf0e10cSrcweir 
209*cdf0e10cSrcweir         private void addApplicationDocumentMenu(JMenu _jMnuRoot){
210*cdf0e10cSrcweir             ActionListener oActionListener = new ActionListener(){
211*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
212*cdf0e10cSrcweir                     String sApplicationDocUrl = evt.getActionCommand();
213*cdf0e10cSrcweir                     m_oInspector.inspectOpenEmptyDocument(sApplicationDocUrl);
214*cdf0e10cSrcweir                 }
215*cdf0e10cSrcweir             };
216*cdf0e10cSrcweir             String[][] sApplUrls = m_oInspector.getApplicationUrls();
217*cdf0e10cSrcweir             for (int i = 0; i < sApplUrls.length; i++){
218*cdf0e10cSrcweir                 addSingleMenuItem(_jMnuRoot, sApplUrls[i][1], sApplUrls[i][0], oActionListener);
219*cdf0e10cSrcweir             }
220*cdf0e10cSrcweir         }
221*cdf0e10cSrcweir 
222*cdf0e10cSrcweir 
223*cdf0e10cSrcweir         private void addSingleMenuItem(JMenu _jMnuOpenDocs, String _sTitle, String _sActionCommand, ActionListener _oActionListener){
224*cdf0e10cSrcweir             javax.swing.JMenuItem jMnuItemOpenDoc = new javax.swing.JMenuItem(_sTitle);
225*cdf0e10cSrcweir             jMnuItemOpenDoc.setActionCommand(_sActionCommand);
226*cdf0e10cSrcweir             jMnuItemOpenDoc.addActionListener(_oActionListener);
227*cdf0e10cSrcweir             _jMnuOpenDocs.add(jMnuItemOpenDoc);
228*cdf0e10cSrcweir         }
229*cdf0e10cSrcweir 
230*cdf0e10cSrcweir 
231*cdf0e10cSrcweir         private void addHelpMenu(JMenuBar _jInspectMenuBar){
232*cdf0e10cSrcweir             JMenu jMnuHelp = new JMenu("Help");
233*cdf0e10cSrcweir             jMnuHelp.add(getHelpMenuItem("Idl-Help"));
234*cdf0e10cSrcweir             _jInspectMenuBar.add(jMnuHelp);
235*cdf0e10cSrcweir         }
236*cdf0e10cSrcweir 
237*cdf0e10cSrcweir 
238*cdf0e10cSrcweir         private JMenuItem getHelpMenuItem(String _sMenuTitle){
239*cdf0e10cSrcweir             JMenuItem jMnuHelpItem = new JMenuItem(_sMenuTitle);
240*cdf0e10cSrcweir             jMnuHelpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0));
241*cdf0e10cSrcweir             jMnuHelpItem.setMnemonic('H');
242*cdf0e10cSrcweir             jMnuHelpItem.addActionListener(new ActionListener(){
243*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
244*cdf0e10cSrcweir                     m_oInspector.openIdlFileforSelectedNode();
245*cdf0e10cSrcweir                 }
246*cdf0e10cSrcweir             });
247*cdf0e10cSrcweir             return jMnuHelpItem;
248*cdf0e10cSrcweir         }
249*cdf0e10cSrcweir 
250*cdf0e10cSrcweir         private void addFileMenu(JMenuBar _jInspectMenuBar){
251*cdf0e10cSrcweir             JMenu jMnuFile = new JMenu("File");
252*cdf0e10cSrcweir             JMenuItem jMnuItemRemoveInspector = new JMenuItem("Remove");
253*cdf0e10cSrcweir             jMnuItemRemoveInspector.addActionListener(new ActionListener(){
254*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
255*cdf0e10cSrcweir                     removeSelectedTabPane();
256*cdf0e10cSrcweir                 }
257*cdf0e10cSrcweir             });
258*cdf0e10cSrcweir             jMnuFile.add(jMnuItemRemoveInspector);
259*cdf0e10cSrcweir             JMenuItem jMnuItemExit = new JMenuItem("Exit");
260*cdf0e10cSrcweir             jMnuItemExit.addActionListener(new ActionListener(){
261*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
262*cdf0e10cSrcweir                     getDialog().dispose();
263*cdf0e10cSrcweir                 }
264*cdf0e10cSrcweir             });
265*cdf0e10cSrcweir             jMnuFile.add(jMnuItemExit);
266*cdf0e10cSrcweir             _jInspectMenuBar.add(jMnuFile);
267*cdf0e10cSrcweir         }
268*cdf0e10cSrcweir 
269*cdf0e10cSrcweir         private JMenuItem getInspectMenuItem(String _sLabel){
270*cdf0e10cSrcweir             JMenuItem jMnuSelectedObject = new JMenuItem(_sLabel);
271*cdf0e10cSrcweir             jMnuSelectedObject.addActionListener(new ActionListener(){
272*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
273*cdf0e10cSrcweir                     m_oInspector.inspectSelectedNode();
274*cdf0e10cSrcweir                 }
275*cdf0e10cSrcweir             });
276*cdf0e10cSrcweir             return jMnuSelectedObject;
277*cdf0e10cSrcweir         }
278*cdf0e10cSrcweir 
279*cdf0e10cSrcweir 
280*cdf0e10cSrcweir         private JMenuItem getSourceCodeMenuItem(String _sLabel){
281*cdf0e10cSrcweir             JMenuItem jMnuSelectedObject = new JMenuItem(_sLabel);
282*cdf0e10cSrcweir             jMnuSelectedObject.addActionListener(new ActionListener(){
283*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
284*cdf0e10cSrcweir                     m_oInspector.addSourceCodeOfSelectedNode();
285*cdf0e10cSrcweir                 }
286*cdf0e10cSrcweir             });
287*cdf0e10cSrcweir             return jMnuSelectedObject;
288*cdf0e10cSrcweir         }
289*cdf0e10cSrcweir 
290*cdf0e10cSrcweir         private JMenuItem getInvokeMenuItem(String _sLabel){
291*cdf0e10cSrcweir             JMenuItem jMnuSelectedObject = new JMenuItem(_sLabel);
292*cdf0e10cSrcweir             jMnuSelectedObject.addActionListener(new ActionListener(){
293*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
294*cdf0e10cSrcweir                     m_oInspector.invokeSelectedMethod();
295*cdf0e10cSrcweir                 }
296*cdf0e10cSrcweir             });
297*cdf0e10cSrcweir             return jMnuSelectedObject;
298*cdf0e10cSrcweir         }
299*cdf0e10cSrcweir 
300*cdf0e10cSrcweir 
301*cdf0e10cSrcweir         private void addInspectMenu(JMenuBar _jInspectMenuBar){
302*cdf0e10cSrcweir             JMenu jMnuInspect = new JMenu("Inspect");
303*cdf0e10cSrcweir             addApplicationDocumentMenu(jMnuInspect);
304*cdf0e10cSrcweir             jMnuInspect.addSeparator();
305*cdf0e10cSrcweir             addGlobalServiceManagerMenu(jMnuInspect);
306*cdf0e10cSrcweir             jMnuInspect.addSeparator();
307*cdf0e10cSrcweir             jMnuInspect.add(getInspectMenuItem("Selected Object"));
308*cdf0e10cSrcweir             jMnuInspect.addSeparator();
309*cdf0e10cSrcweir             addOpenDocumentMenu(jMnuInspect);
310*cdf0e10cSrcweir             _jInspectMenuBar.add(jMnuInspect);
311*cdf0e10cSrcweir         }
312*cdf0e10cSrcweir 
313*cdf0e10cSrcweir         public int getLanguage(){
314*cdf0e10cSrcweir             return XLanguageSourceCodeGenerator.nJAVA;
315*cdf0e10cSrcweir         }
316*cdf0e10cSrcweir 
317*cdf0e10cSrcweir 
318*cdf0e10cSrcweir         public void selectSourceCodeLanguage(int _nLanguage){
319*cdf0e10cSrcweir             switch (_nLanguage){
320*cdf0e10cSrcweir                 case XLanguageSourceCodeGenerator.nJAVA:
321*cdf0e10cSrcweir                     jJavaMenuItem.setSelected(true);
322*cdf0e10cSrcweir                     break;
323*cdf0e10cSrcweir                 case XLanguageSourceCodeGenerator.nCPLUSPLUS:
324*cdf0e10cSrcweir                     jCPlusPlusMenuItem.setSelected(true);
325*cdf0e10cSrcweir                     break;
326*cdf0e10cSrcweir                 case XLanguageSourceCodeGenerator.nBASIC:
327*cdf0e10cSrcweir                     jBasicMenuItem.setSelected(true);
328*cdf0e10cSrcweir                     break;
329*cdf0e10cSrcweir                 default:
330*cdf0e10cSrcweir                     System.out.println("Warning: Sourcecode language is not defined!");
331*cdf0e10cSrcweir             }
332*cdf0e10cSrcweir         }
333*cdf0e10cSrcweir 
334*cdf0e10cSrcweir         private JRadioButtonMenuItem addLanguageMenuItem(ButtonGroup _group, String _sLanguageTitle, boolean _bSelect, char _sMnemonic, final int _nLanguage){
335*cdf0e10cSrcweir             JRadioButtonMenuItem jMenuItem = new JRadioButtonMenuItem(_sLanguageTitle, _bSelect);
336*cdf0e10cSrcweir             jMenuItem.setMnemonic(_sMnemonic);
337*cdf0e10cSrcweir             _group.add(jMenuItem);
338*cdf0e10cSrcweir             jMenuItem.addActionListener(new ActionListener(){
339*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
340*cdf0e10cSrcweir                     m_oInspector.setSourceCodeLanguage(_nLanguage);
341*cdf0e10cSrcweir                 }
342*cdf0e10cSrcweir             });
343*cdf0e10cSrcweir             return jMenuItem;
344*cdf0e10cSrcweir         }
345*cdf0e10cSrcweir 
346*cdf0e10cSrcweir 
347*cdf0e10cSrcweir         public String getIDLPath(){
348*cdf0e10cSrcweir             return this.m_oInspector.getIDLPath();
349*cdf0e10cSrcweir         }
350*cdf0e10cSrcweir 
351*cdf0e10cSrcweir         private void addOptionsMenu(JMenuBar _jInspectMenuBar){
352*cdf0e10cSrcweir             ButtonGroup oButtonGroup = new ButtonGroup();
353*cdf0e10cSrcweir             jJavaMenuItem = addLanguageMenuItem(oButtonGroup, "Generate Java Sourcecode", true, 'J', XLanguageSourceCodeGenerator.nJAVA);
354*cdf0e10cSrcweir             jMnuOptions.add(jJavaMenuItem);
355*cdf0e10cSrcweir             jCPlusPlusMenuItem = addLanguageMenuItem(oButtonGroup, "Generate C++ Sourcecode", false, 'C', XLanguageSourceCodeGenerator.nCPLUSPLUS);
356*cdf0e10cSrcweir             jMnuOptions.add(jCPlusPlusMenuItem);
357*cdf0e10cSrcweir             jBasicMenuItem = addLanguageMenuItem(oButtonGroup, "Generate OpenOffice.org Basic Sourcecode", false, 'B', XLanguageSourceCodeGenerator.nBASIC);
358*cdf0e10cSrcweir             jMnuOptions.add(jBasicMenuItem);
359*cdf0e10cSrcweir             jMnuOptions.addSeparator();
360*cdf0e10cSrcweir             JMenuItem jMenuItem = new JMenuItem("Path to SDK-Installation");
361*cdf0e10cSrcweir             jMenuItem.setMnemonic('I');
362*cdf0e10cSrcweir             jMenuItem.addActionListener(new ActionListener(){
363*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
364*cdf0e10cSrcweir                     m_oInspector.assignSDKPath();
365*cdf0e10cSrcweir                 }
366*cdf0e10cSrcweir             });
367*cdf0e10cSrcweir 
368*cdf0e10cSrcweir             jMnuOptions.add(jMenuItem);
369*cdf0e10cSrcweir             _jInspectMenuBar.add(jMnuOptions);
370*cdf0e10cSrcweir         }
371*cdf0e10cSrcweir 
372*cdf0e10cSrcweir 
373*cdf0e10cSrcweir         private void insertMenus(){
374*cdf0e10cSrcweir             JMenuBar jMenuBar1 = new javax.swing.JMenuBar();
375*cdf0e10cSrcweir             addFileMenu(jMenuBar1);
376*cdf0e10cSrcweir             addInspectMenu(jMenuBar1);
377*cdf0e10cSrcweir             JMenu jMnuEdit = new JMenu("Edit");
378*cdf0e10cSrcweir             JMenu jMnuView = new JMenu("View");
379*cdf0e10cSrcweir             addOptionsMenu(jMenuBar1);
380*cdf0e10cSrcweir             jMenuBar1.setFont(new java.awt.Font("Dialog", 0, 12));
381*cdf0e10cSrcweir             jMenuBar1.add(jMnuEdit);
382*cdf0e10cSrcweir             jMenuBar1.add(jMnuView);
383*cdf0e10cSrcweir             addHelpMenu(jMenuBar1);
384*cdf0e10cSrcweir             addMenuBar(jMenuBar1);
385*cdf0e10cSrcweir         }
386*cdf0e10cSrcweir 
387*cdf0e10cSrcweir         private void addGlobalServiceManagerMenu(JMenu _jMnuRoot){
388*cdf0e10cSrcweir             JMenuItem jMnuGlobalServiceManager = new JMenuItem("Global Service Manager");
389*cdf0e10cSrcweir             jMnuGlobalServiceManager.addActionListener(new ActionListener(){
390*cdf0e10cSrcweir                 public void actionPerformed(java.awt.event.ActionEvent evt) {
391*cdf0e10cSrcweir                     m_oInspector.inspect(m_xComponentContext.getServiceManager(), "Global ServiceManager");
392*cdf0e10cSrcweir                 }
393*cdf0e10cSrcweir             });
394*cdf0e10cSrcweir             _jMnuRoot.add(jMnuGlobalServiceManager);
395*cdf0e10cSrcweir         }
396*cdf0e10cSrcweir 
397*cdf0e10cSrcweir 
398*cdf0e10cSrcweir 
399*cdf0e10cSrcweir         public void enablePopupMenuItem(String _sMenuTitle, boolean _bdoEnable){
400*cdf0e10cSrcweir             Component[] oComponents = m_jPopupMenu.getComponents();
401*cdf0e10cSrcweir             for (int i = 0; i < oComponents.length; i++){
402*cdf0e10cSrcweir                 if (oComponents[i] instanceof JMenuItem){
403*cdf0e10cSrcweir                     JMenuItem jMenuItem = (JMenuItem) oComponents[i];
404*cdf0e10cSrcweir                     if (jMenuItem.getText().equals(_sMenuTitle)){
405*cdf0e10cSrcweir                         jMenuItem.setEnabled(_bdoEnable);
406*cdf0e10cSrcweir                     }
407*cdf0e10cSrcweir                 }
408*cdf0e10cSrcweir             }
409*cdf0e10cSrcweir         }
410*cdf0e10cSrcweir 
411*cdf0e10cSrcweir 
412*cdf0e10cSrcweir         public void showPopUpMenu(Object _invoker, int x, int y) throws ClassCastException{
413*cdf0e10cSrcweir             if (_invoker instanceof Component){
414*cdf0e10cSrcweir                 m_jPopupMenu.show((Component) _invoker, x, y);
415*cdf0e10cSrcweir             }
416*cdf0e10cSrcweir         }
417*cdf0e10cSrcweir 
418*cdf0e10cSrcweir 
419*cdf0e10cSrcweir     public void show(int _nPageIndex){
420*cdf0e10cSrcweir         Dimension aDimension = m_jInspectorDialog.getSize();
421*cdf0e10cSrcweir         selectInspectorPageByIndex(_nPageIndex);
422*cdf0e10cSrcweir         if (_nPageIndex > 0){
423*cdf0e10cSrcweir             m_jInspectorDialog.setSize(aDimension);
424*cdf0e10cSrcweir         }
425*cdf0e10cSrcweir         else{
426*cdf0e10cSrcweir             m_jInspectorDialog.pack();
427*cdf0e10cSrcweir         }
428*cdf0e10cSrcweir //            m_jInspectorDialog.paint(m_jInspectorDialog.getGraphics());
429*cdf0e10cSrcweir         m_jInspectorDialog.setVisible(true);
430*cdf0e10cSrcweir     }
431*cdf0e10cSrcweir 
432*cdf0e10cSrcweir         public void paint(){
433*cdf0e10cSrcweir             m_jTabbedPane1.paintImmediately(m_jTabbedPane1.getBounds());
434*cdf0e10cSrcweir         }
435*cdf0e10cSrcweir 
436*cdf0e10cSrcweir 
437*cdf0e10cSrcweir         public void addInspectorPage(String _sTitle, Object _oContainer) throws ClassCastException{
438*cdf0e10cSrcweir             if (_oContainer instanceof Component){
439*cdf0e10cSrcweir                 m_jTabbedPane1.addTab(_sTitle, (Component) _oContainer);
440*cdf0e10cSrcweir             }
441*cdf0e10cSrcweir         }
442*cdf0e10cSrcweir }
443