KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > mdrxml > util > XMLToolsAction


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is Forte for Java, Community Edition. The Initial
16  * Developer of the Original Software is Sun Microsystems, Inc. Portions
17  * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.mdrxml.util;
21
22 import org.openide.util.actions.*;
23 import org.openide.nodes.*;
24 import org.openide.filesystems.*;
25 import org.openide.loaders.*;
26
27 /**
28  * Abstract action enabled on XML resources. Subclass should overide
29  * <code>performXMLAction()</code> to fullfil desired contact.
30  *
31  * @author Petr Kuzel
32  */

33 public abstract class XMLToolsAction extends NodeAction {
34
35     /** Creates a new instance of FillRepositoryAction */
36     public XMLToolsAction() {
37     }
38
39     /*
40      * @return true if one XML file backgrounded file is selected.
41      */

42     protected boolean enable(Node nodes[]) {
43         if (nodes != null && nodes.length == 1) {
44             DataObject dobj = (DataObject) nodes[0].getCookie(DataObject.class);
45             if (dobj != null) {
46                 if (dobj instanceof XMLDataObject) return true;
47                 
48                 FileObject fo = dobj.getPrimaryFile();
49                 if (fo.getMIMEType().endsWith("+xml")) return true;
50             }
51         }
52         return false;
53     }
54         
55     protected abstract void performXMLAction(FileObject fo);
56     
57     protected void performAction(Node[] nodes) {
58         if (nodes != null && nodes.length == 1) {
59             DataObject dobj = (DataObject) nodes[0].getCookie(DataObject.class);
60             if (dobj != null) {
61                 performXMLAction(dobj.getPrimaryFile());
62             }
63         }
64     }
65     
66 }
67
Popular Tags