1 package org.antlr.works.editor; 2 3 import org.antlr.works.components.grammar.CEditorGrammar; 4 import org.antlr.works.idea.*; 5 import org.antlr.works.syntax.element.ElementRule; 6 7 import java.awt.*; 8 import java.util.ArrayList ; 9 import java.util.List ; 10 40 41 public class EditorIdeas implements IdeaManagerDelegate, IdeaProvider { 42 43 public IdeaManager ideaManager; 44 public CEditorGrammar editor; 45 46 public EditorIdeas(CEditorGrammar editor) { 47 this.editor = editor; 48 } 49 50 public void awake() { 51 ideaManager = new IdeaManager(); 52 ideaManager.setOverlay(new IdeaOverlay(editor, editor.getXJFrame(), editor.getTextPane())); 53 ideaManager.addProvider(this); 54 ideaManager.setDelegate(this); 55 } 56 57 public void close() { 58 ideaManager.close(); 59 } 60 61 public void hide() { 62 ideaManager.hide(); 63 } 64 65 public void toggleEnabled() { 66 ideaManager.setEnabled(!ideaManager.enabled()); 67 } 68 69 public List <IdeaAction> ideaProviderGetActions(int position) { 70 List <IdeaAction> actions = new ArrayList <IdeaAction>(); 71 List <EditorInspectorItem> items = editor.editorInspector.getAllItemsAtIndex(position); 72 for (EditorInspectorItem item : items) { 73 List <IdeaAction> itemActions = item.getIdeaActions(); 74 if (itemActions != null) 75 actions.addAll(itemActions); 76 } 77 return actions; 78 } 79 80 81 public boolean ideaManagerWillDisplayIdea() { 82 return !editor.autoCompletionMenu.isVisible(); 83 } 84 85 public void display(Point p) { 86 display(editor.getTextPane().viewToModel(p)); 87 } 88 89 public void display(int position) { 90 ElementRule enclosingRule = editor.rules.getEnclosingRuleAtPosition(position); 91 if(enclosingRule == null || enclosingRule.isExpanded()) 92 ideaManager.displayAnyIdeasAvailable(position); 93 } 94 95 } 96 | Popular Tags |