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 org.openide.actions.*; 27 import org.openide.cookies.*; 28 import org.openide.filesystems.*; 29 import org.openide.loaders.*; 30 import org.openide.nodes.*; 31 import org.openide.util.HelpCtx; 32 33 import org.openoffice.netbeans.modules.office.actions.ParcelDescriptorEditorSupport; 34 import org.openoffice.netbeans.modules.office.actions.ParcelDescriptorParserSupport; 35 36 /** Represents a ParcelDescriptor object in the Repository. 37 * 38 * @author tomaso 39 */ 40 public class ParcelDescriptorDataObject extends MultiDataObject { 41 42 private boolean canParse = false; 43 ParcelDescriptorDataObject(FileObject pf, ParcelDescriptorDataLoader loader)44 public ParcelDescriptorDataObject(FileObject pf, ParcelDescriptorDataLoader loader) throws DataObjectExistsException { 45 super(pf, loader); 46 init(); 47 } 48 init()49 private void init() { 50 FileObject fo = getPrimaryFile(); 51 if (FileUtil.toFile(fo) != null) 52 canParse = true; 53 54 CookieSet cookies = getCookieSet(); 55 cookies.add(new ParcelDescriptorEditorSupport(this)); 56 if (canParse == true) 57 cookies.add(new ParcelDescriptorParserSupport(getPrimaryFile())); 58 } 59 getHelpCtx()60 public HelpCtx getHelpCtx() { 61 return HelpCtx.DEFAULT_HELP; 62 } 63 createNodeDelegate()64 protected Node createNodeDelegate() { 65 if (canParse == true) 66 return new ParcelDescriptorDataNode(this); 67 else 68 return new ParcelDescriptorDataNode(this, Children.LEAF); 69 } 70 71 // If you made an Editor Support you will want to add these methods: addSaveCookie(SaveCookie save)72 public final void addSaveCookie(SaveCookie save) { 73 getCookieSet().add(save); 74 } 75 removeSaveCookie(SaveCookie save)76 public final void removeSaveCookie(SaveCookie save) { 77 getCookieSet().remove(save); 78 } 79 } 80