一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Intellij Idea插件開發之創建項目層級的右鍵菜單

Intellij Idea插件開發之創建項目層級的右鍵菜單

2021-04-07 13:26zhangmingCSDN JAVA教程

這篇文章主要介紹了Intellij Idea插件開發之創建項目層級的右鍵菜單,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在使用android studio的過程中,發現自帶的一些插件無法滿足項目的實際需要,便著手自己開發對應的插件。下面是我開發插件過程中的一個記錄,會持續和大家分享。

分享一:創建project右鍵菜單

1,按照項目向導一步一步創建一個demo項目,就不再介紹了,可以參照這篇文章 http://www.ythuaji.com.cn/article/153905.html

2,創建action,在plugin配置文件中你會看到

?
1
2
3
<action id="firstaction" class="firstaction" text="firstaction" description="右鍵action">
  <add-to-group group-id="projectviewpopupmenu" anchor="after" relative-to-action="replaceinpath"/>
 </action>

Intellij Idea插件開發之創建項目層級的右鍵菜單

3,運行后,ide會另外開啟一個ide(由一個類似genymotion的容器包裹)。看效果是不是很熟悉,對,這就是常用project右鍵菜單:

Intellij Idea插件開發之創建項目層級的右鍵菜單

4,根據觸發的文件類型動態控制action的隱藏顯示

?
1
2
3
4
5
@override
public void update(anactionevent event) {//根據擴展名是否是jar,顯示隱藏此action
 string extension = getfileextension(event.getdatacontext());
 this.gettemplatepresentation().setenabled(extension != null && "jar".equals(extension));
}

完整代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import com.intellij.openapi.actionsystem.*;
import com.intellij.openapi.project.project;
import com.intellij.openapi.ui.messages;
import com.intellij.openapi.vfs.virtualfile;
 
/**
 * created by abc on 16/8/17.
 */
public class firstaction extends anaction {
 
 private project mproject;
 
 @override
 public void actionperformed(anactionevent event) {
  mproject = event.getdata(platformdatakeys.project);
  datacontext datacontext = event.getdatacontext();
  if ("jar".equals(getfileextension(datacontext))) {//根據擴展名判定是否進行下面的處理
   //獲取選中的文件
   virtualfile file = datakeys.virtual_file.getdata(event.getdatacontext());
   if (file != null) {
    messages.showmessagedialog(mproject, file.getname(), "select file", messages.getinformationicon());
   }
  }
 }
 
 @override
 public void update(anactionevent event) {
  //在action顯示之前,根據選中文件擴展名判定是否顯示此action
  string extension = getfileextension(event.getdatacontext());
  this.gettemplatepresentation().setenabled(extension != null && "jar".equals(extension));
 }
 
 public static string getfileextension(datacontext datacontext) {
  virtualfile file = datakeys.virtual_file.getdata(datacontext);
  return file == null ? null : file.getextension();
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家

原文鏈接:http://blog.csdn.net/zhangbuzhangbu/article/details/52227403

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美一区二区三区精品 | 91伊人网| 办公室的秘密在线观看 | 污书屋 | 精品九九视频 | 男生同性视频twink在线 | 经典WC女厕所里TV | 国产精品麻豆99久久 | 亚洲精品久久久久久婷婷 | 99视频精品全部免费观看 | 9191免费永久观看 | 精品国产免费第一区二区三区日韩 | 久久电影精品久久99久久 | 欧美视频在线一区二区三区 | 操日日 | 四虎最新永久免费网址 | 欧美成人tv在线观看免费 | 国产精品久久免费观看 | 鸭子玩富婆流白浆视频 | 天堂bt在线 | 国产香蕉一区二区在线观看 | 亚洲成人77777 | 久久精品无码一区二区日韩av | 91调教 | 国产精品日本一区二区三区在线看 | 日韩欧美一区二区三区四区 | 日本免费高清在线 | 日韩久久精品 | 婚前试爱全集免费观看 | 国产国语videosex另类 | 青草网在线观看 | 四虎永久在线精品免费影视 | 厨房play黄瓜进去小说h | 人生路不在线观看完整版 | 精品精品精品 | 亚洲人成伊人成综合网久久 | 欧美人交性视频在线香蕉 | 国产免费看视频 | 午夜在线观看视频 | 青柠在线完整高清观看免费 | 国产精品高清一区二区三区 |