KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > actions > ValidateSchemaAction


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 NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.xml.schema.actions;
20
21 import org.openide.nodes.*;
22 import org.openide.util.HelpCtx;
23 import org.openide.util.actions.CookieAction;
24
25 import org.netbeans.modules.xml.core.actions.*;
26
27 import org.netbeans.api.xml.cookies.*;
28
29 /**
30  * Validates XML Schema file sending results to output window.
31  *
32  * @author Petr Kuzel
33  * @version 1.0
34  */

35 public class ValidateSchemaAction extends CookieAction implements CollectXMLAction.XMLAction {
36
37     /** Serial Version UID */
38     private static final long serialVersionUID = -8772119268950444993L;
39
40     
41     /** Be hooked on XMLDataObjectLook narking XML nodes. */
42     protected Class JavaDoc[] cookieClasses () {
43         return new Class JavaDoc[] { ValidateXMLCookie.class };
44     }
45
46     /** All selected nodes must be XML one to allow this action */
47     protected int mode () {
48         return MODE_ALL;
49     }
50
51     /** Check all selected nodes. */
52     protected void performAction (Node[] nodes) {
53
54         if (nodes == null) return;
55
56         InputOutputReporter console = new InputOutputReporter();
57         boolean allValid = true;
58         
59         for (int i = 0; i<nodes.length; i++) {
60             Node node = nodes[i];
61             ValidateXMLCookie cake = (ValidateXMLCookie) node.getCookie(ValidateXMLCookie.class);
62             if (cake == null) continue;
63             console.setNode(node); //??? how can console determine which editor to highlight
64
allValid &= cake.validateXML(console);
65         }
66         
67         if (allValid) {
68             console.message(Util.THIS.getString("MSG_Schema_valid_end"));
69         } else {
70             console.message(Util.THIS.getString("MSG_Schema_invalid_end"));
71         }
72         console.moveToFront(true);
73     }
74
75     /** Human presentable name. */
76     public String JavaDoc getName() {
77         return Util.THIS.getString("NAME_Validate_Schema");
78     }
79
80     /** Do not slow by any icon. */
81     protected String JavaDoc iconResource () {
82         return null;
83     }
84
85     /** Provide accurate help. */
86     public HelpCtx getHelpCtx () {
87         return new HelpCtx (ValidateSchemaAction.class);
88     }
89
90 }
91
Popular Tags