private UPMObjectivesSection CreateSectionIdentfier(string title, IIdentifier identifier) { UPMObjectivesSection section0 = new UPMObjectivesSection(identifier); section0.TitleField = new UPMStringField(identifier); section0.TitleField.StringValue = title; return(section0); }
private void LoadData(UPMObjectivesPage objectivesPage) { int itemCounter = 0; int sectionCounter = 0; foreach (UPObjectivesGroup group in this.objectivesGroupArray) { UPMObjectivesSection section = this.CreateSectionIdentfier(group.Label, StringIdentifier.IdentifierWithStringId(group.GroupKey)); foreach (UPObjectivesItem item in group.Items) { UPMObjective mobjective = this.CreateObjectiveIdentfier(item, StringIdentifier.IdentifierWithStringId($"ObjectiveItem_{itemCounter}")); if (item.Documents != null) { UPMDocumentsGroup documentGroup = new UPMDocumentsGroup(StringIdentifier.IdentifierWithStringId($"documentgroup{itemCounter}")); foreach (DocumentData document in item.Documents) { UPMDocument documentModel = new UPMDocument(document); documentGroup.AddChild(documentModel); } mobjective.AddGroup(documentGroup); } mobjective.ObjectiveItem = item; Dictionary <string, UPEditFieldContext> itemEditFields = new Dictionary <string, UPEditFieldContext>(); for (int additionalFieldIndex = 0; additionalFieldIndex < item.AdditionalFields.Count; additionalFieldIndex++) { UPConfigFieldControlField field = item.AdditionalFields[additionalFieldIndex]; RecordIdentifier fieldIdentifier = new RecordIdentifier(field.Identification); UPEditFieldContext fieldContext = null; FieldAttributes attributes = field.Attributes; if (attributes != null && attributes.Hide) { fieldContext = UPEditFieldContext.HiddenFieldFor(field, fieldIdentifier, item.Values[additionalFieldIndex]); } else if (attributes != null && attributes.ReadOnly) { fieldContext = UPEditFieldContext.ReadonlyFieldFor(field, fieldIdentifier, item.Values[additionalFieldIndex]); } else { fieldContext = UPEditFieldContext.FieldContextFor(field, fieldIdentifier, item.Values[additionalFieldIndex], (List <UPEditFieldContext>)null); } if (fieldContext?.Field != null) { string fieldIdentification = this.FieldIdentificationSectionCounterItemCounter(field.Field, sectionCounter, itemCounter); this.editPageContext.EditFields.SetObjectForKey(fieldContext, fieldIdentification); itemEditFields.SetObjectForKey(fieldContext, fieldIdentification); if (fieldContext.EditField != null) { fieldContext.EditField.EditFieldsContext = this.editPageContext; mobjective.AddField(fieldContext.EditField); } else { mobjective.AddField(fieldContext.Field); } } } this.HandleDependentFieldsSectionCounterItemCounter(itemEditFields, sectionCounter, itemCounter); if (item.ButtonActions.Count > 0) { List <UPMOrganizerAction> buttonActions = new List <UPMOrganizerAction>(); foreach (UPConfigButton button in item.ButtonActions) { StringIdentifier fieldIdentifier = StringIdentifier.IdentifierWithStringId("button"); UPMOrganizerAction action = new UPMOrganizerAction(fieldIdentifier); //action.SetTargetAction(this.ParentOrganizerModelController, PerformObjectivesAction); action.ViewReference = button.ViewReference.ViewReferenceWith(item.Record.RecordIdentification); action.LabelText = button.Label; buttonActions.Add(action); } mobjective.Actions = buttonActions; } section.AddChild(mobjective); itemCounter++; } if (section.Children.Count > 0) { objectivesPage.AddChild(section); } } if (objectivesPage.Children.Count == 0) { UPMMessageStatus messageStatus = new UPMMessageStatus(StringIdentifier.IdentifierWithStringId("messageIdentifier")); UPMStringField messageField = new UPMStringField(StringIdentifier.IdentifierWithStringId("statusFieldIdentifier")); messageField.FieldValue = LocalizedString.Localize(LocalizationKeys.TextGroupBasic, LocalizationKeys.KeyBasicNoObjectives); messageStatus.DetailMessageField = messageField; objectivesPage.Status = messageStatus; } }