1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 package org.openoffice.netbeans.modules.office.loader; 25 26 import java.io.IOException; 27 import java.io.File; 28 29 import org.openide.actions.*; 30 import org.openide.filesystems.*; 31 import org.openide.loaders.*; 32 import org.openide.util.NbBundle; 33 import org.openide.util.actions.SystemAction; 34 35 import org.openoffice.netbeans.modules.office.actions.MountDocumentAction; 36 37 /** Recognizes single files in the Repository as being of a certain type. 38 * 39 * @author tomaso 40 */ 41 public class OfficeDocumentDataLoader extends UniFileLoader { 42 OfficeDocumentDataLoader()43 public OfficeDocumentDataLoader() { 44 this("org.openoffice.netbeans.modules.office.loader.OfficeDocumentDataObject"); 45 } 46 47 // Can be useful for subclasses: OfficeDocumentDataLoader(String recognizedObjectClass)48 protected OfficeDocumentDataLoader(String recognizedObjectClass) { 49 super(recognizedObjectClass); 50 } 51 defaultDisplayName()52 protected String defaultDisplayName() { 53 return "Office Document"; 54 } 55 initialize()56 protected void initialize() { 57 super.initialize(); 58 59 ExtensionList extensions = new ExtensionList(); 60 extensions.addExtension("sxw"); 61 extensions.addExtension("sxc"); 62 extensions.addExtension("sxd"); 63 extensions.addExtension("sxi"); 64 setExtensions(extensions); 65 } 66 findPrimaryFile(FileObject fo)67 protected FileObject findPrimaryFile(FileObject fo) { 68 ExtensionList extensions = getExtensions(); 69 if (extensions.isRegistered(fo) == false) 70 return null; 71 72 File document = FileUtil.toFile(fo); 73 JarFileSystem jarFs = new JarFileSystem(); 74 75 try { 76 jarFs.setJarFile(document); 77 } 78 catch (IOException e) { 79 // TopManager.getDefault().notify(new NotifyDescriptor.Exception(e, "asdf")); 80 return null; 81 } 82 catch (Exception e) { 83 return null; 84 } 85 return fo; 86 } 87 defaultActions()88 protected SystemAction[] defaultActions() { 89 return new SystemAction[] { 90 SystemAction.get(OpenAction.class), 91 // SystemAction.get(MountDocumentAction.class), 92 null, 93 SystemAction.get(CutAction.class), 94 SystemAction.get(CopyAction.class), 95 SystemAction.get(PasteAction.class), 96 null, 97 SystemAction.get(DeleteAction.class), 98 SystemAction.get(RenameAction.class), 99 null, 100 // SystemAction.get(ToolsAction.class), 101 SystemAction.get(PropertiesAction.class), 102 }; 103 } 104 createMultiObject(FileObject primaryFile)105 protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException { 106 return new OfficeDocumentDataObject(primaryFile, this); 107 } 108 } 109