注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

モジュール間のナビゲーションを設定する

Carbon ワークスペースの利点の1つは、単一のモジュールだけでなく、複数のモジュールにまたがってワークフローを実行できることです。これにより、ユーザーには孤立したアプリケーションの集合ではなく、統一されたワークフローが提供されます。

ワークフローを実行する際、ユーザーは特定の製品、モジュール、インターフェースを意識する必要はありません。代わりに、ユーザーは自分の仕事をスムーズに進めることができるべきです。Carbon では、オブジェクトやオブジェクトのセットを1つのモジュールから別のモジュールにパラメータとして渡すことができるナビゲーションフレームワークが提供されています。

Carbon でのナビゲーションの概要

Carbon のビルダーとして、各モジュールの入力および出力を定義し、現在実行可能なオブジェクトやオブジェクトのセットを指定できます。実行可能なオブジェクトやオブジェクトのセットは、リスト上の選択、関数の結果、特定のタイプのすべてのオブジェクト、またはオントロジーのプリミティブを使用してエンコードできるその他のオブジェクトのセットなど、さまざまなものがあります。受信側では、別のモジュールが(適切な制約を持つ)どのパラメータが上記の出力を受け入れることができるかを指定できます。

Navigation input / output

モジュール間のナビゲーション

ユーザーが1つのモジュールから別のモジュールにナビゲーションアクションを実行することを決定した場合(通常はアクションメニュー内のボタンや、フロントエンドコンポーネントからトリガーされる他のアクションを介して)、Carbon は受信モジュールを新しいタブで開き、ユーザーがワークフローをステップバイステップで進めることができるようにします。これにより、元のモジュールで維持されている状態を失わずに、ワークフローを進めることができます。

これは、1つのモジュールの結果を別のモジュールの複数のインスタンスに分岐させることで、複雑なワークフローを構築するのを容易にします。たとえば、オブジェクトエクスプローラーのリストの結果を、オブジェクトビュータブとして独立して開いて検査することができます。

Navigation multiple results

複数のナビゲーションステップ

モジュール間のナビゲーションアクションの数に制限はありません。これは、ナビゲーションフレームワークを使用して、任意の数のワークフローステップを容易にすることができるためです。次のモジュールからの出力が別のモジュールへの入力となることができます。同じモジュールがワークフローに複数回登場することさえあります。以下に示すように、可能性は異なる入力があるたびに現れます。

複数のナビゲーションステップを持つ例

以下に示すワークフローでは、Carbon ワークスペースで利用可能なツールを使用して、特定のシングルアイル機の航空機から Quiver 分析を開始することに興味があります。

まず、キーワード aircraft を検索します。ナビゲーションフレームワークが aircraft を入力として検索モジュールに移動します。

Navigation multiple steps - step 1

検索結果から Aircraft object type を選択します。ナビゲーションフレームワークが Aircraft object type を入力としてオブジェクトエクスプローラーモジュールに移動します。

Navigation multiple steps - step 2

次に、シングルアイル航空機 Quiver モジュールでオブジェクトの結果セット全体を分析したいと考えています。ナビゲーションフレームワークが、Aircraft タイプの 185 のオブジェクトを入力として シングルアイル航空機 Quiver モジュールを開きます。

Navigation multiple steps - step 3

このモジュールから、Q-AGM 航空機をさらに調査するために選択します。ナビゲーションフレームワークが、Q-AGM Aircraft を入力としてオブジェクトビューモジュールを開きます。

Navigation multiple steps - step 4

この時点で、このオブジェクトに対してさらなる分析が必要だと判断します。たとえば、オブジェクトのリンクを調べたり、関連する時系列データを調べたりすることができます。これを達成するために、ナビゲーションフレームワークを再度使用して、今回は Q-AGM Aircraft オブジェクトを入力として シングルアイル航空機 Quiver モジュールを開きます。

Navigation multiple steps - step 5

Carbon の外部でのナビゲーション

