1 package org.antlr.works.plugin.intellij; 2 3 import com.intellij.openapi.actionSystem.ActionManager; 4 import com.intellij.openapi.actionSystem.Anchor; 5 import com.intellij.openapi.actionSystem.Constraints; 6 import com.intellij.openapi.actionSystem.DefaultActionGroup; 7 import com.intellij.openapi.components.ApplicationComponent; 8 import com.intellij.openapi.fileTypes.FileTypeManager; 9 import com.intellij.openapi.options.Configurable; 10 import com.intellij.openapi.options.ConfigurationException; 11 import org.antlr.works.IDE; 12 import org.antlr.works.plugin.container.PCXJApplicationDelegate; 13 import org.antlr.works.plugin.container.PCXJApplicationInterface; 14 import org.antlr.works.prefs.AWPrefsDialog; 15 import org.antlr.works.utils.IconManager; 16 import org.antlr.xjlib.appkit.app.XJApplication; 17 18 import javax.swing.*; 19 20 50 51 public class PIApplicationComponent implements ApplicationComponent, Configurable { 52 53 private AWPrefsDialog prefsDialog; 54 55 public PIApplicationComponent() { 56 IDE._isPlugin = true; 57 } 58 59 public void initComponent() { 60 XJApplication.setDelegate(new PCXJApplicationDelegate()); 61 XJApplication.setPropertiesPath(IDE.PROPERTIES_PATH); 62 XJApplication.setShared(new PCXJApplicationInterface(null)); 63 64 FileTypeManager.getInstance().registerFileType(new PIFileType(), new String [] { "g" }); 65 66 PIActionNewFile action = new PIActionNewFile(); 67 ActionManager.getInstance().registerAction("NewGrammarFile", action); 68 DefaultActionGroup group = (DefaultActionGroup) ActionManager.getInstance().getAction("NewGroup"); 69 group.add(action, new Constraints(Anchor.AFTER, "NewFile")); 70 } 71 72 public void disposeComponent() { 73 } 74 75 public String getComponentName() { 76 return "AWApplicationComponent"; 77 } 78 79 81 public String getDisplayName() { 82 return "ANTLRWorks"; 83 } 84 85 public Icon getIcon() { 86 return IconManager.shared().getIconApplication32x32(); 87 } 88 89 public String getHelpTopic() { 90 return null; 91 } 92 93 public JComponent createComponent() { 94 prefsDialog = new AWPrefsDialog(); 95 prefsDialog.becomingVisibleForTheFirstTime(); 96 return prefsDialog.getComponent(); 97 } 98 99 public boolean isModified() { 100 return true; 101 } 102 103 public void apply() throws ConfigurationException { 104 prefsDialog.apply(); 105 } 106 107 public void reset() { 108 } 109 110 public void disposeUIResources() { 111 prefsDialog.close(); 112 prefsDialog = null; 113 } 114 } 115 | Popular Tags |