|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.editor.options; import org.openide.cookies.InstanceCookie; import java.lang.ClassNotFoundException; import org.openide.loaders.DataFolder; import org.openide.loaders.DataObject; import java.io.IOException; import org.openide.nodes.Node; import java.beans.IntrospectionException; import java.util.Map; import java.util.HashMap; import java.util.List; import java.util.ArrayList; import java.util.Hashtable; import org.openide.filesystems.FileObject; import org.netbeans.editor.SettingsNames; import org.netbeans.editor.Settings; import org.netbeans.modules.editor.options.MIMEOptionFolder; import java.util.Iterator; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; import org.openide.util.RequestProcessor; import org.netbeans.editor.BaseKit; import org.openide.loaders.DataObjectNotFoundException; import java.util.StringTokenizer; import org.openide.loaders.DataObjectExistsException; import org.openide.util.WeakListener; import org.openide.filesystems.FileChangeAdapter; import org.openide.filesystems.FileChangeListener; import org.openide.filesystems.FileEvent; import javax.swing.SwingUtilities; import org.openide.util.NbBundle; import org.openide.NotifyDescriptor; import java.text.MessageFormat; import org.openide.filesystems.Repository; import org.openide.options.SystemOption; /** Editor Settings main node folder. * In this folder are stored global options such as global keybindings. * Mime options are lazily initialized after loading appropriate kit * (NbEditorKit.java) or after request of Option window to show * the properties. * Initialization starts with loading user's setting from * XML files and then initializer is added to Settings and reseted. * * @author Martin Roskanin * @since 08/2001 */ public class AllOptionsFolder{ /** folder for Editor Settings main node */ public static final String FOLDER = "Editors"; // NOI18N public static final String OPTION_FILE_NAME = "Settings.settings"; // NOI18N /** Global Multi Property Folders registration map */ private static Map globalMPFolder = new HashMap(); /** instance of this class */ private static AllOptionsFolder settingsFolder; private static boolean baseInitialized = false; private static Map subFolders = new Hashtable(); private static Map defaultKeyBindings; private static DataFolder folder; private static MIMEOptionFolder mimeFolder; // List of already initialized options private static Map installedOptions = new Hashtable(); private static Object INSTALLED_OPTIONS_LOCK = new Object(); /** Listens to changes on the Modules folder */ private static FileChangeListener moduleRegListener; /** Creates new AllOptionsFolder */ private AllOptionsFolder(DataFolder fld) { folder = fld; } /** Gets the singleton of global options MIME folder */ public MIMEOptionFolder getMIMEFolder(){ synchronized (AllOptionsFolder.class){ if (mimeFolder!=null) return mimeFolder; FileObject f = Repository.getDefault().getDefaultFileSystem(). findResource(FOLDER+"/text/"+BaseOptions.BASE); //NOI18N // MIME folder doesn't exist, let's create it if (f==null){ FileObject fo = Repository.getDefault().getDefaultFileSystem(). findResource(AllOptionsFolder.FOLDER); String fName = "text/"+BaseOptions.BASE; //NOI18N if (fo != null){ try{ StringTokenizer stok = new StringTokenizer(fName,"/"); //NOI18N while (stok.hasMoreElements()) { String newFolder = stok.nextToken(); if (fo.getFileObject(newFolder) == null) fo = fo.createFolder(newFolder); else fo = fo.getFileObject(newFolder); } }catch(IOException ioe){ ioe.printStackTrace(); } f = Repository.getDefault().getDefaultFileSystem(). findResource(AllOptionsFolder.FOLDER+"/text/"+BaseOptions.BASE); //NOI18N } } if (f != null) { try { DataObject d = DataObject.find(f); DataFolder df = (DataFolder)d.getCookie(DataFolder.class); if (df != null) { mimeFolder = new MIMEOptionFolder(df, getBase()); return mimeFolder; } } catch (org.openide.loaders.DataObjectNotFoundException ex) { ex.printStackTrace(); } } return null; } } /** Returns list of installed Options. Values = options classes */ public List getInstalledOptions(){ // first XMLized options List retList = new ArrayList(); String[] MIMES = new String[] {"text", "application"}; //#25246 application/xml-dtd // NOI18N for (int in = 0; in |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.