2016-06-20 3 views
0

これは可能ですか?Intellijプラグインの開発、タブを閉じるなどのアクションの発生を防ぐ方法

私はをどうにかしてのイベントに登録し、おそらく偽物か類似物かを返す必要があります。私は推測しています。私はどのように考えていいですかしかし。

どのようなイベントですか?

どこに登録すればよいですか?

誰でも?

編集:私はこれを試してみました

import com.intellij.openapi.components.ApplicationComponent; 
import com.intellij.openapi.editor.impl.EditorComponentImpl; 
import org.jetbrains.annotations.NotNull; 

import java.awt.*; 
import java.awt.event.AWTEventListener; 
import java.awt.event.KeyEvent; 

public class MyPlugin implements ApplicationComponent { 

    static { 
     /*MessageBus bus = ApplicationManager.getApplication().get 

     MessageBusConnection connection = bus.connect(); 

     connection.subscribe(AppTopics.FILE_DOCUMENT_SYNC, 
      new FileDocumentManagerAdapter() { 
       @Override 
       public void beforeDocumentSaving(Document document) { 
        // create your custom logic here 
       } 
      });*/ 
    } 

    private final AWTEventListener listener; 

    public MyPlugin() { 
     System.out.println("111111111111111111"); 
     listener = new AWTEventListener() { 

      @Override 
      public void eventDispatched(AWTEvent event) { 

       if (event instanceof KeyEvent) { 
        KeyEvent kv = (KeyEvent) event; 
        Component component = kv.getComponent(); 

        if (component instanceof EditorComponentImpl) { 
         EditorComponentImpl cp = (EditorComponentImpl) component; 

        } 

        System.out.println("3333333" + component.getClass()); 
       } 

       System.out.println("aaaaaaa" + event.getClass()); 

      } 
     }; 
    } 

    @Override 
    public void initComponent() { 
     System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbb"); 
     Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.KEY_EVENT_MASK); 
    } 

    @Override 
    public void disposeComponent() { 
     Toolkit.getDefaultToolkit().removeAWTEventListener(listener); 
    } 

    @NotNull 
    @Override 
    public String getComponentName() { 
     return "temp"; 
    } 

} 

しかし、それは動作しません。私はイベントが間違った種類を取得します。

+0

では、エディタタブを閉じる防ぐためにできるようになるのIntelliJ IDEAにはAPIはありません。あなたが解決しようとしている実際の問題を記述できるなら、多分別のアプローチを提案することができます。 – yole

+0

@yole私はすでにこのためのプラグインを開発しました。見てみな ;) – momomo

答えて

関連する問題