public CopyPasteItemIdentifiable( object parentContainer, AdminShell.Identifiable entity) { this.parentContainer = parentContainer; this.entity = entity; }
// utilities string BuildUriQueryPartId(string tag, AdminShell.Identifiable entity) { if (entity == null || entity.identification == null) { return(""); } var res = ""; if (tag != null) { res += tag.Trim() + "="; } res += entity.identification.idType.Trim() + "," + entity.identification.id.Trim(); return(res); }
private void repIdentifiable(string head, AdminShell.Identifiable ifi) { if (ifi == null) { return; } if (ifi.identification != null) { //-9- {Identifiable}.{identification[.{idType, id}], administration.{ version, revision}} rep(head + "identification", "[" + ifi.identification.idType + "]" + ifi.identification.id); rep(head + "identification.idType", "" + ifi.identification.idType); rep(head + "identification.id", "" + ifi.identification.id); } if (ifi.administration != null) { rep(head + "administration.version", "" + ifi.administration.version); rep(head + "administration.revision", "" + ifi.administration.revision); } }
// // Identifiable // public void DisplayOrEditEntityIdentifiable(StackPanel stack, AdminShell.Identifiable identifiable, string templateForIdString, DispEditInjectAction injectToId = null, bool checkForIri = true) { // access if (stack == null || identifiable == null) { return; } // members this.AddGroup(stack, "Identifiable:", levelColors[1][0], levelColors[1][1]); this.AddHintBubble(stack, hintMode, new[] { new HintCheck( () => { return(identifiable.identification == null); }, "Providing a worldwide unique identification is mandatory.", breakIfTrue: true), new HintCheck( () => { return(checkForIri && identifiable.identification.idType != AdminShell.Identification.IRI); }, "Check if identification type is correct. Use of IRIs is usual here.", severityLevel: HintCheck.Severity.Notice), new HintCheck( () => { return(identifiable.identification.id.Trim() == ""); }, "Identification id shall not be empty. You could use the 'Generate' button in order to " + "generate a worldwide unique id. " + "The template of this id could be set by commandline arguments.") }); if (this.SafeguardAccess( stack, repo, identifiable.identification, "identification:", "Create data element!", v => { identifiable.identification = new AdminShell.Identification(); return(new ModifyRepo.LambdaActionRedrawEntity()); })) { this.AddKeyValueRef( stack, "idType", identifiable, ref identifiable.identification.idType, null, repo, v => { identifiable.identification.idType = v as string; return(new ModifyRepo.LambdaActionNone()); }, comboBoxItems: AdminShell.Key.IdentifierTypeNames); this.AddKeyValueRef( stack, "id", identifiable, ref identifiable.identification.id, null, repo, v => { identifiable.identification.id = v as string; return(new ModifyRepo.LambdaActionNone()); }, auxButtonTitles: DispEditInjectAction.GetTitles(new[] { "Generate" }, injectToId), auxButtonLambda: (i) => { if (i == 0) { identifiable.identification.idType = AdminShell.Identification.IRI; identifiable.identification.id = Options.Curr.GenerateIdAccordingTemplate( templateForIdString); return(new ModifyRepo.LambdaActionRedrawAllElements(nextFocus: identifiable)); } if (i >= 1) { var la = injectToId?.auxLambda?.Invoke(i - 1); return(la); } return(new ModifyRepo.LambdaActionNone()); }); } this.AddHintBubble(stack, hintMode, new[] { new HintCheck( () => { return(identifiable.administration == null); }, "Check if providing admistrative information on version/ revision would be useful. " + "This allows for better version management.", breakIfTrue: true, severityLevel: HintCheck.Severity.Notice), new HintCheck( () => { return(identifiable.administration.version.Trim() == "" || identifiable.administration.revision.Trim() == ""); }, "Admistrative information fields should not be empty.", severityLevel: HintCheck.Severity.Notice) }); if (this.SafeguardAccess( stack, repo, identifiable.administration, "administration:", "Create data element!", v => { identifiable.administration = new AdminShell.Administration(); return(new ModifyRepo.LambdaActionRedrawEntity()); })) { this.AddKeyValueRef( stack, "version", identifiable.administration, ref identifiable.administration.version, null, repo, v => { identifiable.administration.version = v as string; return(new ModifyRepo.LambdaActionNone()); }); this.AddKeyValueRef( stack, "revision", identifiable.administration, ref identifiable.administration.revision, null, repo, v => { identifiable.administration.revision = v as string; return(new ModifyRepo.LambdaActionNone()); }); } }