public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { if (e.Type == EventType.ApplyTheme) { RefreshColors(); } }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { var de = e as DataEvent; // If it's a DE event with subs for the DE's action if (de != null && subs.ContainsKey (de.Action)) { subs[de.Action].ForEach (i => i (de)); } }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.Trace: ProcessTraces(); ui.EndUpdate(); break; } }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.ProcessStart: ui.BeginUpdate(); break; case EventType.ProcessEnd: ui.EndUpdate(); break; } }
/// <summary> /// Handle the incoming theme events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { if (e.Type == EventType.ApplyTheme) { Boolean enabled = PluginBase.MainForm.GetThemeColor("ScrollBar.ForeColor") != Color.Empty; if (enabled && !this.Controls.Contains(this.vScrollBar)) { this.AddScrollBars(this); } else if (!enabled && this.Controls.Contains(this.vScrollBar)) { this.RemoveScrollBars(this); } } }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { Project project; switch (e.Type) { case EventType.Command: DataEvent evt = (DataEvent)e; if (evt.Action == "ProjectManager.CreateNewFile") { Hashtable table = evt.Data as Hashtable; project = PluginBase.CurrentProject as Project; if ((project.Language.StartsWith("as")) && IsModuleTemplate(table["templatePath"] as String)) { evt.Handled = true; showWizard(table["inDirectory"] as string, table["templatePath"] as String); //String className = table.ContainsKey("className") ? table["className"] as String : TextHelper.GetString("Wizard.Label.NewClass"); //DisplayClassWizard(table["inDirectory"] as String, table["templatePath"] as String, className, table["constructorArgs"] as String, table["constructorArgTypes"] as List<String>); } } break; //case EventType.FileSwitch: // if (PluginBase.MainForm.CurrentDocument.FileName == processOnSwitch) // { // processOnSwitch = null; // if (lastFileOptions == null || lastFileOptions.interfaces == null) return; // foreach (String cname in lastFileOptions.interfaces) // { // ASContext.Context.CurrentModel.Check(); // ClassModel inClass = ASContext.Context.CurrentModel.GetPublicClass(); // ASGenerator.SetJobContext(null, cname, null, null); // ASGenerator.GenerateJob(GeneratorJobType.ImplementInterface, null, inClass, null, null); // } // lastFileOptions = null; // } // break; case EventType.ProcessArgs: TextEvent te = e as TextEvent; project = PluginBase.CurrentProject as Project; if (lastFileFromTemplate != null && project != null && (project.Language.StartsWith("as"))) { te.Value = ProcessArgs(project, te.Value); } break; } }
/// <summary> /// Removes the specified event handler /// </summary> public static void RemoveEventHandler(IEventHandler handler, EventType mask, HandlingPriority priority) { try { EventObject eo = new EventObject(handler, mask, priority); switch (priority) { case HandlingPriority.High: highObjects.Remove(eo); break; case HandlingPriority.Normal: normalObjects.Remove(eo); break; case HandlingPriority.Low: lowObjects.Remove(eo); break; } } catch (Exception ex) { ErrorManager.ShowError(ex); } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { if (e.Type == EventType.UIStarted) { try { foreach (Macro macro in this.settingObject.UserMacros) { if (macro.AutoRun) { foreach (String entry in macro.Entries) { String[] parts = entry.Split(new Char[1] { '|' }); PluginBase.MainForm.CallCommand(parts[0], parts[1]); } } } } catch (Exception ex) { ErrorManager.AddToLog("Macro AutoRun Failed.", ex); } } if (e.Type == EventType.ApplySettings) { this.UpdateMenuShortcut(); } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.Command : this.HandleCommand(((DataEvent)e)); break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { ITabbedDocument document = PluginBase.MainForm.CurrentDocument; if (document == null || !document.IsEditable) return; switch (e.Type) { case EventType.Keys: { Keys keys = (e as KeyEvent).Value; if (this.IsSupported(document) && keys == (Keys.Control | Keys.Space)) { if (completion != null) { completion.OnComplete(document.SciControl, document.SciControl.CurrentPos); e.Handled = true; } } break; } case EventType.FileSwitch: case EventType.SyntaxChange: case EventType.ApplySettings: { if (document.IsEditable && this.IsSupported(document)) { string ext = Path.GetExtension(document.FileName).ToLower(); features = enabledLanguages.ContainsKey(ext) ? enabledLanguages[ext] : null; if (completion == null) completion = new Completion(config, settingObject); completion.OnFileChanged(features); if (features != null && features.Syntax != null) { ScintillaControl sci = document.SciControl; sci.SetProperty(features.Syntax, features != null ? "1" : "0"); sci.Colourise(0, -1); } } break; } case EventType.Completion: { if (features != null) e.Handled = true; return; } case EventType.FileSave: { if (document != null && document.IsEditable && this.IsSupported(document)) { updateFile = document.FileName; updateFeatures = features; updater.Start(); } break; } } }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.FileSwitch: if (PluginBase.MainForm.CurrentDocument.IsEditable) { PluginBase.MainForm.CurrentDocument.SciControl.DoubleClick -= new ScintillaNet.DoubleClickHandler(SciControl_DoubleClick); PluginBase.MainForm.CurrentDocument.SciControl.Modified -= new ScintillaNet.ModifiedHandler(SciControl_Modified); PluginBase.MainForm.CurrentDocument.SciControl.UpdateUI -= new ScintillaNet.UpdateUIHandler(SciControl_UpdateUI); PluginBase.MainForm.CurrentDocument.SciControl.DoubleClick += new ScintillaNet.DoubleClickHandler(SciControl_DoubleClick); PluginBase.MainForm.CurrentDocument.SciControl.Modified += new ScintillaNet.ModifiedHandler(SciControl_Modified); PluginBase.MainForm.CurrentDocument.SciControl.UpdateUI += new ScintillaNet.UpdateUIHandler(SciControl_UpdateUI); } break; case EventType.FileModify: cb.Visible = false; isActive = false; break; default: break; }; }
/** * Handles the incoming events */ public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { try { // ignore all events when leaving if (PluginBase.MainForm.ClosingEntirely) return; // current active document ITabbedDocument doc = PluginBase.MainForm.CurrentDocument; // application start if (!started && e.Type == EventType.UIStarted) { started = true; PathExplorer.OnUIStarted(); // associate context to initial document e = new NotifyEvent(EventType.SyntaxChange); this.pluginUI.UpdateAfterTheme(); } // editor ready? if (doc == null) return; ScintillaControl sci = doc.IsEditable ? doc.SciControl : null; // // Events always handled // bool isValid; DataEvent de; switch (e.Type) { // caret position in editor case EventType.UIRefresh: if (!doc.IsEditable) return; timerPosition.Enabled = false; timerPosition.Enabled = true; return; // key combinations case EventType.Keys: Keys key = (e as KeyEvent).Value; if (ModelsExplorer.HasFocus) { e.Handled = ModelsExplorer.Instance.OnShortcut(key); return; } if (!doc.IsEditable) return; e.Handled = ASComplete.OnShortcut(key, sci); return; // user-customized shortcuts case EventType.Shortcut: de = e as DataEvent; if (de.Action == "Completion.ShowHelp") { ASComplete.HelpKeys = (Keys)de.Data; de.Handled = true; } return; // // File management // case EventType.FileSave: if (!doc.IsEditable) return; ASContext.Context.CheckModel(false); // toolbar isValid = ASContext.Context.IsFileValid; if (isValid && !PluginBase.MainForm.SavingMultiple) { if (ASContext.Context.Settings.CheckSyntaxOnSave) CheckSyntax(null, null); ASContext.Context.RemoveClassCompilerCache(); } return; case EventType.SyntaxDetect: // detect Actionscript language version if (!doc.IsEditable) return; if (doc.FileName.ToLower().EndsWithOrdinal(".as")) { settingObject.LastASVersion = DetectActionscriptVersion(doc); (e as TextEvent).Value = settingObject.LastASVersion; e.Handled = true; } break; case EventType.ApplySettings: case EventType.SyntaxChange: case EventType.FileSwitch: if (!doc.IsEditable) { ASContext.SetCurrentFile(null, true); ContextChanged(); return; } currentDoc = doc.FileName; currentPos = sci.CurrentPos; // check file bool ignoreFile = !doc.IsEditable; ASContext.SetCurrentFile(doc, ignoreFile); // UI ContextChanged(); return; case EventType.Completion: if (ASContext.Context.IsFileValid) e.Handled = true; return; // some commands work all the time case EventType.Command: de = e as DataEvent; string command = de.Action ?? ""; if (command.StartsWithOrdinal("ASCompletion.")) { string cmdData = de.Data as string; // add a custom classpath if (command == "ASCompletion.ClassPath") { Hashtable info = de.Data as Hashtable; if (info != null) { ContextSetupInfos setup = new ContextSetupInfos(); setup.Platform = (string)info["platform"]; setup.Lang = (string)info["lang"]; setup.Version = (string)info["version"]; setup.TargetBuild = (string)info["targetBuild"]; setup.Classpath = (string[])info["classpath"]; setup.HiddenPaths = (string[])info["hidden"]; ASContext.SetLanguageClassPath(setup); if (setup.AdditionalPaths != null) // report custom classpath info["additional"] = setup.AdditionalPaths.ToArray(); } e.Handled = true; } // send a UserClasspath else if (command == "ASCompletion.GetUserClasspath") { Hashtable info = de.Data as Hashtable; if (info != null && info.ContainsKey("language")) { IASContext context = ASContext.GetLanguageContext(info["language"] as string); if (context != null && context.Settings != null && context.Settings.UserClasspath != null) info["cp"] = new List<string>(context.Settings.UserClasspath); } e.Handled = true; } // update a UserClasspath else if (command == "ASCompletion.SetUserClasspath") { Hashtable info = de.Data as Hashtable; if (info != null && info.ContainsKey("language") && info.ContainsKey("cp")) { IASContext context = ASContext.GetLanguageContext(info["language"] as string); List<string> cp = info["cp"] as List<string>; if (cp != null && context != null && context.Settings != null) { string[] pathes = new string[cp.Count]; cp.CopyTo(pathes); context.Settings.UserClasspath = pathes; } } e.Handled = true; } // send the language's default compiler path else if (command == "ASCompletion.GetCompilerPath") { Hashtable info = de.Data as Hashtable; if (info != null && info.ContainsKey("language")) { IASContext context = ASContext.GetLanguageContext(info["language"] as string); if (context != null) info["compiler"] = context.GetCompilerPath(); } e.Handled = true; } // show a language's compiler settings else if (command == "ASCompletion.ShowSettings") { e.Handled = true; IASContext context = ASContext.GetLanguageContext(cmdData); if (context == null) return; string filter = "SDK"; string name = ""; switch (cmdData.ToUpper()) { case "AS2": name = "AS2Context"; break; case "AS3": name = "AS3Context"; break; default: name = cmdData.Substring(0, 1).ToUpper() + cmdData.Substring(1) + "Context"; break; } PluginBase.MainForm.ShowSettingsDialog(name, filter); } // Open types explorer dialog else if (command == "ASCompletion.TypesExplorer") { TypesExplorer(null, null); } // call the Flash IDE else if (command == "ASCompletion.CallFlashIDE") { if (flashErrorsWatcher == null) flashErrorsWatcher = new FlashErrorsWatcher(); e.Handled = CallFlashIDE.Run(settingObject.PathToFlashIDE, cmdData); } // create Flash 8+ trust file else if (command == "ASCompletion.CreateTrustFile") { if (cmdData != null) { string[] args = cmdData.Split(';'); if (args.Length == 2) e.Handled = CreateTrustFile.Run(args[0], args[1]); } } else if (command == "ASCompletion.GetClassPath") { if (cmdData != null) { string[] args = cmdData.Split(';'); if (args.Length == 1) { FileModel model = ASContext.Context.GetFileModel(args[0]); ClassModel aClass = model.GetPublicClass(); if (!aClass.IsVoid()) { Clipboard.SetText(aClass.QualifiedName); e.Handled = true; } } } } else if (command == "ProjectManager.FileActions.DisableWatchers") { foreach (PathModel cp in ASContext.Context.Classpath) cp.DisableWatcher(); } else if (command == "ProjectManager.FileActions.EnableWatchers") { // classpaths could be invalid now - remove those, BuildClassPath() is too expensive ASContext.Context.Classpath.RemoveAll(cp => !Directory.Exists(cp.Path)); foreach (PathModel cp in ASContext.Context.Classpath) cp.EnableWatcher(); } // Return requested language SDK list else if (command == "ASCompletion.InstalledSDKs") { Hashtable info = de.Data as Hashtable; if (info != null && info.ContainsKey("language")) { IASContext context = ASContext.GetLanguageContext(info["language"] as string); if (context != null) info["sdks"] = context.Settings.InstalledSDKs; } e.Handled = true; } } // Create a fake document from a FileModel else if (command == "ProjectManager.OpenVirtualFile") { string cmdData = de.Data as string; if (reVirtualFile.IsMatch(cmdData)) { string[] path = Regex.Split(cmdData, "::"); string fileName = path[0] + Path.DirectorySeparatorChar + path[1].Replace('.', Path.DirectorySeparatorChar).Replace("::", Path.DirectorySeparatorChar.ToString()); FileModel found = ModelsExplorer.Instance.OpenFile(fileName); if (found != null) e.Handled = true; } } else if (command == "ProjectManager.UserRefreshTree") { ASContext.UserRefreshRequestAll(); } break; } // // Actionscript context specific // if (ASContext.Context.IsFileValid) { switch (e.Type) { case EventType.ProcessArgs: TextEvent te = (TextEvent) e; if (reArgs.IsMatch(te.Value)) { // resolve current element Hashtable details = ASComplete.ResolveElement(sci, null); te.Value = ArgumentsProcessor.Process(te.Value, details); if (te.Value.IndexOf('$') >= 0 && reCostlyArgs.IsMatch(te.Value)) { ASResult result = ASComplete.CurrentResolvedContext.Result ?? new ASResult(); details = new Hashtable(); // Get closest list (Array or Vector) string closestListName = "", closestListItemType = ""; ASComplete.FindClosestList(ASContext.Context, result.Context, sci.CurrentLine, ref closestListName, ref closestListItemType); details.Add("TypClosestListName", closestListName); details.Add("TypClosestListItemType", closestListItemType); // get free iterator index string iterator = ASComplete.FindFreeIterator(ASContext.Context, ASContext.Context.CurrentClass, result.Context); details.Add("ItmUniqueVar", iterator); te.Value = ArgumentsProcessor.Process(te.Value, details); } } break; // menu commands case EventType.Command: de = e as DataEvent; string command = de.Action ?? ""; if (command.StartsWith("ASCompletion.", StringComparison.Ordinal)) { string cmdData = de.Data as string; switch (command) { // run MTASC case "ASCompletion.CustomBuild": if (cmdData != null) ASContext.Context.RunCMD(cmdData); else ASContext.Context.RunCMD(""); e.Handled = true; break; // build the SWF using MTASC case "ASCompletion.QuickBuild": ASContext.Context.BuildCMD(false); e.Handled = true; break; // resolve element under cursor and open declaration case "ASCompletion.GotoDeclaration": ASComplete.DeclarationLookup(sci); e.Handled = true; break; // resolve element under cursor and send a CustomData event case "ASCompletion.ResolveElement": ASComplete.ResolveElement(sci, cmdData); e.Handled = true; break; case "ASCompletion.MakeIntrinsic": ASContext.Context.MakeIntrinsic(cmdData); e.Handled = true; break; // alternative to default shortcuts case "ASCompletion.CtrlSpace": ASComplete.OnShortcut(Keys.Control | Keys.Space, ASContext.CurSciControl); e.Handled = true; break; case "ASCompletion.CtrlShiftSpace": ASComplete.OnShortcut(Keys.Control | Keys.Shift | Keys.Space, ASContext.CurSciControl); e.Handled = true; break; case "ASCompletion.CtrlAltSpace": ASComplete.OnShortcut(Keys.Control | Keys.Alt | Keys.Space, ASContext.CurSciControl); e.Handled = true; break; case "ASCompletion.ContextualGenerator": if (ASContext.HasContext && ASContext.Context.IsFileValid) { var options = new List<ICompletionListItem>(); ASGenerator.ContextualGenerator(ASContext.CurSciControl, options); EventManager.DispatchEvent(this, new DataEvent(EventType.Command, "ASCompletion.ContextualGenerator.AddOptions", options)); if (options.Count == 0) { PluginBase.MainForm.StatusLabel.Text = TextHelper.GetString("Info.NoContextGeneratorCode"); } CompletionList.Show(options, false); } break; } } return; case EventType.ProcessEnd: string procResult = (e as TextEvent).Value; ASContext.Context.OnProcessEnd(procResult); break; } } } catch(Exception ex) { ErrorManager.ShowError(ex); } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.UIStarted: ProjectWatcher.Init(); this.ready = true; break; // Catches Project change event and display the active project path case EventType.Command: if (!this.ready) return; DataEvent de = e as DataEvent; String cmd = de.Action; if (!cmd.StartsWith("ProjectManager.")) return; switch (cmd) { case ProjectManagerEvents.Project: ProjectWatcher.SetProject(de.Data as Project); break; case ProjectManagerEvents.TreeSelectionChanged: ProjectWatcher.SelectionChanged(); break; case ProjectManagerEvents.UserRefreshTree: ProjectWatcher.ForceRefresh(); break; case ProjectFileActionsEvents.FileBeforeRename: try { de.Handled = ProjectWatcher.HandleFileBeforeRename(de.Data as String); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectFileActionsEvents.FileRename: try { de.Handled = ProjectWatcher.HandleFileRename(de.Data as String[]); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectFileActionsEvents.FileDeleteSilent: try { de.Handled = ProjectWatcher.HandleFileDelete(de.Data as String[], false); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectFileActionsEvents.FileDelete: try { de.Handled = ProjectWatcher.HandleFileDelete(de.Data as String[], true); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectFileActionsEvents.FileMove: try { de.Handled = ProjectWatcher.HandleFileMove(de.Data as String[]); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectManagerEvents.BuildProject: try { de.Handled = ProjectWatcher.HandleBuildProject(); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectManagerEvents.TestProject: try { de.Handled = ProjectWatcher.HandleTestProject(); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; case ProjectManagerEvents.BeforeSave: try { de.Handled = ProjectWatcher.HandleSaveProject((string)de.Data); } catch (Exception ex) { ErrorManager.ShowError(ex); de.Handled = true; } break; } break; case EventType.FileOpen: try { e.Handled = ProjectWatcher.HandleFileOpen((e as TextEvent).Value); } catch (Exception ex) { ErrorManager.ShowError(ex); e.Handled = true; } break; case EventType.FileReload: try { e.Handled = ProjectWatcher.HandleFileReload((e as TextEvent).Value); } catch (Exception ex) { ErrorManager.ShowError(ex); e.Handled = true; } break; case EventType.FileModifyRO: try { e.Handled = ProjectWatcher.HandleFileModifyRO((e as TextEvent).Value); } catch (Exception ex) { ErrorManager.ShowError(ex); e.Handled = true; } break; case EventType.FileNew: case EventType.FileTemplate: try { e.Handled = ProjectWatcher.HandleFileNew((e as TextEvent).Value); } catch (Exception ex) { ErrorManager.ShowError(ex); e.Handled = true; } break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.FileSwitch: this.GenerateSurroundMenuItems(); UpdateMenuItems(); break; case EventType.UIStarted: // Expose plugin's refactor main menu & context menu... EventManager.DispatchEvent(this, new DataEvent(EventType.Command, "CodeRefactor.Menu", this.refactorMainMenu)); EventManager.DispatchEvent(this, new DataEvent(EventType.Command, "CodeRefactor.ContextMenu", this.refactorContextMenu)); // Watch resolved context for menu item updating... ASComplete.OnResolvedContextChanged += OnResolvedContextChanged; this.UpdateMenuItems(); break; case EventType.Command: DataEvent de = (DataEvent)e; string[] args; string oldPath; string newPath; switch (de.Action) { case ProjectFileActionsEvents.FileRename: args = de.Data as string[]; oldPath = args[0]; newPath = args[1]; if (Directory.Exists(oldPath) && IsValidForMove(oldPath, newPath)) { MovingHelper.AddToQueue(new Dictionary<string, string> { { oldPath, newPath } }, true, true); e.Handled = true; } else if (IsValidForRename(oldPath, newPath)) { RenameFile(oldPath, newPath); e.Handled = true; } break; case ProjectFileActionsEvents.FileMove: args = de.Data as string[]; oldPath = args[0]; newPath = args[1]; if (IsValidForMove(oldPath, newPath)) { MovingHelper.AddToQueue(new Dictionary<string, string> { { oldPath, newPath } }); e.Handled = true; } break; } break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.FileSwitch: this.GenerateSurroundMenuItems(); break; case EventType.UIStarted: // Expose plugin's refactor main menu & context menu... EventManager.DispatchEvent(this, new DataEvent(EventType.Command, "CodeRefactor.Menu", this.refactorMainMenu)); EventManager.DispatchEvent(this, new DataEvent(EventType.Command, "CodeRefactor.ContextMenu", this.refactorContextMenu)); // Watch resolved context for menu item updating... ASComplete.OnResolvedContextChanged += new ResolvedContextChangeHandler(this.OnResolvedContextChanged); this.UpdateMenuItems(); break; case EventType.Command: DataEvent de = (DataEvent)e; switch (de.Action) { case ProjectFileActionsEvents.FileRename: string[] args = de.Data as String[]; string oldPath = args[0]; string newPath = args[1]; if (IsValidForRename(args[0], args[1])) { RenameFile(args[0], args[1]); e.Handled = true; } break; } break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.ApplySettings: this.refactorContextMenu.ApplyShortcutKeys(); this.refactorMainMenu.ApplyShortcutKeys(); this.ApplyIgnoredKeys(); break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { StartType startType = this.settingObject.TrackingStartType; switch (e.Type) { case EventType.UIStarted: { if (startType == StartType.OnProgramStart) { this.pluginUI.EnableTracking(true); } break; } case EventType.Command: { DataEvent de = (DataEvent)e; if (startType == StartType.OnBuildComplete && de.Action == "ProjectManager.BuildComplete") { this.pluginUI.EnableTracking(true); } break; } } }
/// <summary> /// Handles the internal events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { if (!this.isEnabled) return; ITabbedDocument document; switch (e.Type) { case EventType.FileSwitch: document = PluginBase.MainForm.CurrentDocument; if (document.IsEditable) { if (this.currentFileName != null && this.currentPos > -1) { if (this.currentFileName.ToUpper() == document.FileName.ToUpper()) { this.MoveToPosition(document.SciControl, currentPos); } } else RefreshCurrentFile(document.SciControl); } this.currentFileName = null; this.currentPos = -1; break; case EventType.FileSave: document = PluginBase.MainForm.CurrentDocument; if (document.IsEditable) RefreshCurrentFile(document.SciControl); break; case EventType.Keys: Keys keys = (e as KeyEvent).Value; if (this.ContainsFocus && keys == Keys.Escape) { ITabbedDocument doc = PluginBase.MainForm.CurrentDocument; if (doc != null && doc.IsEditable) { doc.SciControl.Focus(); e.Handled = true; } } break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { case EventType.FileSwitch: if (PluginBase.MainForm.CurrentDocument.IsEditable) { //PluginBase.MainForm.CurrentDocument.SciControl.DoubleClick += new ScintillaNet.DoubleClickHandler(SciControl_DoubleClick); PluginBase.MainForm.CurrentDocument.SciControl.Modified -= new ScintillaNet.ModifiedHandler(SciControl_Modified); PluginBase.MainForm.CurrentDocument.SciControl.Modified += new ScintillaNet.ModifiedHandler(SciControl_Modified); } break; default: break; }; }
public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { string fileName = PluginBase.MainForm.CurrentDocument.FileName; switch (e.Type) { case EventType.FileSwitch: handleActivity(fileName, false); break; case EventType.FileSave: handleActivity(fileName, true); break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { // Catches FileSwitch event and displays the filename it in the PluginUI. case EventType.FileSwitch: string fileName = PluginBase.MainForm.CurrentDocument.FileName; //pluginUI.Output.Text += "WORKING DIR "+PluginBase.MainForm.WorkingDirectory; //pluginUI.Output.Text += fileName + "\r\n"; //TraceManager.Add("Switched to " + fileName); // tracing to output panel break; // Catches Project change event and display the active project path case EventType.Command: string cmd = (e as DataEvent).Action; if (cmd == "ProjectManager.Project") { IProject project = PluginBase.CurrentProject; /* if (project == null) pluginUI.Output.Text += "Project closed.\r\n"; else pluginUI.Output.Text += "Project open: " + project.ProjectPath + "\r\n";*/ } break; } }
public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority) { switch (e.Type) { default: break; }; }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.ApplySettings: PluginBase.MainForm.IgnoredKeys.Add(this.settingObject.AnalyzeShortcut); this.analyzeMenuItem.ShortcutKeys = this.settingObject.AnalyzeShortcut; break; case EventType.Command: if (((DataEvent)e).Action == "ProjectManager.Project") { IProject project = PluginBase.CurrentProject; this.analyzeMenuItem.Enabled = (project != null && project.Language == "as3"); } break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.ProcessStart: this.pluginUI.ClearOutput(null, null); break; case EventType.ProcessEnd: if (this.settingObject.ShowOnProcessEnd && !this.settingObject.ShowOnOutput) { this.pluginUI.DisplayOutput(); } break; case EventType.Trace: this.pluginUI.AddTraces(); if (this.settingObject.ShowOnOutput) { this.pluginUI.DisplayOutput(); } break; case EventType.Keys: Keys keys = (e as KeyEvent).Value; e.Handled = this.pluginUI.OnShortcut(keys); break; case EventType.ApplySettings: this.pluginUI.ApplyWrapText(); break; } }
/// <summary> /// Handles the internal events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { this.ApplyFixedDocumentPadding(); }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.UIStarted : contextInstance = new Context(settingObject); // Associate this context with a file type ASCompletion.Context.ASContext.RegisterLanguage(contextInstance, associatedSyntax); break; } }
public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority) { TextEvent te = e as TextEvent; DataEvent de = e as DataEvent; Project project; switch (e.Type) { case EventType.UIStarted: // for some reason we have to do this on the next message loop for the tree // state to be restored properly. pluginUI.BeginInvoke((MethodInvoker)delegate { BroadcastMenuInfo(); BroadcastToolBarInfo(); OpenLastProject(); }); break; // replace $(SomeVariable) type stuff with things we know about case EventType.ProcessArgs: project = activeProject; // replace arguments using active project data if (!ProjectCreator.IsRunning) { if (project != null && te.Value.IndexOf('$') >= 0) { // steal macro names and values from the very useful BuildEvent macros BuildEventVars vars = new BuildEventVars(project); vars.AddVar("CompilerConfiguration", menus.ConfigurationSelector.Text); vars.AddVar("BuildIPC", buildActions.IPCName); foreach (BuildEventInfo info in vars.GetVars()) te.Value = te.Value.Replace(info.FormattedName, info.Value); // give the FileActions class an opportunity to process arguments // it may know about (if it was responsible for creating the file) te.Value = fileActions.ProcessArgs(project, te.Value); } else { BuildEventVars vars = new BuildEventVars(null); vars.AddVar("ProjectDir", PluginBase.MainForm.WorkingDirectory); foreach (BuildEventInfo info in vars.GetVars()) te.Value = te.Value.Replace(info.FormattedName, info.Value); } } break; case EventType.FileOpening: // if this is a project file, we can handle it ourselves if (FileInspector.IsProject(te.Value)) { te.Handled = true; OpenProjectSilent(te.Value); } else if (te.Value.EndsWith(".swf")) { te.Handled = true; OpenSwf(te.Value); } break; case EventType.FileOpen: SetDocumentIcon(MainForm.CurrentDocument); OpenNextFile(); // it's safe to open any other files on the queue break; case EventType.FileSave: // refresh the tree to update any included <mx:Script> tags string path = MainForm.CurrentDocument.FileName; if (Settings.EnableMxmlMapping && FileInspector.IsMxml(path, Path.GetExtension(path).ToLower()) && Tree.NodeMap.ContainsKey(path)) { Tree.RefreshNode(Tree.NodeMap[path]); } TabColors.UpdateTabColors(Settings); break; case EventType.FileSwitch: TabColors.UpdateTabColors(Settings); break; case EventType.ProcessStart: buildActions.NotifyBuildStarted(); break; case EventType.ProcessEnd: string result = te.Value; buildActions.NotifyBuildEnded(result); break; case EventType.ApplySettings: TabColors.UpdateTabColors(Settings); break; case EventType.Command: if (de.Action.StartsWith("ProjectManager.")) if (de.Action == ProjectManagerCommands.NewProject) { NewProject(); e.Handled = true; } else if (de.Action == ProjectManagerCommands.OpenProject) { if (de.Data != null && File.Exists((string)de.Data)) { OpenProjectSilent((string)de.Data); } else OpenProject(); e.Handled = true; } else if (de.Action == ProjectManagerCommands.SendProject) { BroadcastProjectInfo(activeProject); e.Handled = true; } else if (de.Action == ProjectManagerCommands.InstalledSDKsChanged) { project = activeProject; // TODO refresh SDK for all projects BuildActions.GetCompilerPath(project); // refresh project's SDK e.Handled = true; } else if (de.Action == ProjectManagerCommands.BuildProject) { if (Tree.Projects.Count > 0) { AutoSelectConfiguration((string)de.Data); BuildProject(); e.Handled = true; } } else if (de.Action == ProjectManagerCommands.TestMovie) { project = activeProject; // TODO we need a "runnable" project if (project != null) { AutoSelectConfiguration((string)de.Data); TestMovie(); e.Handled = true; } } else if (de.Action == ProjectManagerCommands.PlayOutput) { if (activeProject != null || de.Data != null) { OpenSwf((string)de.Data); de.Handled = true; } } else if (de.Action == ProjectManagerCommands.RestartFlexShell) { FlexCompilerShell.Cleanup(); } else if (de.Action == ProjectManagerCommands.SetConfiguration) { AutoSelectConfiguration((string)de.Data); } else if (de.Action == ProjectManagerCommands.HotBuild) { if (activeProject != null) { AutoSelectConfiguration((string)de.Data); TestMovie(); e.Handled = true; } } else if (de.Action == ProjectManagerCommands.RefreshTree) { TreeRefreshSelectedNode(); } else if (de.Action == ProjectManagerCommands.LineEntryDialog) { Hashtable info = (Hashtable)de.Data; LineEntryDialog askName = new LineEntryDialog((string)info["title"], (string)info["label"], (string)info["suggestion"]); DialogResult choice = askName.ShowDialog(); if (choice == DialogResult.OK && askName.Line.Trim().Length > 0 && askName.Line.Trim() != (string)info["suggestion"]) { info["suggestion"] = askName.Line.Trim(); } if (choice == DialogResult.OK) { e.Handled = true; } } break; case EventType.Keys: e.Handled = HandleKeyEvent(e as KeyEvent); break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { switch (e.Type) { case EventType.Keys: Keys key = (e as KeyEvent).Value; if (key == this.settingObject.IncreaseShortcut) DuplicateIncrease(); else if (key == this.settingObject.SwitchShortcut) DuplicateSwitch(); else if (key == this.settingObject.WordShortcut) WordSwitch(); break; } }
/// <summary> /// Handles the incoming events /// </summary> public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority prority) { if (e.Type == EventType.UIStarted) { String initScript = Path.Combine(PathHelper.BaseDir, "InitScript.cs"); if (File.Exists(initScript)) { String command = "Internal;" + initScript; PluginBase.MainForm.CallCommand("ExecuteScript", command); } this.RunAutoRunMacros(); } }