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