コード例 #1
0
 public CopyPasteItemIdentifiable(
     object parentContainer,
     AdminShell.Identifiable entity)
 {
     this.parentContainer = parentContainer;
     this.entity          = entity;
 }
コード例 #2
0
        // 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);
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        //
        // 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());
                });
            }
        }