IDEA工具-在pannel自己独立下挂一个节点(非标准)

本文介绍了在IDEA中进行插件开发时如何扩展代码结构,挂载自定义节点。重点讲解了如何直接下挂节点、实现节点的equals方法、动态加载类以及创建全局动作拦截器。同时提到了在项目视图中添加自定义面板的步骤,并强调了在实际操作中需要注意的细节和最佳实践。
摘要由CSDN通过智能技术生成

         主体的最开始的下挂节点的部分自己没有研究,自己只是在这个的基础上下挂了一些其他的东西,但是拜读了整个的代码,觉得非常的有意思,写了一个回顾和总结。

        自己在已经有的树上下挂一个场景节点,就像在project下下挂一些业务节点,可以将代码和业务的关联更紧密,领导看的更方便。

        下面直接进入正文,观看者最好结合idea源码观看。

目标,首先下挂一级子节点,其次是在挂到其他业务上和该节点有关系的地方。

1.直接下挂节点,当不复杂的时候,直接起一个节点,选择放下去即可。idea提供的扩展点很丰富,直接源码里面搜索。

2.该类型节点放到其他节点下是,getchildren方法是挂子节点的地方,注意:由于还需要有equals和其他的比较类型等情况,最好不要将不同类型的节点挂在一个子节点下,否则需要去重写比较多的equals等,这是涉及到idea的节点检查机制,有些断言过不去。当然扩展同一个的类型节点,修改它的参数,将逻辑一概,这是一个好的挂在新类型节点的方式。

3.节点的扩展,没有印象了。比较简单

4.类加载的概念,一个配置类可以每次重新去读取,执行后即可放到java类加载器中,DynamicLoader.compile()把文件加类名变成字符流i,之后classloader加载自己字符流,最好classloader.load 全类名就已经加载进去了。之后利用java的反射或者实例化还操作了。

5.4虽然4很牛逼,但是最好是在本项目内使用,插件不好用,因为回去找类库,所以多了import后找不到,所以改成了字符串匹配

6.idea的一个全局的动作拦截器,写法如下。

首先实在plugin.xml注册一个backgroundPostStartUpActivity 这是是需要背景加载的东西。

命名这个backgroundPostStartUpActivity implates StartupActivity,重写runActivity方法,这里面的东西都会跑起来,为了后台跑加了一个idea的线程,ApplicationManager,getApplication().runReadAction ->({这里面会有一系列出事的动作})

一系列的初始化动作像ActionManager添加监听器,监听方法为afterActionPerformed()在里面写逻辑呼叫额,传入的为全局量action dataContext,anActionEvent。可获取action的全部信息,将以上内容用方法包裹起来,调用即可。

7.关于一个全新的panel

        在project在扩展一个权限的panel,在plugin.xml中差异如一个projectViewPane,即是全局放入节点,Extends abstractProjectViewPane 重写对应的方法,这是此视图的最基本的规则。

接下来可以先建一个抽象类节点,定义些这个pannel下的出事信息,写下这个pannel的所有信息,

其次就是弄一个树显示在这个下面的,就是利用addchildren发的方法,一级级的下套,第一层节点是没有实际信息的,直接将剩下的有实际信息的节点下挂到。实际信息的addchildren就需要根据业务扩展逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值