我正在為 Intellij Idea 創建一個簡單的類圖插件。我現在正在努力在 IDE 中創建一個簡單的選項卡。我將使用準備好的 JPanel 填充此選項卡,僅此而已。我已經在 NetBeans 中做過同樣的事情,我想找到與 NetBeans 中的 TopComponent 提供的行為相似的東西,但任何作業都會很酷。
uj5u.com熱心網友回復:
所以這里是答案:
創建
com.intellij.openapi.fileEditor.FileEditor. 這是您的實際標簽create implementation of
com.intellij.openapi.fileEditor.FileEditorProvideraccept()定義編輯器打開的檔案型別create()應回傳編輯器的正確實體在中注冊您的 FileEditoProvider
plugin.xml
編輯:
public class YourEditor implements FileEditor {
private VirtualFile file;
public YourEditor(VirtualFile file) {
this.file = file;
}
@Override
public @NotNull JComponent getComponent() {
JPanel tabContent = new JPanel();
tabContent.add(new JButton("foo"));
return tabContent;
}
@Override
public @Nullable JComponent getPreferredFocusedComponent() {
return null;
}
@Override
public @Nls(capitalization = Nls.Capitalization.Title)
@NotNull String getName() {
return "name";
}
@Override
public void setState(@NotNull FileEditorState fileEditorState) {
}
@Override
public boolean isModified() {
return false;
}
@Override
public boolean isValid() {
return true;
}
@Override
public void addPropertyChangeListener(@NotNull PropertyChangeListener propertyChangeListener) {
}
@Override
public void removePropertyChangeListener(@NotNull PropertyChangeListener propertyChangeListener) {
}
@Override
public @Nullable FileEditorLocation getCurrentLocation() {
return null;
}
@Override
public void dispose() {
Disposer.dispose(this);
}
@Override
public <T> @Nullable T getUserData(@NotNull Key<T> key) {
return null;
}
@Override
public <T> void putUserData(@NotNull Key<T> key, @Nullable T t) {
}
@Override
public @Nullable VirtualFile getFile() {
return this.file;
}
}
提供者:
public class YourEditorProvider implements FileEditorProvider, DumbAware {
private static String EDITOR_TYPE_ID = "DiagramView";
@Override
public boolean accept(@NotNull Project project, @NotNull VirtualFile virtualFile) {
return true; //will accept all kind of files, must be specified
}
@Override
public @NotNull
FileEditor createEditor(@NotNull Project project, @NotNull VirtualFile virtualFile) {
return new YourEditor(virtualFile);
}
@Override
public @NotNull
@NonNls
String getEditorTypeId() {
return EDITOR_TYPE_ID;
}
@Override
public @NotNull
FileEditorPolicy getPolicy() {
return FileEditorPolicy.HIDE_DEFAULT_EDITOR;
}
}
最后將 FileEditorProvider 擴展放入pluxin.xml:
<extensions defaultExtensionNs="com.intellij">
<fileEditorProvider implementation="classDiagramPainter.DiagramViewProvider"/>
</extensions>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/450945.html
