亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? editplugin.java

?? 用java 編寫的源碼開放的文本編輯器。有很多有用的特性
?? JAVA
字號:
/* * EditPlugin.java - Abstract class all plugins must implement * :tabSize=8:indentSize=8:noTabs=false: * :folding=explicit:collapseFolds=1: * * Copyright (C) 1999, 2000 Slava Pestov * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package org.gjt.sp.jedit;import java.util.Vector;import java.util.zip.ZipFile;import org.gjt.sp.jedit.gui.OptionsDialog;import org.gjt.sp.util.Log;/** * The abstract base class that every plugin must implement.<p> * * Each plugin must have the following properties defined in its property file: * * <ul> * <li><code>plugin.<i>class name</i>.name</code></li> * <li><code>plugin.<i>class name</i>.version</code></li> * <li><code>plugin.<i>class name</i>.jars</code> - only needed if your plugin * bundles external JAR files. Contains a whitespace-separated list of JAR * file names. Without this property, the plugin manager will leave behind the * external JAR files when removing the plugin.</li> * </ul> * * The following properties are optional but recommended: * * <ul> * <li><code>plugin.<i>class name</i>.author</code></li> * <li><code>plugin.<i>class name</i>.docs</code> - the path to plugin * documentation in HTML format within the JAR file.</li> * </ul> * * Plugin dependencies are also specified using properties. * Each dependency is defined in a property named with * <code>plugin.<i>class name</i>.depend.</code> followed by a number. * Dependencies must be numbered in order, starting from zero.<p> * * The value of a dependency property has one of the following forms: * * <ul> * <li><code>jdk <i>minimum Java version</i></code></li> * <li><code>jedit <i>minimum jEdit version</i></code> - note that this must be a * version number in the form returned by {@link jEdit#getBuild()}, * not {@link jEdit#getVersion()}.</li> * <li><code>plugin <i>plugin</i> <i>version</i></code> - the fully quailified * plugin class name must be specified.</li> * </ul> * * Here is an example set of plugin properties: * * <pre>plugin.QuickNotepadPlugin.name=QuickNotepad *plugin.QuickNotepadPlugin.author=John Gellene *plugin.QuickNotepadPlugin.version=4.1 *plugin.QuickNotepadPlugin.docs=QuickNotepad.html *plugin.QuickNotepadPlugin.depend.0=jedit 04.01.01.00</pre> * * Note that in all cases above where a class name is needed, the fully * qualified class name, including the package name, if any, must be used.<p> * * Alternatively, instead of extending this class, a plugin core class can * extend {@link EBPlugin} to automatically receive EditBus messages. * * @see org.gjt.sp.jedit.jEdit#getProperty(String) * @see org.gjt.sp.jedit.jEdit#getPlugin(String) * @see org.gjt.sp.jedit.jEdit#getPlugins() * @see org.gjt.sp.jedit.jEdit#getPluginJAR(String) * @see org.gjt.sp.jedit.jEdit#getPluginJARs() * * @author Slava Pestov * @author John Gellene (API documentation) * @version $Id: EditPlugin.java,v 1.13 2003/02/11 02:31:06 spestov Exp $ * @since jEdit 2.1pre1 */public abstract class EditPlugin{	//{{{ start() method	/**	 * The jEdit startup routine calls this method for each loaded	 * plugin.	 *	 * This method should return as quickly as possible to avoid	 * slowing down jEdit startup.<p>	 *	 * The default implementation does nothing.	 *	 * @since jEdit 2.1pre1	 */	public void start() {}	//}}}	//{{{ stop() method	/**	 * The jEdit exit routine calls this method fore ach loaded plugin.	 *	 * If a plugin uses state information or other persistent data	 * that should be stored in a special format, this would be a good place	 * to write the data to storage.  If the plugin uses jEdit's properties	 * API to hold settings, no special processing is needed for them on	 * exit, since they will be saved automatically.<p>	 *	 * The default implementation does nothing.	 *	 * @since jEdit 2.1pre1	 */	public void stop() {} //}}}	//{{{ createMenuItems() method	/**	 * When a {@link View} object is created, it calls this	 * method on each plugin class to obtain entries to be displayed	 * in the view's <b>Plugins</b> menu.	 *	 * The <code>menuItems</code> vector accumulates menu items and	 * menus as it is passed from plugin to plugin.<p>	 *	 * The easiest way to provide menu items is to	 * package them as entries in the plugin's property	 * file and implement <code>createMenuItems()</code> with a	 * call to the {@link GUIUtilities#loadMenu(String)}	 * method:	 * <pre>public void createMenuItems(Vector menuItems)	 *{	 *    menuItems.addElement(GUIUtilities.loadMenu(	 *        "myplugin.menu"));	 *}</pre>	 *	 * Alternatively, {@link GUIUtilities#loadMenuItem(String)} can	 * be used if your plugin only defines one menu item.<p>	 *	 * The default implementation does nothing.	 *	 * @param menuItems Add menus and menu items here.	 *	 * @see GUIUtilities#loadMenu(String)	 * @see GUIUtilities#loadMenuItem(String)	 *	 * @since jEdit 2.6pre5	 */	public void createMenuItems(Vector menuItems) {} //}}}	//{{{ createOptionPanes() method	/**	 * When the <b>Global Options</b> dialog is opened, this method is	 * called for each plugin in turn.	 *	 * To show an option pane, the plugin should define an	 * option pane class and implement <code>createOptionPane()</code>	 * as follows:	 *	 * <pre>public void createOptionPanes(OptionsDialog optionsDialog)	 *{	 *    dialog.addOptionPane(new MyPluginOptionPane());	 *}</pre>	 *	 * Plugins can also define more than one option pane, grouped in an	 * "option group". See the documentation for the {@link OptionGroup}	 * class for information.<p>	 *	 * The default implementation does nothing.	 *	 * @param optionsDialog The plugin options dialog box	 *	 * @see OptionPane	 * @see AbstractOptionPane	 * @see OptionsDialog#addOptionPane(OptionPane)	 * @see OptionGroup	 * @see OptionsDialog#addOptionGroup(OptionGroup)	 *	 * @since jEdit 2.1pre1	 */	public void createOptionPanes(OptionsDialog optionsDialog) {} //}}}	//{{{ getClassName() method	/**	 * Returns the plugin's class name.	 *	 * @since jEdit 2.5pre3	 */	public String getClassName()	{		return getClass().getName();	} //}}}	//{{{ getJAR() method	/**	 * Returns the JAR file containing this plugin.	 * @since jEdit 3.1pre5	 */	public EditPlugin.JAR getJAR()	{		return jar;	} //}}}	//{{{ Broken class	/**	 * A placeholder for a plugin that didn't load.	 */	public static class Broken extends EditPlugin	{		public String getClassName()		{			return clazz;		}		// package-private members		Broken(String clazz)		{			this.clazz = clazz;		}		// private members		private String clazz;	} //}}}	//{{{ JAR class	/**	 * A JAR file.	 */	public static class JAR	{		public String getPath()		{			return path;		}		public ZipFile getZipFile()		{			return classLoader.getZipFile();		}		public JARClassLoader getClassLoader()		{			return classLoader;		}		public ActionSet getActions()		{			return actions;		}		public void addPlugin(EditPlugin plugin)		{			plugin.jar = JAR.this;			long start = System.currentTimeMillis();			try			{				// must be before the below two so that if an error				// occurs during start, the plugin is not listed as				// being active				plugin.start();			}			finally			{				Log.log(Log.DEBUG,this,"-- startup took " +					(System.currentTimeMillis() - start)					+ " milliseconds");			}			if(plugin instanceof EBPlugin)				EditBus.addToBus((EBPlugin)plugin);			plugins.addElement(plugin);		}		public EditPlugin[] getPlugins()		{			EditPlugin[] array = new EditPlugin[plugins.size()];			plugins.copyInto(array);			return array;		}		public JAR(String path, JARClassLoader classLoader)		{			this.path = path;			this.classLoader = classLoader;			plugins = new Vector();			actions = new ActionSet();		}		// package-private members		void getPlugins(Vector vector)		{			for(int i = 0; i < plugins.size(); i++)			{				vector.addElement(plugins.elementAt(i));			}		}		// private members		private String path;		private JARClassLoader classLoader;		private Vector plugins;		private ActionSet actions;	} //}}}	//{{{ Private members	private EditPlugin.JAR jar;	//}}}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久久久 | 国产高清成人在线| 中文字幕中文乱码欧美一区二区| 欧美视频三区在线播放| 精品写真视频在线观看| 一级日本不卡的影视| 久久九九久久九九| 日韩一区二区三区精品视频| 99精品国产91久久久久久| 久久97超碰国产精品超碰| 亚洲一二三区不卡| 国产精品久久久久久久第一福利| 在线不卡一区二区| 欧洲一区在线电影| 成人午夜免费电影| 国产美女在线观看一区| 日韩国产欧美三级| 一区二区三区中文字幕| 国产精品嫩草99a| 久久精品在这里| 日韩精品一区二区三区swag| 欧美三级电影网站| 99久久精品国产网站| 国产一二三精品| 精品中文字幕一区二区| 香蕉影视欧美成人| 亚洲综合视频网| 亚洲欧美日韩中文字幕一区二区三区| 久久久www成人免费无遮挡大片 | 欧美丰满嫩嫩电影| 色综合网站在线| 97se亚洲国产综合自在线不卡 | 午夜精品免费在线| 亚洲成人av免费| 一级特黄大欧美久久久| 亚洲最大的成人av| 一区二区在线观看不卡| 亚洲欧洲综合另类在线| 中文字幕字幕中文在线中不卡视频| 国产亲近乱来精品视频| 久久精品一二三| 中文av一区二区| 国产精品污www在线观看| 中文字幕的久久| 国产精品国产自产拍在线| 国产精品夫妻自拍| 国产精品久99| 一区二区三区成人| 亚洲一本大道在线| 免费在线看一区| 免费观看久久久4p| 国产自产视频一区二区三区| 国产乱一区二区| 成人综合婷婷国产精品久久| 床上的激情91.| 一本一本大道香蕉久在线精品| 色欧美日韩亚洲| 欧美性生活一区| 日韩一区二区不卡| 精品国产精品一区二区夜夜嗨| 久久久不卡影院| 亚洲欧洲国产日韩| 亚洲成人动漫精品| 激情六月婷婷久久| 高清国产午夜精品久久久久久| 91浏览器打开| 欧美亚洲动漫制服丝袜| 欧美群妇大交群中文字幕| 精品国一区二区三区| 国产日韩影视精品| 亚洲一二三四在线| 久久99精品久久久久久久久久久久| 国产99久久久精品| 欧美午夜片在线看| 精品福利二区三区| 亚洲私人黄色宅男| 日本大胆欧美人术艺术动态| 国产91在线|亚洲| 欧美在线free| 久久亚洲私人国产精品va媚药| 一色屋精品亚洲香蕉网站| 午夜电影久久久| 国产精品 欧美精品| 日本韩国欧美在线| 久久久久久久久岛国免费| 亚洲欧美日韩国产成人精品影院| 奇米影视7777精品一区二区| 高清免费成人av| 91精品欧美综合在线观看最新| 国产婷婷色一区二区三区| 婷婷久久综合九色综合伊人色| 国产伦精品一区二区三区在线观看| 成人国产亚洲欧美成人综合网| 5566中文字幕一区二区电影 | 欧美精品一区二区三| 亚洲欧美怡红院| 激情五月播播久久久精品| 在线观看不卡视频| 中文字幕欧美日本乱码一线二线| 丝袜亚洲另类丝袜在线| 成人精品免费视频| 日韩美女视频一区二区在线观看| 日韩毛片在线免费观看| 久久91精品久久久久久秒播| 欧美三级视频在线| 亚洲欧洲综合另类在线 | 337p亚洲精品色噜噜狠狠| 国产精品初高中害羞小美女文| 激情偷乱视频一区二区三区| 欧美日韩在线播放三区四区| 国产精品福利一区二区三区| 精东粉嫩av免费一区二区三区| 欧美日韩电影在线| 亚洲毛片av在线| 99国产精品99久久久久久| 久久综合狠狠综合久久激情| 五月天精品一区二区三区| 一本色道久久综合狠狠躁的推荐 | 久久99国产精品成人| 欧美精品一二三| 亚洲国产视频网站| 色域天天综合网| 中文字幕一区二区三区在线观看 | 成人免费看黄yyy456| 精品久久久久久久久久久院品网| 亚洲小说欧美激情另类| 91蝌蚪国产九色| 亚洲人成精品久久久久久| av电影在线不卡| 国产日韩欧美综合一区| 国产精品主播直播| 久久久久久久久久电影| 国产一区二区美女诱惑| 精品日韩一区二区| 国产一区二区视频在线| 精品国产髙清在线看国产毛片| 久久精品国产色蜜蜜麻豆| 欧美精三区欧美精三区| 视频一区中文字幕| 91精品国产综合久久香蕉麻豆 | 国产成人午夜99999| 久久久精品天堂| 粉嫩嫩av羞羞动漫久久久| 欧美国产在线观看| 波多野结衣视频一区| 日韩一区有码在线| 在线视频一区二区三区| 亚洲高清不卡在线观看| 日韩亚洲欧美综合| 久久精品国产亚洲高清剧情介绍 | 蜜桃av一区二区| 精品久久久久久久久久久院品网| 久久精品国产一区二区三区免费看 | 久久疯狂做爰流白浆xx| 精品国产99国产精品| 国产呦精品一区二区三区网站| 国产精品私人影院| 91网站在线播放| 午夜欧美视频在线观看| 日韩女优电影在线观看| 国产成人av自拍| 国产精品乱码一区二三区小蝌蚪| 色一情一乱一乱一91av| 亚洲午夜精品网| 欧美精品一区二区三区高清aⅴ| 成人午夜视频在线| 亚洲电影在线免费观看| 亚洲精品一区在线观看| 不卡视频在线观看| 亚洲成人在线免费| 久久久99精品免费观看不卡| 99久久婷婷国产精品综合| 午夜私人影院久久久久| 2023国产精品| 在线亚洲一区二区| 男人的天堂亚洲一区| 国产精品毛片a∨一区二区三区| 在线亚洲+欧美+日本专区| 韩国av一区二区三区在线观看| 亚洲欧美偷拍另类a∨色屁股| 日韩一卡二卡三卡| 91亚洲午夜精品久久久久久| 奇米色一区二区| 成人欧美一区二区三区1314| 日韩一区二区三区视频| 99久久精品免费精品国产| 蜜臀av性久久久久蜜臀aⅴ| 国产精品无码永久免费888| 制服.丝袜.亚洲.另类.中文| 高清不卡在线观看| 日本va欧美va精品| 亚洲同性gay激情无套| 2020国产精品| 欧美精品久久一区| 91麻豆福利精品推荐| 国产精品系列在线观看| 美女国产一区二区三区| 亚洲激情成人在线| 中文字幕高清一区| 精品美女在线观看|