public static LabelContent FindLabelGlobally_OLD(string labelIdText) { //string labelId = String.Empty; LabelContent labelContent = new LabelContent() { LabelIdForProperty = labelIdText }; if (labelIdText.StartsWith("@") == false) { return(labelContent); } //var labelFileId labelContent.LabelFileId = LabelHelper.GetLabelFileId(labelIdText); labelContent.LabelId = labelContent.LabelIdForProperty.Substring(labelContent.LabelIdForProperty.IndexOf(":") + 1); // Get the label factory LabelControllerFactory factory = new LabelControllerFactory(); // Get the label edit controller AxLabelFile labelFile = null; if (String.IsNullOrEmpty(labelContent.LabelFileId) == false) { // Issue with finding label file (as it seems its searching for the label file in the current model) labelFile = Common.CommonUtil.GetModelSaveService().GetLabelFile(labelContent.LabelFileId); if (labelFile == null) { var fileName = Common.CommonUtil.GetModelSaveService().GetLabelFileNames() .Where(l => l.StartsWith(labelContent.LabelFileId) && l.Contains("en-")).FirstOrDefault(); labelFile = Common.CommonUtil.GetModelSaveService().GetLabelFile(fileName); } } else { var labelFiles = LabelHelper.GetLabelFiles(); labelFile = labelFiles .Where(l => l.LabelFileId.Equals(labelContent.LabelFileId, StringComparison.InvariantCultureIgnoreCase)) .First(); } if (labelFile != null) { LabelEditorController labelController = factory.GetOrCreateLabelController(labelFile, Common.CommonUtil.GetVSApplicationContext()); labelController.LabelSearchOption = SearchOption.MatchExactly; labelController.IsMatchExactly = true; var test = labelController.Labels.ToList(); var label = labelController.Labels.Where(l => l.ID.Equals(labelContent.LabelId, StringComparison.InvariantCultureIgnoreCase)) .FirstOrDefault(); if (label != null) { labelContent.LabelDescription = label.Description; labelContent.LabelText = label.Text; } } return(labelContent); }
private static void CreateLabel(AxLabelFile labelFile, string labelId, string labelText) { // Get the label factory LabelControllerFactory factory = new LabelControllerFactory(); LabelEditorController labelControllerToAdd = factory.GetOrCreateLabelController(labelFile, Common.CommonUtil.GetVSApplicationContext()); labelControllerToAdd.Insert(labelId, labelText, null); labelControllerToAdd.Save(); }
/// <summary> /// Set the model info and retreive it's label file. /// </summary> /// <param name="modelInfo">Instance of <c>ModelInfoCollection</c> to retreive label file for</param> public void setModelAndLabelFile(ModelInfoCollection modelInfo, AxLabelFile labelFile = null) { modelInfoCollection = modelInfo; if (labelFile == null) { currentLabelFile = this.GetLabelFile(); } else { currentLabelFile = labelFile; } }
/// <summary> /// /// </summary> /// <param name="metaModelProviders">Instance of <c>IMetaModelProvider</c></param> /// <param name="metaModelService">Instance of <c>IMetaModelService</c></param> /// <param name="modelInfoCollection">Instance of <c>ModelInfoCollection</c></param> /// <returns>Instance of <c>AXLabelFile</c></returns> public AxLabelFile GetLabelFile() { // Choose the first model in the collection ModelInfo modelInfo = ((System.Collections.ObjectModel.Collection <ModelInfo>)modelInfoCollection)[0]; // Construct a ModelLoadInfo ModelLoadInfo modelLoadInfo = new ModelLoadInfo { Id = modelInfo.Id, Layer = modelInfo.Layer, }; // Get the list of label files from that model IList <String> labelFileNames = metaModelProvider.CurrentMetadataProvider.LabelFiles.ListObjectsForModel(modelInfo.Name); // Choose the first // What happens if there is no label file? AxLabelFile labelFile = MetaModelService.GetLabelFile(labelFileNames[0], modelLoadInfo); return(labelFile); }