知识大全 用JBuilder实现类似Visual Studio的宏扩展功能
Posted 扩展
篇首语:登山则情满于山,观海则意溢于海。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用JBuilder实现类似Visual Studio的宏扩展功能相关的知识,希望对你有一定的参考价值。
用JBuilder实现类似Visual Studio的宏扩展功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
对于Visual Studio的宏 大家应该很熟悉了 这是一篇关于JBuilder实现类似Visual Studio的宏扩展功能 我们就通过对一段代码是否注释掉作为简单例子 大家可以实现自己的一些扩展 算是抛玉引砖了 支持环境 Jbuilder JBuilder 使用JBuilder编译时需要在 Project > Project Properties > Required Libaries中加上Jbuilder下的 Open Tool SDK 编译成功后将生成的class打包成一个JavaCommentSwitch jar文件 其中包含这样一个文件META INF\\Manifest mf 该文件内容如下 Manifest Version: OpenTools UI: JavaCommentSwitch 不需要什么详细的讲解 代码如下 /*=============================================== 文件一 IDEActions java ===============================================*/ /** * Title: JBuilder IDE Toolbox * Description: ?user_name=ghost * Copyright: Copyright (c) Ghost Studio All Rights Reserved * Company: Ghost Studio * @author 阿鬼 [] * @version */ import borland primetime actions ActionGroup; import borland primetime editor EditorContextActionProvider; import borland primetime editor EditorPane; import javax swing Action; public class IDEActions private static final String STRING_ActionGroupName = JBuilder IDE Toolbox ; // ActiveGroup s Name public static final EditorContextActionProvider CONTEXTMENU_ActionProvider = new EditorContextActionProvider() public Action getContextAction(EditorPane target) ActionGroup actionGroup = new ActionGroup(); ActionGroup actionSubGroup = new ActionGroup(STRING_ActionGroupName); actionSubGroup add(JavaCommentSwitch ACTION_GenerateJavaCommentSwitch); // 此处可以增加更多的功能 // actionGroup add(actionSubGroup); return actionGroup; public int getPriority() return ; ; public IDEActions() static class ction implements EditorContextActionProvider public Action getContextAction(EditorPane target) ActionGroup actionGroup = new ActionGroup(); ActionGroup actionSubGroup = new ActionGroup(STRING_ActionGroupName); actionSubGroup add(JavaCommentSwitch ACTION_GenerateJavaCommentSwitch); actionGroup add(actionSubGroup); return actionGroup; public int getPriority() return ; ction() /*=============================================== 文件二 JavaCommentSwitch java ===============================================*/ /** * Title: JBuilder IDE Toolbox * Description: ?user_name=ghost * Copyright: Copyright (c) Ghost Studio All Rights Reserved * Company: Ghost Studio * @author 阿鬼 [] * @version */ import borland jbuilder jot *; import borland jbuilder node JBProject; import borland jbuilder node JavaFileNode; import borland primetime editor *; import borland primetime ide Browser; import borland primetime node FileNode; import borland primetime node Node; import borland primetime vfs Url; import java awt event ActionEvent; import java beans PropertyChangeEvent; import java beans PropertyChangeListener; import java io File; import java io PrintStream; import javax swing *; import javax swing text JTextComponent; import javax swing text Keymap; public class JavaCommentSwitch extends EditorAction implements PropertyChangeListener private static final String versionString = ; public static EditorAction ACTION_CreateJavaCommentSwitch = new JavaCommentSwitch( JavaCommentSwitch ); protected static String STR_LONG_DESCRIPTION = Comment/Unment for selection ; // 状态条显示 protected static String STR_SHORT_DESCRIPTION = Comment/Unment for selection ; public static EditorAction ACTION_GenerateJavaCommentSwitch = new JavaCommentSwitch( JavaCommentSwitch true); protected static String MENU_STR_LONG_DESCRIPTION = Comment/Unment for selection ; protected static String MENU_STR_SHORT_DESCRIPTION = Comment/Unment ; static Browser browser = null; private EditorPane target; private String errorMessageText; private boolean isMenuAction; public JavaCommentSwitch(String name) super(name); target = null; errorMessageText = ; isMenuAction = false; public JavaCommentSwitch(String name boolean isMenuAction) super(name); target = null; errorMessageText = ; this isMenuAction = isMenuAction; public static void initOpenTool(byte majorVersion byte minorVersion) if(majorVersion < ) // 支持Jbuilder 以上 return; EditorManager registerContextActionProvider(IDEActions CONTEXTMENU_ActionProvider); ACTION_GenerateJavaCommentSwitch putValue( LongDescription MENU_STR_LONG_DESCRIPTION); ACTION_GenerateJavaCommentSwitch putValue( ShortDescription MENU_STR_SHORT_DESCRIPTION); EditorActions addBindableEditorAction(ACTION_CreateJavaCommentSwitch); ACTION_CreateJavaCommentSwitch putValue( LongDescription STR_LONG_DESCRIPTION); ACTION_CreateJavaCommentSwitch putValue( ShortDescription STR_SHORT_DESCRIPTION); Keymap keymap = EditorManager getKeymap(); // 支持快捷键 ALT + F if(keymap != null) KeyStroke stroke[] = keymap getKeyStrokesForAction(ACTION_CreateJavaCommentSwitch); if(stroke == null) keymap addActionForKeyStroke(KeyStroke getKeyStroke(java awt Event F java awt Event ALT_MASK ) ACTION_CreateJavaCommentSwitch); EditorManager addPropertyChangeListener((PropertyChangeListener)ACTION_CreateJavaCommentSwitch); public void actionPerformed(ActionEvent evt) target = getEditorTarget(evt); Node theNode = getNode(); if(theNode == null) return; JBProject proj = (JBProject)theNode getProject(); JotClass theClass = getClass(theNode); if(isMenuAction) if(theClass != null) runJavaCommentSwitch(); else JOptionPane showMessageDialog(null Current Editor target is not a java class Error creating javadoc ); /** * @description * * @param * @return * @exception */ private boolean runJavaCommentSwitch() String selection = target getSelectedText(); String newSelection = ; // 去掉注释 if(selection trim() startsWith( /* ) && selection trim() endsWith( */ )) StringBuffer sb = new StringBuffer(selection); newSelection = sb substring( selection length() ); // 添加注释 else newSelection = String valueOf(String valueOf((new StringBuffer( /* )) append(selection) append( */ ))); target replaceSelection(newSelection); return true; public void propertyChange(PropertyChangeEvent evt) String propertyName = evt getPropertyName(); if(propertyName equals( keymap )) cha138/Article/program/Java/JSP/201311/19468相关参考
ASP.NET开发宝典:安装VisualStudio2010(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
ASP.NET开发宝典:安装VisualStudio2010(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
ASP.NET开发宝典:使用VisualStudio帮助系统 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
VisualStudio.NET软件要求 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Visu
VisualStudio2008改进版体验 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Mic
VisualStudio2010自动执行属性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lish
VisualStudio2008常用小技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi
ASP.NET开发宝典:安装VisualStudio帮助系统(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
ASP.NET开发宝典:安装VisualStudio帮助系统(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一
知识大全 visual studio2008 OpenGL开发配置
visualstudio2008OpenGL开发配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!