/// <summary> /// Handles the Event if a word is selected and splits it up into the separate Events for /// <see cref="VariableSelected"/>, <see cref="ProcedureSelected"/>, <see cref="SectionSelected"/> /// and <see cref="CallReferenceSelected"/>. /// </summary> private void CodeBoxOnWordSelected(object sender, WordSelectedEventArgs eventArgs) { try { Logger.Info("Selected word {0}", eventArgs.Word); // 1. No CobolFile? Nothing to do. if (CobolFile == null) { return; } // 2. No CobolTree? Show Program infos if (CobolFile.CobolTree == null) { ShowProgramInfo(); return; } // 3. Is the word a variable? if (CobolFile.Variables.ContainsKey(eventArgs.Word) && VariableSelected != null) { VariableSelected(sender, CobolFile.Variables[eventArgs.Word]); return; } // 4. Is the word a procedure? var procedure = CobolFile.CobolTree.GetAllProcedures().FirstOrDefault(proc => proc.Name == eventArgs.Word); if (procedure != null && ProcedureSelected != null) { ProcedureSelected(sender, new Tuple <Procedure, string>(procedure, eventArgs.LookFor)); return; } // 5. Is it a section? var section = CobolFile.CobolTree.GetAllSections().FirstOrDefault(sec => sec.Name == eventArgs.Word); if (section != null && SectionSelected != null) { SectionSelected(sender, section); return; } // 6. Call Reference? Open file, keep Info var callRef = CobolFile.CobolTree.CallReferences.FirstOrDefault(call => call.ProgramName == eventArgs.Word); if (callRef != null && CallReferenceSelected != null) { CallReferenceSelected(sender, callRef); return; } ShowProgramInfo(); } catch (Exception exception) { Logger.Error(exception, "Error trying to show selected word {0}: {1}.", eventArgs.Word, exception.Message); } }
private void CodeBoxOnWordSelected(object sender, WordSelectedEventArgs eventArgs) { try { Logger.Info("Selected word {0}", eventArgs.Word); ShowWordInfo(eventArgs.Word); } catch (Exception exception) { Logger.Error(exception, "Error trying to show selected word {0}: {1}.", eventArgs.Word, exception.Message); } }