1 package org.antlr.works.plugin.intellij; 2 3 import com.intellij.openapi.components.ApplicationComponent; 4 import com.intellij.openapi.components.SettingsSavingComponent; 5 import com.intellij.openapi.fileEditor.*; 6 import com.intellij.openapi.project.Project; 7 import com.intellij.openapi.vfs.VirtualFile; 8 import org.jdom.Element; 9 39 40 public class PIEditorProvider implements ApplicationComponent, FileEditorProvider, SettingsSavingComponent { 41 42 public boolean accept(Project project, VirtualFile file) { 43 String ext = file.getExtension(); 44 return ext != null && ext.equals("g"); 45 } 46 47 public FileEditor createEditor(Project project, VirtualFile file) { 48 return new PIEditor(project, file); 49 } 50 51 public void disposeEditor(FileEditor editor) { 52 ((PIEditor)editor).close(); 53 } 54 55 public FileEditorState readState(Element sourceElement, Project project, VirtualFile file) { 56 return new FileEditorState() { 57 public boolean canBeMergedWith(FileEditorState otherState, FileEditorStateLevel level) { 58 return false; 59 } 60 }; 61 } 62 63 public void writeState(FileEditorState state, Project project, Element targetElement) { 64 } 65 66 public String getEditorTypeId() { 67 return "grammar"; 68 } 69 70 public FileEditorPolicy getPolicy() { 71 return FileEditorPolicy.HIDE_DEFAULT_EDITOR; 72 } 73 74 public String getComponentName() { 75 return "GrammarEditor"; 76 } 77 78 public void initComponent() { 79 } 80 81 public void disposeComponent() { 82 } 83 84 public void save() { 85 PIEditor.saveAll(); 86 } 87 } 88 | Popular Tags |