使用想法怎么在多线程中开发一个文件下载插件

  介绍

这篇文章给大家介绍使用想法怎么在多线程中开发一个文件下载插件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

想法插件介绍

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 才能;零;   }

使用想法怎么在多线程中开发一个文件下载插件