ナビゲーションフレームワークは、主に Carbon の運用ユースケース向けに設計されていることに注意してくださいが、ナビゲーションフレームワークは、オブジェクト領域のスタンドアロンのフロントエンドアプリケーションでも使用されています。Carbon の外部でこれらのアプリケーションを使用する場合、ナビゲーションアクションは受信アプリケーションを新しいブラウザタブで開く(Carbon のタブで開くのではなく)が、すべての利点は依然として適用されます。その結果、エンドユーザーやビルダーは、Carbon 内と Carbon 外のユースケースを区別する必要はありません。

Carbon ワークスペースでの統合モジュールの使用方法、またはモジュールの発見方法

Carbon で高品質な運用インターフェースを作成するために、ビルダーはナビゲーションに使用できるモジュールを指定して、エンドユーザーのワークフローのステップに合わせたワークスペースを作成することができる必要があります。

これらの使用可能なモジュールは、発見可能なモジュールと呼ばれ、対応するナビゲーションアクションは、オブジェクトエクスプローラーやオブジェクトビューなどのモジュールで表示される Open in メニューでアクセスできます(ただし、制約が満たされているアクションのみが表示されます)。ワークショップのような他のモジュールでは、ユーザーのインタラクション(ボタンのクリックなど)後にトリガーされる具体的なナビゲーションアクションを指定できます。各モジュールタイプがナビゲーションアクションをどのように処理するかについての詳細と例は、以下の Carbon Modules のナビゲーションフレームワークとの統合 セクションで確認できます。

