Открытие репозитория в навигаторе объектов.
Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:
Параметр | Описание |
Элемент 1:
IMetabase |
Репозиторий, который необходимо открыть в навигаторе объектов. |
Элемент 2:
UiNavOpenMode |
Необязательный параметр, который определяет открывать личную
папку пользователя или заданную папку.
Если элемент не задан, то в навигаторе объектов открывается корневая папка репозитория. |
Элемент 3:
IMetabaseObjectDescriptor |
Необязательный параметр, содержащий описание папки репозитория, которая будет открыта на отдельной вкладке навигатора и будет являться корневой. |
Используется для открытия в навигаторе объектов репозитория, к которому уже осуществлено подключение.
Для выполнения примеров в репозитории предполагается наличие:
формы и расположенной на ней кнопки с наименованием Button1;
папки с идентификатором IDFOLDER.
Для выполнения примеров добавьте ссылки на системные сборки: Metabase, Ui.
Процедура является обработчиком событий OnClick для кнопки Button1.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array Of Variant;
Root: IMetabaseObjectDescriptor;
Begin
MB := MetabaseClass.Active;
Target := WinApplication.Instance.GetPluginTarget("Std");
Context := Target.CreateExecutionContext;
Root := MB.ItemById("IDFOLDER");
Data := New Variant[3];
Data[0] := MB;
Data[1] := UiNavOpenMode.SetFolder;
Data[2] := Root;
Context.Data := Data;
Target.Execute("OpenNavigator", Context);
End Sub Button1OnClick;
В результате выполнения примера на отдельной вкладке навигатора будет открыта папка с заданным идентификатором IDFOLDER. Уровень папок репозитория будет ограничен заданной папкой, которая будет являться корневой.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
MAN: IMetabaseManager;
Def: IMetabaseDefinition;
Cred: ICredentials;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Begin
MB := MetabaseClass.Active;
MAN := MB.Definition.Manager;
Cred := MAN.Packs.Item(0).Package.CreateCredentials(AuthenticationMode.Password);
Def := MAN.Definitions.FindById("TEST");
(Cred As IPasswordCredentials).UserName := "Test";
(Cred As IPasswordCredentials).Password := "Test";
MB := Def.Open(Cred);
Target := WinApplication.Instance.GetPluginTarget("Std");
Context := Target.CreateExecutionContext;
Context.Data := MB;
Target.Execute("OpenNavigator", Context);
End Sub Button1OnClick;
В результате выполнения примера будет осуществлено подключение к репозиторию с идентификатором TEST. При подключении к нему будут использоваться имя пользователя и пароль «Test». Уровень папок репозитория не будет ограничен.
См. также: