Intellij Idea 플러그 인 개발 프로젝트 단계 의 오른쪽 단추 메뉴 만 들 기

Android Studio 를 사용 하 는 과정 에서 일부 플러그 인 이 프로젝트 의 실제 수 요 를 만족 시 키 지 못 한 다 는 것 을 발견 하고 해당 하 는 플러그 인 개발 에 착수 했다.다음은 제 가 플러그 인 을 개발 하 는 과정 에서 기록 한 것 입 니 다.여러분 과 계속 공유 하 겠 습 니 다.
공유 1:프로젝트 오른쪽 단추 메뉴 만 들 기
1.프로젝트 마법사 에 따라 한 걸음 한 걸음 데모 프로젝트 를 만 들 고 더 이상 소개 하지 않 습 니 다.이 글 을 참조 할 수 있 습 니 다https://www.jb51.net/article/135535.htm
2.Action 을 만 듭 니 다.plugin 설정 파일 에서 볼 수 있 습 니 다.

<action id="FirstAction" class="FirstAction" text="FirstAction" description="  Action"> 
  <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="ReplaceInPath"/> 
 </action> 

3.실행 후 IDE 는 다른 IDE(Genymotion 과 유사 한 용기 패키지)를 엽 니 다.효과 가 익숙 한 지 보 세 요.맞아요.이것 이 바로 Project 오른쪽 단 추 를 자주 사용 하 는 메뉴 입 니 다.

4.트리거 된 파일 형식 에 따라 Action 의 숨겨 진 디 스 플레이 를 동적 으로 제어 합 니 다.

@Override 
public void update(AnActionEvent event) {//        jar,     Action 
 String extension = getFileExtension(event.getDataContext()); 
 this.getTemplatePresentation().setEnabled(extension != null && "jar".equals(extension)); 
} 
전체 코드:

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(); 
 } 
} 
이상 은 본문의 전체 내용 입 니 다.여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.여러분 도 저 희 를 많이 지지 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기