1 /*==================================================================== 2 3 OpenCCM: The Open CORBA Component Model Platform 4 Copyright (C) 2000-2004 INRIA - USTL - LIFL - GOAL 5 Contact: openccm@objectweb.org 6 7 This library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or any later version. 11 12 This library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with this library; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 20 USA 21 22 Initial developer(s): Jerome Moroy. 23 Contributor(s): ______________________________________. 24 25 ====================================================================*/ 26 package org.objectweb.openccm.explorer.CORBA; 27 28 import org.objectweb.openccm.explorer.menu.JFileChooserSingleton; 29 import org.objectweb.openccm.explorer.menu.OpenCCMBrowserConstants; 30 import org.objectweb.util.explorer.api.MenuItem; 31 import org.objectweb.util.explorer.api.MenuItemTreeView; 32 import org.objectweb.util.explorer.api.TreeView; 33 34 import javax.swing.JFileChooser; 35 import java.io.FileWriter; 36 37 /** 38 * This action saves the IOR of the CORBA Object into a file on the file system. 39 * 40 * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a> 41 * 42 * @version 0.1 43 */ 44 public class SaveIORToFileAction 45 implements MenuItem 46 { 47 48 //================================================================== 49 // 50 // No internal state. 51 // 52 //================================================================== 53 54 //================================================================== 55 // 56 // No internal methods. 57 // 58 //================================================================== 59 60 //================================================================== 61 // 62 // Public methods for MenuItem interface. 63 // 64 //================================================================== 65 66 /* (non-Javadoc) 67 * @see org.objectweb.util.explorer.api.MenuItem#getStatus(org.objectweb.util.explorer.api.TreeView) 68 */ 69 public int getStatus(TreeView treeView) { 70 return MenuItem.ENABLED_STATUS; 71 } 72 73 /* (non-Javadoc) 74 * @see org.objectweb.util.explorer.api.MenuItem#actionPerformed(org.objectweb.util.explorer.api.MenuItemTreeView) 75 */ 76 public void actionPerformed(MenuItemTreeView e) throws Exception { 77 org.omg.CORBA.Object object = (org.omg.CORBA.Object)e.getSelectedObject(); 78 org.omg.CORBA.ORB orb = org.objectweb.openccm.corba.TheORB.getORB(); 79 JFileChooser fileChooser = JFileChooserSingleton.getInstance(OpenCCMBrowserConstants.IOR_FILE_CHOOSER); 80 int returnVal = fileChooser.showSaveDialog(null); 81 if(returnVal == JFileChooser.APPROVE_OPTION){ 82 FileWriter fileWriter = new FileWriter(fileChooser.getSelectedFile().getAbsolutePath()); 83 fileWriter.write(orb.object_to_string(object) + "\n"); 84 fileWriter.close(); 85 } 86 } 87 88 } 89