介绍
这篇文章给大家介绍使用想法怎么在多线程中开发一个文件下载插件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
想法插件介绍
IntelliJ IDEA是目前最好用的JAVA开发IDE,它本身的功能已经非常强大了,但是可能我们会遇到一些定制的需求,比如说:自定义代码生成器;这时候就需要我们自己动手来写一个插件,如果只是想要开发简单的功能其实只要掌握了JAVA Swing,那么开发想法的插件是很容易的,如果想学习更多的原理和设计理念可以看IntelliJ平台SDK的官方文档。
想法插件开发步骤
, 1。创建Gradle的插件工程
创建完成项目之后,我们可以看一下<代码>资源/meta - inf/插件。xml代码>
& lt; idea-plugin> & lt;才能id> cn.silently9527.fast-download-idea-plugin</id>,, & lt; !——,插件的ID ——比; & lt;才能name> FastDownloadPlugin</name>, & lt; !——,插件的名字,会在插件中心展示,——比; & lt;才能vendor 电子邮件=?80303318 @qq.com", url=癶ttps://silently9527"祝辞Silently9527 & lt;才能!插件说明——比; & lt;才能description> & lt; ! [CDATA [ 多才能线程文件下载器 ]]才能祝辞& lt;/description> & lt;才能!——please 阅读;http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html ,,,,,请,用target different products ——比; & lt;才能!——,uncomment 用enable plugin all 拷贝产品 & lt;才能depends> com.intellij.modules.lang</depends> ,才能在 & lt;才能extensions defaultExtensionNs=癱om.intellij"比; ,,,& lt; !——, Add your extensions here ——比; & lt;才能/extensions> & lt;才能actions> ,,,& lt; !——, Add your actions here ——比; & lt;才能/actions> & lt;/idea-plugin>
2。创建一个行动
在想法的插件开发中,基本都会使用到行动,其行动实就是事件的处理器,就好比JS中的onClick方法。在想法中创建一个行动十分简单,通过图形化界面就可以完成
创建完成后就可以看到Action类
public class FastDownloadAction extends AnAction { @Override才能 public 才能;void  actionPerformed (AnActionEvent e), { } }
在<代码>插件。xml> 代码中可以看到生成的行动信息
& lt; action id=癴ast.download",类=癱n.silently9527.FastDownloadAction",文本=癋astDownload",描述=拔募嘞叱滔略亍氨? & lt;才能add-to-group 组id=癟oolsMenu",锚=發ast"/比; & lt;才能keyboard-shortcut keymap=癲efault"美元;,first-keystroke=皊hift D"/比; & lt;/action>
3。创建输入下载信息的弹窗
想法插件的SDK已经对弹窗进行的封装,只需要继承<代码> DialogWrapper> 代码即可,界面上的绘制工作都在<代码> createCenterPanel 代码>方法中,组件的布局与JavaSwing类似
@Nullable @Override protected JComponent  createCenterPanel (), { Box 才能;verticalBox =, Box.createVerticalBox (); verticalBox.add才能(createUrlBox ()); verticalBox.add才能(Box.createVerticalStrut (10)); verticalBox.add才能(createFileDirJPanel ()); verticalBox.add才能(Box.createVerticalStrut (10)); verticalBox.add才能(createThreadNumJPanel ()); return 才能;verticalBox; }
我们需要对输入的下载地址和存放的路径的参数进行校验,判断输入是否正确,可以实现方法<代码> doValidate> 代码,校验通过返回零,校验不通过返回<代码> ValidationInfo> 代码对象
@Nullable @Override protected ValidationInfo  doValidate (), { if 才能;(StringUtils.isBlank (downloadUrlField.getText ())), { ,,,return new ValidationInfo(“文件下载地址必填“); ,,} if 才能;(StringUtils.isBlank (fileDirField.getText ())), { ,,,return new ValidationInfo(“文件保存目录必填“); ,,} if 才能;(StringUtils.isBlank (threadNumField.getText ())), { ,,,return new ValidationInfo(“下载线程数必填“); ,,} return 才能;零; }使用想法怎么在多线程中开发一个文件下载插件