Добавление гиперссылок в примечания к элементу Enterprise Architect - PullRequest
0 голосов
/ 13 июня 2018

Я работаю над надстройками Enterprise Architect C #.Я пытаюсь добавить гиперссылку на другой пакет в примечаниях к элементам через надстройки, как показано ниже:

package hyperlink

Я нашел код для добавления гиперссылки в элементупаковать здесь: https://www.sparxsystems.com/forums/smf/index.php?topic=4068.0 и попробовал следующий код:

                    EA.Package parentPkg = Session.Repository.GetPackageByID(currentPackage.ParentID);//target package
                    hyperlink = currentPackage.Elements.AddNew("$package://"+parentPkg.PackageGUID, "Text"); //adding hyperlink
                    hyperlink.Update();
                    hyperlink.Subtype = 19; 
                    hyperlink.Update();
                    hyperlink.Notes = parentPkg.Name;
                    hyperlink.Update();
                    demoElement.Notes = "test for packages hyperlinks" + hyperlink; //demo element's notes must contain hyperlink to target package
                    mobjElement.Update();

Здесь не отображается как гиперссылка, а как System .__ ComObject.Пожалуйста, помогите.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Как предложили Герт и Томас, если вам просто нужно сделать гиперссылку в заметках, просто добавьте тег herf для этого слова, как показано ниже

This is a <a href="$element://{64162D99-026B-40b3-914C-2CC009943540}"><font
     color="#0000ff"><u>Hyperlink</u></font> </a> Example

, и результат в заметках будет выглядеть как

enter image description here

В API вы можете просто добавить текст ссылки в свойство заметок любого класса.

switch ( treeSelectedType )
    {
        case otElement :
        {
            // Code for when an element is selected
            var theElement as EA.Element;
            theElement = Repository.GetTreeSelectedObject();
            theElement.Notes="This is a <a href=\"$element://{700ED461-FAC6-4097-AFF5-5F4787AD99CB}\"><font color=\"#0000ff\"><u>Hyperlink</u></font></a>  Example";
            theElement.Update();
            theElement.Refresh();



            break;
        }
0 голосов
/ 13 июня 2018

Я попробовал (как предложил Герт) следующий фрагмент кода (извините за Perl):

my $e = $rep->getElementByGuid("{92EF2B52-B75E-454d-AD03-5BDC12256A36}");
$e->{notes} = "<a href=\"\$package://{81657422-5D41-4dbf-9210-461DF67FD2C2}\"><font color=\"#0000ff\"><u>Link name</u></font></a>";
$e->Update();

Просто замените GUID и отображаемое имя, и у вас будет гиперссылка на пакет.Обратите внимание, что в приведенной выше строке есть несколько escape-символов, поэтому вот необработанный текст:

<a href="$package://{81657422-5D41-4dbf-9210-461DF67FD2C2}"><font color="#0000ff"><u>Link name</u></font></a>
...