<?xml version="1.0"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.0//EN" "http://www.netbeans.org/dtds/filesystem-1_0.dtd">
<filesystem>

    <folder name="Templates">
        <folder name="Other">
            <file name="properties.properties" url="sample.properties.template">
                <attr name="position" intvalue="600"/>
                <attr name="template" boolvalue="true"/>
                <attr name="javax.script.ScriptEngine" stringvalue="freemarker"/>
                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.properties.Bundle"/>
                <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/properties/TemplateHelp.html"/>
                <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/properties/propertiesObject.png"/>
                <attr name="templateCategory" stringvalue="simple-files"/>
                <attr name="requireProject" boolvalue="false"/>
            </file>            
        </folder>
    </folder>

    <folder name="Editors">
        <folder name="text">
            <folder name="x-properties">
                <file name="org-netbeans-modules-properties-PropertiesEncoding.instance"/>
            </folder>
        </folder>
    </folder>
    
    <folder name="Loaders">
        <folder name="text">
            <folder name="x-properties">
                <folder name="Factories">
                    <file name="org-netbeans-modules-properties-PropertiesDataLoader.instance">
                        <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.properties.Bundle"/>
                    </file>
                </folder>
                <folder name="Actions">
                    <!--
                    Open as text by default, but leave the ability to open
                    the table view, and the ability to customize the
                    default. First item in the list serves as the default
                    action by default.
                    -->
                    <file name="CopyAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CopyAction.instance"/>
                        <attr name="position" intvalue="500"/>
                    </file>
                    <file name="CutAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CutAction.instance"/>
                        <attr name="position" intvalue="400"/>
                    </file>
                    <file name="DeleteAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-DeleteAction.instance"/>
                        <attr name="position" intvalue="800"/>
                    </file>
                    <file name="EditAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-EditAction.instance"/>
                        <attr name="position" intvalue="100"/>
                    </file>
                    <file name="FileSystemAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-FileSystemAction.instance"/>
                        <attr name="position" intvalue="1400"/>
                    </file>
                    <file name="NewAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-NewAction.instance"/>
                        <attr name="position" intvalue="1100"/>
                    </file>
                    <file name="OpenAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-OpenAction.instance"/>
                        <attr name="position" intvalue="200"/>
                    </file>
                    <file name="PasteAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-PasteAction.instance"/>
                        <attr name="position" intvalue="600"/>
                    </file>
                    <file name="PropertiesAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-PropertiesAction.instance"/>
                        <attr name="position" intvalue="1700"/>
                    </file>
                    <file name="RenameAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-RenameAction.instance"/>
                        <attr name="position" intvalue="900"/>
                    </file>
                    <file name="SaveAsTemplateAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-SaveAsTemplateAction.instance"/>
                        <attr name="position" intvalue="1200"/>
                    </file>
                    <file name="Separator1.instance">
                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
                        <attr name="position" intvalue="300"/>
                    </file>
                    <file name="Separator2.instance">
                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
                        <attr name="position" intvalue="700"/>
                    </file>
                    <file name="Separator3.instance">
                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
                        <attr name="position" intvalue="1000"/>
                    </file>
                    <file name="Separator4.instance">
                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
                        <attr name="position" intvalue="1300"/>
                    </file>
                    <file name="Separator5.instance">
                        <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
                        <attr name="position" intvalue="1500"/>
                    </file>
                    <file name="ToolsAction.shadow">
                        <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-ToolsAction.instance"/>
                        <attr name="position" intvalue="1600"/>
                    </file>
                </folder>
            </folder>
        </folder>
    </folder>
</filesystem>