モジュールの発見の挙動 - つまり、Open in メニューに表示されるオプション - は、ユーザーが Carbon の中で作業しているか、Carbon ワークスペースの外で作業しているかによって異なります。これは、[以下のドキュメントで説明されています](#Carbon の外部でのナビゲーション)。

Carbon 設定エディタで発見可能なモジュールを設定する

  1. Carbon エディタ(/workspace/carbon/edit でアクセス)で、General タブに移動し、Discoverable Modules のリストにモジュールを追加します。
  2. Add an element ボタンを選択して、Module Type のプロンプトが表示されるポップアップを開きます。
  3. Module Type ドロップダウンで目的のモジュールタイプを選択し、特定のモジュールを発見可能にしたい場合は Open Compass dialog を選択します。
Module discovery part 1: Carbon

Carbon 内と Carbon 外でのモジュール発見の挙動

モジュールの発見の挙動 - つまり、Open in メニューに表示されるオプション - は、ユーザーが Carbon の中で作業しているか、Carbon ワークスペースの外で作業しているかによって異なります。

Carbon ワークスペースで作業している場合、Open in メニューには、現在選択されているワークスペースで設定されている発見可能なモジュールのみが表示されます。これにより、各ワークスペースは、明確でキュレーションされたナビゲーションアクションのセットを持つ、特定の運用ワークフロー向けのスペースとして機能します。

Carbon の外部で作業している場合、Open in ボタンには、ユーザーがアクセスできるすべてのプロモートされたワークスペースにまたがるすべての発見可能なモジュールが表示されます。これにより、特定の Carbon ワークスペースの外部で操作している場合でも、ユーザーは Foundry のすべての機能を利用できます。すべての発見可能なモジュールのセットは、以下のようなユニオン演算によって決定されます。

  1. まず、ユーザーがアクセスできるすべての組織を検討します。これには、ユーザーのプライマリ組織と、ユーザーがゲストアクセスを持つすべての組織が含まれます。
  2. 各組織について、その組織のプロモートされたワークスペースをすべて検討し、これらのワークスペースの発見可能なモジュールをすべてユニオンします。
  3. モジュールを、Open in メニューを表示しているモジュールの現在の出力に適用できるものに絞り込みます。

次の例は、Carbon 内と Carbon 外でのモジュール発見の違いを示しています。

  • ザイナのプライマリ組織は Primary Org で、Guest Org にもゲストアクセスがあります。

    Navigation Primary Org Navigation Guest Org
  • ザイナは、Primary Org の2つの異なる Carbon ワークスペースのメンバーです。

    • Claims Workspace では、発見可能なモジュールが2つ設定されています(Claim Alert Application と Claim Investigator Application)。
      Navigation Claims Workspace Discoverable Modules
    • Actuary Workspace では、発見可能なモジュールが1つ設定されています(Claim Cohorts Application)。
      Navigation Actuary Workspace Discoverable Modules
  • ザイナは、Guest Org の単一の Carbon ワークスペースである Flight Workspace のメンバーでもあります。

    • Flight Workspace には、発見可能なモジュールが1つ設定されています(Flight Tracker)。
      Navigation Flight Tracker Discoverable Modules

この設定のため、ザイナは、彼女が働いている場所に応じて、Open in ボタンに異なるモジュールのセットが表示されます。

  • Claims Workspace では、Open in ボタンには Claim Alert Application と Claim Investigator Application が表示されます。
    Navigation Claims Workspace Discoverable Modules
  • Actuary Workspace では、Open in ボタンには Claim Cohorts Application が表示されます。
    Navigation Actuary Workspace Discoverable Modules
  • Flight Workspace では、Open in ボタンには Flight Tracker が表示されます。
    Navigation Flight Tracker Discoverable Modules
  • Carbon の外部では、Open in ボタンには、Claim Alert Application、Claim Investigator Application、Claim Cohorts Application、および Flight Tracker の4つのモジュールが表示されます。
    Navigation All Discoverable Modules

Carbon がユーザーに直接アクセスされない場合のナビゲーションの設定

場合によっては、Carbon ワークスペースに対する運用ユーザーやユースケースがないことがあります。しかし、Carbon ワークスペースでの統合モジュールの使用方法、またはモジュールの発見方法で以前に説明したように、スタンドアロンのオブジェクトアプリケーション間でナビゲートするための Open in アクションを設定することができます。

お勧めの解決策は、所望のユーザーセットにアクセス可能な Carbon ワークスペースを作成し(できればプロジェクトレベルのアクセス権を使用して)、そこで発見可能なモジュールを設定することです。ワークスペースは、Carbon の外部での Open in アクションに発見可能なモジュールが表示されるように、プロモートされたワークスペースである必要があります。

発見可能なモジュールがユーザー自身にアクセス可能であることを確認することをお勧めします。最も簡単な方法は、Carbon ワークスペース自体と同じプロジェクトの中にそれらを入れることです。

次の例は、このプロセスを示しています。

  • ワークスペースリソース(Carbon)とモジュールリソース(ワークショップ)が含まれている新しいプロジェクトを作成します。デフォルトの役割は、組織内のすべてのユーザーにアクセス権を付与するために、ビューアに設定されています。 Carbon の中でワークスペースリソースを作成し、プロジェクトに配置する必要があることに注意してください。プロジェクトから直接ワークスペースを作成することはできません。
    Module discovery no Carbon 1
  • ワークスペースの Discoverable modules リストに My inbox モジュールを追加します。
    Module discovery no Carbon 2
  • ナビゲーションフレームワークが Carbon の外部で発見可能なモジュールを認識するように、ワークスペースを組織の prominent に設定します。
    Module discovery no Carbon 3
  • My inbox モジュールは、現在、オブジェクトエクスプローラーの Open in メニューで Carbon の外部でアクセスできます。
    Module discovery no Carbon 4

Carbon モジュールのナビゲーションフレームワークとの統合

このセクションでは、各タイプの Carbon モジュールがナビゲーションフレームワークとどのように統合できるかについての情報が含まれています。各モジュールタイプのコンテキストでナビゲーションアクションの出力とされるものや、Carbon パラメータがナビゲーションアクションの入力となる方法についての詳細が記載されています。

関連する Foundry リソースがないモジュール(オブジェクトビュー、オブジェクトエクスプローラ、検索)の場合、入力と出力は事前に定義されており、変更や設定ができません。たとえば、オブジェクトビューは常に任意の単一オブジェクトを入力として受け入れ、オブジェクトエクスプローラの出力は、ユーザーのエクスプロレーションの現在の結果に設定されています。このようなモジュールをビルトインと呼びます。ビルトインモジュールは、明示的に発見可能にする必要はありません

ビルダーが作成できるモジュール(ワークショップ、スレート、クイバー、マップなど)は、通常、そのようなモジュールのコンテキストで定義された変数やパラメータを通じて、入力および出力を指定するより複雑で堅牢な方法があります。このようなモジュールをダイナミックと呼び、明示的に発見可能にする必要があります

オブジェクトビュー(組み込み)

オブジェクトビュー:モジュールディスカバリによる入力

オブジェクトビューモジュールは、任意のオブジェクトタイプの単一オブジェクトを入力としてサポートしています。オブジェクトビューモジュールを開くナビゲーションアクションは、デフォルトで単一の選択オブジェクトに関連するほとんどのコンテキストまたはアクションメニューに存在します。このナビゲーションアクションを無効にしたり、ワークスペース設定エディタでオブジェクトビューモジュールを発見可能に設定することはできません。

オブジェクトビュー入力

オブジェクトビュー:UI要素を介した入力

動的モジュールでは、オブジェクトビューにナビゲーションアクションをトリガーするUI要素を作成することができます。

  • Workshopでは、オブジェクトビューを開くタイプのイベントを定義できます。詳細については、Workshopモジュールの出力ドキュメントを参照してください。
    Navigation Object View Workshop input
  • Slateでは、スタンドアロンのオブジェクトビューアプリケーションへの通常のHTMLリンクを介したナビゲーションは、Carbonによってインターセプトされ、代わりにリンクに存在するオブジェクトRIDを持つ新しいオブジェクトビューモジュールが開きます。詳細については、Slateモジュールのドキュメントを参照してください。
    Navigation Object View Slate input

オブジェクトビュー:出力

オブジェクトビューで現在表示されているオブジェクトは、モジュールの出力です。

オブジェクトエクスプローラ

オブジェクトエクスプローラ:モジュールディスカバリによる入力

オブジェクトエクスプローラモジュールは、単一のオブジェクトセット(バージョン管理されているかどうか)を入力としてサポートしています。オブジェクトエクスプローラモジュールを開くナビゲーションアクションは、単一の選択オブジェクトセットに関連するほとんどのコンテキストまたはアクションメニューや、オブジェクトセットへのリンクがある場所に存在します(以下の画像は、オブジェクトのプロパティがオブジェクトセットへのリンクとしてレンダリングされる例です)。このアクションを無効にすることや、ワークスペース設定エディタでオブジェクトエクスプローラモジュールを発見可能に設定することはできません。

Navigation Object Explorer input Search 1

また、Searchモジュールからオブジェクトエクスプローラモジュールに複数の方法で移動することができます。たとえば:

  • 保存されたエクスプローラを開く
  • 保存されたオブジェクトリストを開く
  • オブジェクトタイプでのエクスプローラを開始する
  • モジュールへのショートカットを開く
Navigation Object Explorer input Search 1 Navigation Object Explorer input Search 2

オブジェクトエクスプローラ:UI要素を介した入力

動的モジュールでは、オブジェクトエクスプローラにナビゲーションアクションをトリガーするUI要素を作成することができます。

  • Workshopでは、オブジェクトエクスプローラを開くタイプのイベントを定義できます。詳細については、Workshopモジュールの出力ドキュメントを参照してください。
    Navigation Object Explorer Workshop input
  • Slateでは、スタンドアロンのオブジェクトエクスプローラアプリケーションへの通常のHTMLリンクを介したナビゲーションは、Carbonによってインターセプトされ、代わりにリンクに存在するオブジェクトセットRIDを持つ新しいオブジェクトエクスプローラモジュールが開きます。詳細については、Slateモジュールのドキュメントを参照してください。
    Navigation Object Explorer Slate input

オブジェクトエクスプローラ:出力

オブジェクトエクスプローラで現在選択されているオブジェクトセットが、モジュールの出力です。

検索(組み込み)

検索モジュールは、オントロジー作成物を開くためのゲートウェイであり、キーワードを使用してオブジェクトタイプとそのプロパティをフィルター処理する機能や、エクスプロレーション、リスト、モジュールなどのリソースのリストを閲覧する機能を提供しています。

検索:モジュールディスカバリによる入力

検索モジュールは、ワークスペース内のモジュールショートカットまたはCarbonホームモジュールの検索バー(以下参照)を介して直接アクセスできます。

検索:UI要素を介した入力

Carbonホームモジュールは、検索バーを表示するように設定できます。検索バーに入力されたクエリは、検索モジュールを開くために使用されるパラメータ値になります。

Navigation Search input Home

検索:出力

検索モジュールでユーザーが特定のリソースに対してアクションを実行すると、対応するモジュールがCarbonの新しいタブで開かれます。モジュール作成物の場合(選択されたモジュールのみが開かれる)を除いて、オブジェクトエクスプローラは入力オブジェクトセットを受け取ります。

  • オブジェクトタイプの場合、そのタイプに基づいた新しいエクスプローラが開きます。
  • エクスプロレーションの場合、エクスプロレーションがバックアップされているバージョン管理されたオブジェクトセットに基づいた新しいエクスプロレーションが開きます。
  • リストの場合、リストに含まれるオブジェクトに基づいた新しいエクスプロレーションが開きます。
  • 比較の場合、比較ビューに基づいた比較モードの新しいエクスプロレーションが開きます。
Navigation Search

Workshop

Workshop:モジュールディスカバリによる入力

オブジェクトセットタイプのモジュールインターフェース変数が少なくとも1つある任意のWorkshopモジュールは、モジュールディスカバリの設定、Workshopモジュール、セクションで説明されているように、発見可能に設定することができます。

Workshop:UI要素を介した入力

動的モジュールでは、WorkshopモジュールにナビゲーションアクションをトリガーするUI要素を作成することができます。

Navigation Workshop input
  • Slateでは、スタンドアロンのWorkshopアプリケーションへの通常のHTMLリンクを介したナビゲーションは、Carbonによってインターセプトされ、代わりにリンクに存在するオブジェクトセットRIDを持つ新しいWorkshopモジュールが開きます。詳細については、Slateのドキュメントを参照してください。
Navigation Workshop Slate input

Workshop:モジュールインターフェース

Workshop変数は、変数の設定パネル内のモジュールインターフェイスに追加でき、Workshopモジュールのパラメータ化を可能にします。モジュールインターフェイス変数の値は、URLを介したスタンドアロンのWorkshopアプリケーションまたは、CarbonのWorkshopモジュールのパラメータとして渡すことができます。

パラメータの追加

Carbonパラメータとして使用される場合(例:上部バーのモジュールショートカット内)、パラメータの名前は、変数の外部IDに文字列 variable.(ドットを含む)がプレフィックスとして付けられたものでなければなりません。Workshop変数の外部IDは、変数エディタの設定パネルで設定できます。

Workshopイベント

Workshopモジュールでは、上記の段落で説明した変数の概念を使用して、複数のオブジェクトセットが同時にアクションを実行される場合があります。Workshopイベントアプリケーションを開くタイプを使用して、そのようなオブジェクトセットを他の多くのタイプのモジュールへのナビゲーションアクションの入力として渡すことができます。

現在、次のタイプのモジュールがサポートされています。

  • Workshop
  • オブジェクトビュー
  • オブジェクトエクスプローラ
  • Notepad(読み取り専用)
  • 頂点探査
Navigation Workshop Events

アプリケーションまたはモジュールの開くタイプが選択されると(動的モジュールの場合、リソースセレクタを介してモジュールが選択される)、特定の変数が入力として選択されることができます。

Navigation Workshop Events Variable Navigation Workshop Events Variables List

Workshopモジュール内で設定されたイベントがトリガーされると、選択した変数の現在の値でナビゲーションアクションが構築され、新しいCarbonタブが開かれます。

Navigation Workshop Events

Slate

Carbonモジュールとして使用するSlateドキュメントの設定

Carbonは、Slateモジュールをインラインフレーム(iframe)で表示できます。Slateは、ドキュメントAPIを使用して、ドロップダウンで選択された値を覚えておくなど、ウィジェットの状態を保持します。

Slateウィジェットの状態を保持するには、CarbonとSlateモジュール間の通信が必要です。ユーザーがCarbon内のSlateモジュールから移動すると、CarbonはSlateモジュールのiframeにPOSTメッセージを送信し、基本的なSlateドキュメントに状態を保存し、対応する識別子をCarbonに報告するように通知します。この識別子はCarbonモジュールパラメータに変換されます。SlateモジュールがCarbonからのPOSTメッセージを理解し、ナビゲーション中に正常に状態を保存するためには、モジュールをバックアップするSlateドキュメントに以下に示す2つの小さなイベントを追加する必要があります。

Carbonのリクエストに応じてビューを保存するイベント

Copied!
1 2 3 4 5 6 7 8 Event: slate.getMessage Action: slate.saveView # 「slEventValue」から「type」を取得 const type = {{slEventValue}}['type']; # もし「type」が "carbon-save-view-request" でなければ、アクションを無効にする if (type !== "carbon-save-view-request") { return {{slDisableAction}}; }

Carbonのリクエストに基づいてビューを保存するイベント

保存したビューの識別子をiframeの親(Carbon)にメッセージするイベント

Copied!
1 2 3 4 5 6 Event: slate.viewSaved # イベント:スレートが保存されたビュー Action: slate.sendMessage # アクション:スレートからメッセージを送る return { type: "viewSaved", # 型:保存されたビュー payload: {{slEventValue}} # ペイロード:スレートイベントの値 };

iframeの親へ保存したビュー識別子をメッセージするイベント (Carbon)

Slate変数とCarbonパラメーター

Slateモジュール入力ではSlate変数を使用し、これらはCarbonモジュールのパラメーターに変換されて、メニューバーアイテムなどのCarbon機能を指定します。次のセクションでは、Slate変数をCarbonが受け入れる形式に変換して型付けする方法について詳しく説明します。

Slate変数:

Navigation Slate variables

Slateメニューバーアイテム:

Navigation Slate menu bar item

Slateパラメーター

Navigation Slate parameters passed

Slate変数のCarbonパラメータータイプ決定

Slate変数は型がなく、特定の変数が文字列、数値、またはオブジェクトであることを宣言するメカニズムはありません。そのため、Carbonは変数のデフォルト値をチェックしてそのタイプを決定します。上記のスクリーンショットでは、v_var3はデフォルト値としてオブジェクトRIDを持っています。これにより、対応するCarbonパラメーターの値としてオブジェクトを指定することができます。あなたのSlateドキュメントの変数にデフォルト値を持たせることが適切でない場合、Carbonが自動的に型付けを行う2つの変数名があります:

Copied!
1 2 v_objectSetPassedFromCarbon # Carbonから渡されるobjectSetとして自動的に型指定されます。 v_objectPassedFromCarbon # Carbonから渡されるobjectとして自動的に型指定されます。

Slateドキュメントで定義されている場合、これらの変数はデフォルト値に関係なく、上記のように常に型付けされます。これは、Slateモジュールを発見可能にし、オブジェクトの選択肢(または単一のオブジェクト)を別のモジュールやObject ExplorerのようなアプリケーションからCarbonのパラメーターを通じてモジュールに渡したい場合に特に役立ちます。

Navigation Slate open in

Slate:モジュールディスカバリーによる入力

Slateモジュールは、単一のオブジェクトまたは単一のオブジェクトセット(バージョン管理されているかどうか)を入力としてサポートします。Slateドキュメントの変数がCarbonパラメーターとして解釈されることを確認することが重要で、そうでなければ対応するナビゲーションアクションは利用できません。

Slate:UI要素による入力

現在、別のSlateモジュール以外のUI要素からSlateモジュールへの移動をサポートしていません(以下のOutputセクションを参照)。

Slate:出力

Slateモジュールは特定の方法でナビゲーションフレームワークと統合されています。Slateドキュメントでナビゲーションが発生すると(例えば、リンクをクリックすると)、Carbonはそのナビゲーションを妨害し、解釈しようとします。ナビゲーションが発生したアドレスがスタンドアロンのフロントエンドアプリケーションとして認識でき、そのアプリケーションに対応するCarbonモジュールがある場合、そのモジュールは新しいCarbonタブで開かれます。例えば:

  • リンクworkspace/hubble/objects/ri.phonograph2-objects.main.object.4202d614-bb6e-471d-80d2-2cf9c735caf3は、Object ViewモジュールをオブジェクトRIDri.phonograph2-objects.main.object.4202d614-bb6e-471d-80d2-2cf9c735caf3で開くと解釈されます。
  • リンクworkspace/module/view/latest/ri.workshop.main.module.25b772f5-a095-48c6-a889-a960eeb93ce1?orderInput=ri.object-set.main.object-set.63417288-3e8d-4b34-a995-d6c2c6054e27は、WorkshopモジュールをモジュールRIDri.workshop.main.module.a1838b32-448d-43f6-beff-3c9e40a34929とパラメーターorderInputri.object-set.main.object-set.63417288-3e8d-4b34-a995-d6c2c6054e27と等しい状態で開くと解釈されます。
  • リンクworkspace/slate/documents/another-slate-docは、Slate permalink another-slate-docに対応するモジュールRIDを持つSlateモジュールを開くと解釈されます。
  • リンクworkspace/quiver/template/view/ri.quiver.main.artifact.b5597828-d4a2-4fec-964f-304a3ad7f1a9は、Quiver TemplateモジュールをモジュールRIDri.quiver.main.artifact.b5597828-d4a2-4fec-964f-304a3ad7f1a9で開くと解釈されます。
  • リンクworkspace/hubble/exploration/saved/ri.object-set.main.versioned-object-set.ba21a7b3-3407-4bb1-ae9f-aae3d70c4a40は、Object ExplorerモジュールをオブジェクトセットRIDri.object-set.main.versioned-object-set.ba21a7b3-3407-4bb1-ae9f-aae3d70c4a40で開くと解釈されます。

したがって、Slateモジュールの出力はSlateドキュメント内のウィジェットの状態に基づいているわけではなく、各ナビゲーションアクションはユーザーのアクションの結果であり、出力はそのアクションに基づいて決定されます。

Slateモジュールのネストされたiframeからのナビゲーション

Slateには、ドキュメント内にiframeを埋め込む機能があります。そのようなiframe内のリンクを介した任意のナビゲーションは、次のカテゴリーのいずれかに該当します:

  • iframe内部でナビゲーションが発生する: iframe自体がソースURLを変更します。たとえば、iframeはコンテンツの変更をiframe内部に保持するサブビューと見なされることがあります。
  • iframe外部でナビゲーションが発生する: iframe内のリンクがクリックされると、新しいCarbonタブが開きます。例えば、iframe内のリンクがオブジェクトを指している場合、リンクをクリックするとそのオブジェクトが新しいタブで開きます。

後者の場合、Slateモジュールのoutputセクションで説明されているメカニズムが有効になるためには、ネストされたiframe内のリンクは、最も外側のSlate iframe(CarbonがトップレベルのSlateモジュールを表示するもの)をそのtargetとして指定する必要があります。Carbonはそのiframeの名前をcarbon-navigation-targetと設定します。リンクのHTMLスニペットの例は以下の通りです:

<a
  href="/workspace/hubble/objects/ri.phonograph2-objects.main.object.4202d614-bb6e-471d-80d2-2cf9c735caf3"
  target="carbon-navigation-target"
>
  <!-- target="carbon-navigation-target" を持つオブジェクトへのリンク -->
  Link to an object with target="carbon-navigation-target"
</a>

この方法は、iframe のネスティング深度に関係なく正しく機能します。例えば、Carbon によって作成されたトップレベルの Slate モジュール iframe の中に二つ目の iframe を埋め込み、その中にさらに三つ目の iframe を埋め込むことができます。

二重ネストした iframe からのナビゲーション

Quiver

Quiver の作成物の中で、Quiver テンプレートのみが Carbon モジュールとして使用できます。テンプレートと分析の違いやテンプレートの作成方法については、Quiver のドキュメンテーションでテンプレートを作成し、埋め込むを参照してください。

Quiver テンプレートは、オブジェクトテンプレートまたはオブジェクトセットテンプレートのいずれかになることができます。

どちらの場合でも、テンプレートの基本として選択するオブジェクトタイプが必要です。これは、パラメーター(オブジェクトまたはオブジェクトセット)がテンプレートにパイプされるたびに、すべての定義済みの変換がうまく機能することを保証するためです(例えば、同じオブジェクトプロパティとオントロジーリンクが常に考慮されます)。

Navigation Quiver pick type

その結果、テンプレートが基づくオブジェクトタイプは、可能な入力に対する 制約 に変換されます。制約が Quiver モジュールへのナビゲーションアクションの利用可能性にどのように影響するかの詳細については、モジュールの発見または Carbon ワークスペース内での統合モジュールの使用を参照してください。

例えば、Single Aisle Aircrafts テンプレートが Aircraft オブジェクトタイプに基づいているとします。

Quiver テンプレートの例

ナビゲーションアクションの推測された制約は、オブジェクトセットの入力は Aircraft オブジェクトのみを含む必要があるというものです。Carbon ワークスペースでは、Single Aisle Aircrafts モジュールは 設定の Discoverable Modules セクションに追加されます。

Object Explorer モジュールで Aircraft オブジェクトタイプの結果セットを調査すると、アクションの制約が満たされているため(オブジェクトセットが Aircraft タイプのオブジェクトを含むため)、ナビゲーションアクションが Open in メニューに表示されます。

Navigation Quiver action discovered

Object Explorer モジュールで Order オブジェクトタイプの結果セットを調査すると、オブジェクトセットが Aircraft とは異なるタイプのオブジェクトを含み、ナビゲーションアクションの制約が満たされていないため、ナビゲーションアクションは Open in メニューに表示されません。

Navigation Quiver action not discovered

Quiver: モジュール発見を通じた入力

空でない Quiver テンプレートモジュールは、前のセクションで説明したように、発見可能に設定することができます。

Quiver: UI 要素を通じた入力

現在、動的 モジュールの中で、Quiver テンプレートモジュールは Slate の UI 要素から開くことができます。Slate モジュールでは、通常の HTML リンクを通じた単独の Quiver アプリケーションへのナビゲーションは Carbon によって妨げられ、代わりに新しい Quiver テンプレートモジュールが開かれます。詳細については、Slate モジュールのドキュメンテーションを参照してください。

Navigation Quiver Slate input

Quiver: 出力

Quiver テンプレートは、出力 側でナビゲーションフレームワークと非常に基本的な統合を提供します。カードに表示される各オブジェクトは、ポップオーバーで調査することができ、そこから Object View へのナビゲーションアクションをトリガーすることができます。

Navigation Quiver Object View output