知识大全 用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

相关参考

知识大全 安装Visual Studio 2010(1)

ASP.NET开发宝典:安装VisualStudio2010(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 安装Visual Studio 2010(2)

ASP.NET开发宝典:安装VisualStudio2010(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 使用Visual Studio帮助系统

ASP.NET开发宝典:使用VisualStudio帮助系统  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Visual Studio .NET 软件要求

VisualStudio.NET软件要求  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Visu

知识大全 Visual Studio 2008改进版体验

VisualStudio2008改进版体验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Mic

知识大全 Visual Studio 2010自动执行属性

VisualStudio2010自动执行属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lish

知识大全 Visual Studio 2008常用小技巧

VisualStudio2008常用小技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi

知识大全 安装Visual Studio帮助系统(1)

ASP.NET开发宝典:安装VisualStudio帮助系统(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 安装Visual Studio帮助系统(2)

ASP.NET开发宝典:安装VisualStudio帮助系统(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 visual studio2008 OpenGL开发配置

visualstudio2008OpenGL开发配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!