共通項目
本節では、全コンポーネントに共通する仕様について説明します。
プロパティの表示
ワークフロー作成用エリアに表示されているコンポーネントをシングルクリックすると、そのコンポーネントの設定値(プロパティ)を編集する領域が表示されます。 設定された値は、一部項目を除いてこの領域を閉じた時点で保存されます。
コンポーネントの種類毎にこの領域に表示される内容は異なります。

| 構成要素 | 説明 | |
|---|---|---|
| 1 | close ボタン | 変更を破棄しプロパティ表示を閉じます |
| 2 | disableスイッチ | コンポーネント(もしあれば下位コンポーネントも)を無効化します |
| 3 | 詳細表示 ボタン | プロパティの設定項目の表示/非表示をグループ毎に切り替えます |
コンポーネントの右クリックメニュー
コンポーネントを右クリックすると、コンテキストメニューが表示され、以下の操作が可能です。
- コピー: コンポーネントをコピーします
- カット: コンポーネントをカットします
- 削除: コンポーネントを削除します(確認ダイアログが表示されます)
- エクスポート: コンポーネントとその下位コンポーネントをアーカイブファイル(.tgz)としてエクスポートします
- クリーン: コンポーネントの状態を最新の保存状態に巻き戻します
コンポーネントのインポート・エクスポート
WHEELでは、個別のコンポーネント(およびその下位コンポーネント)をアーカイブファイルとしてエクスポートし、他のワークフローにインポートする機能を提供しています。この機能は以下のような用途に便利です。
- 異なるプロジェクト間でコンポーネント構成を再利用
- ワークフローコンポーネントを他のユーザーと共有
- よく使われるコンポーネントパターンのライブラリを作成
- ワークフローの特定のセクションをバックアップ
コンポーネントのエクスポート
コンポーネントをエクスポートするには:
- ワークフロー作成用エリアでエクスポートしたいコンポーネントを右クリックします
- コンテキストメニューから エクスポート を選択します
.tgzアーカイブファイルが自動的にブラウザのダウンロードフォルダにダウンロードされます- ファイル名は
WHEEL_component_<コンポーネントID>.tgzという形式になります - アーカイブにはそのコンポーネントとすべての下位コンポーネントが含まれます
- ファイル名は
エクスポートされるもの
- コンポーネント設定(component.wheel.jsonファイル)
- コンポーネント内のすべてのファイルとディレクトリ
- すべての下位(子)コンポーネント(再帰的に)
- コンポーネントの状態は “not-started” にリセットされます
- コンポーネント間のリンク(接続)は削除されます(どのワークフローにもインポートできるようにするため)
エクスポートされないもの
- Gitメタデータ(.gitディレクトリ)
- コミットされていない変更(コミット済みのファイルのみが含まれます)
- 他のコンポーネントへのリンク接続
- 親子関係(インポート時に再作成されます)
コンポーネントのインポート
コンポーネントをインポートするには:
- コンポーネントをインポートしたいワークフローを開きます
- コンポーネントを配置したい階層に移動します
- ワークフロー作成用エリアの背景(コンポーネントが無い部分)を右クリックします
- コンテキストメニューから インポート を選択します
- コンポーネントのインポートダイアログで、コンポーネントアーカイブファイル(.tgz)を選択またはドロップします
- ok をクリックしてコンポーネントをインポートします
インポートされたコンポーネントは、右クリックした位置に配置されます。
インポート時の動作
- インポートされたコンポーネントとすべての下位コンポーネントに対して、新しい一意のIDが生成されます
- ターゲット位置に同じ名前のコンポーネントが既に存在する場合、競合を避けるために自動的に接尾辞(_imported、_imported2 など)が追加されます
- コンポーネントは、現在表示されているコンポーネントの子として配置されます
- コンポーネントの状態は “not-started” にリセットされます
- 右クリックした位置によってインポートされるコンポーネントの位置を指定できます
- 変更はgitにステージされますが、コミットはされません(プロジェクトを保存する必要があります)
コンポーネント名の競合 コンポーネントをインポートする際、ターゲットの階層に同じ名前のコンポーネントが既に存在する場合、WHEELは自動的にインポートされたコンポーネントの名前を変更して接尾辞を追加します:
- 最初の競合:
componentName_imported - 2回目の競合:
componentName_imported2 - 3回目の競合:
componentName_imported3、以降同様
これにより、各コンポーネントが階層内で一意の名前を持つことが保証されます。
name, description
全てのコンポーネントは共通して、name プロパティと description プロパティを持ちます。

name
nameには、コンポーネントの名前を入力します。 name値は、そのコンポーネントに必要なファイルを格納するディレクトリ名として扱われるため、同一階層に同じ名前のコンポーネントを作成することはできません。
使用できる文字について
nameとして使用できる文字は、英数字、-(ハイフン)、および_(アンダーバー)のみです。
description
descriptionにはnameのような制約が無く、自由に内容を記述することができます。 nameのみでは識別し難いコンポーネントを区別したり、コンポーネントの処理内容を説明する(スクリプトやソースコードにおける)コメントのような使い方をしたりすることができます。
input files, output files
WHEELには、コンポーネント内のファイルを別のコンポーネントで使うために転送する機能があります。 この機能には、input filesプロパティとoutput filesプロパティを用います。

ファイルの転送方法
あるコンポーネントのoutput filesに指定したファイルと、別のコンポーネントのinput filesに指定したファイルを画面上で接続します。 すると、後続コンポーネントにおいて、まず先行コンポーネントのディレクトリ内の必要なファイルに対してシンボリックリンクがinput filesで指定されたファイル名で作成され、スクリプトが実行されます。 そのため、後続コンポーネント内のスクリプトからも、先行コンポーネントのファイルにアクセス可能となります。
なお、for,foreach,whileコンポーネントの内部にあるコンポーネント内では、次のループの処理を行なうタイミングで作成されたシンボリックリンクも含めて実体ファイルがコピーされます。このため、これらのコンポーネントがinputFileとして受け取ったものは2回目以降のループではシンボリックリンクではなくコピーされたファイル、ディレクトリとなります。

input filesとoutput filesの指定方法によって、それぞれ次のような挙動を示します。
output filesが通常のパスで、input filesが空白のとき
output filesに指定されたファイルまたはディレクトリへのシンボリックリンクが、後続コンポーネントの最上位ディレクトリに作成されます。
output filesが通常のパスで、input filesが’/’で終わらない文字列のとき
後続コンポーネントのディレクトリ内に、output filesで指定されたファイルまたはディレクトリへのシンボリックリンクが作成されます。 シンボリックリンク名は、input filesに指定された名前です。
output filesがglob(*や\?など)を含むパスで、input filesが’/’で終わらない文字列のとき
後続コンポーネントのディレクトリ内に、input filesに指定された文字列のディレクトリが作成されます。 その中に、output filesで指定されたglobと一致するファイルやディレクトリへのシンボリックリンクが作成されます。
input filesが’/’で終わる文字列のとき
後続コンポーネントのディレクトリ内に、input filesに指定された文字列のディレクトリが作成されます。 その中に、output filesに指定されたファイルやディレクトリへのシンボリックリンクが作成されます。
転送対象ファイル・フォルダの設定
転送対象ファイル・フォルダを設定する方法は、input files および output filesで共通となります。
追加方法
転送対象ファイル・フォルダを追加する場合は、テキストボックスにファイル名またはディレクトリ名を入力し、+ ボタンをクリックします。

削除方法
設定した転送対象ファイル・フォルダを削除する場合は、ファイル名またはディレクトリ名の右に表示された ゴミ箱 ボタンをクリックします。

ファイル操作エリア
Filesグループの ∨(詳細表示) ボタンをクリックすると、ファイル操作エリアが表示されます。

| 構成要素 | 説明 | |
|---|---|---|
| 1 | ファイル操作ボタンエリア | コンポーネント内のファイル、ディレクトリを操作するボタンが表示されます。詳細は、後述(ファイル操作ボタンエリア) |
| 2 | ファイル表示エリア | コンポーネント内のファイル、ディレクトリをツリー形式で表示します |
| 3 | closeボタン | ファイル操作エリアの表示/非表示を切り替えます |
ファイル表示エリアには、選択中のコンポーネントディレクトリ以下に存在するファイルやディレクトリのうち、WHEELが使うメタデータファイルや下位コンポーネントのディレクトリ以外のものが表示されます。
ディレクトリおよびディレクトリへのシンボリックリンクの左側に表示されている▶アイコンをクリックすることで、さらにそのディレクトリ内のファイル等を表示することができます。
連番を持つファイルやディレクトリの表示について
ファイルやディレクトリのうち、連番で構成されるもの(例えば、file1, file2, file3)が表示対象に含まれているときは、図中のseq_dir*やseq_file*のように1行でまとめて表示されます。
ただし、後述の新規ファイル、ディレクトリ作成機能を用いて連番となるファイルやディレクトリを作成した場合は、1回プロパティ画面を閉じるかリロードするまで、連番表示ではなく、個別にファイル、ディレクトリが表示されます。
既に連番表示されているファイル、ディレクトリと同じ形式の名前のファイル、ディレクトリを新規に作成した場合も同様です。
これらの行の左側に表示されている▶アイコンをクリックすると、ディレクトリと同じような形で元の連番ファイルやディレクトリが個々に表示されます。
ファイル表示エリアにクライアントPCのファイルをドロップすると、コンポーネントディレクトリの直下にファイルをアップロードすることができます。
ファイル操作ボタンエリア
ファイル操作エリア上部には、ファイルの操作を行うためのボタンが並んで表示されています。

| 構成要素 | 説明 | |
|---|---|---|
| 1 | new folder ボタン | 表示されている階層に新規ディレクトリを作成します |
| 2 | new file ボタン | 表示されている階層に新規の空ファイルを作成します |
| 3 | rename ボタン | 選択中のファイル、ディレクトリ等をリネームします |
| 4 | delete ボタン | 選択中のファイル、ディレクトリ等を削除します |
| 5 | upload file ボタン | 表示されている階層にファイルをアップロードします |
| 6 | download ボタン | 選択中のファイル、ディレクトリをダウンロードします |
| 7 | share file ボタン | 選択中のファイル、ディレクトリのパスを表示します |
| 8 | edit file ボタン | 選択中のファイルをテキストエディタで編集します |
選択中のファイル、ディレクトリを操作対象とするボタンについて 選択中のファイル、ディレクトリを操作対象とする操作は、非対応の時はボタンが無効化されます。 そのため、クリックしても動作しません。
共有ボタンをクリックすると、次のようなダイアログが表示されます。

表示されているパスの右にあるアイコンをクリックすると、クリップボードにコピーされるので別のアプリへファイルを渡す時などにお使いください。
例えば、jupyterlabであれば、http(s)://<server:port>/<lab-location>/lab/tree/path/to/notebook.ipynb といった形式で指定したipynbファイルを開くことができます。
ただし、WHEELからコピーされるファイルは絶対パスですが、ここで指定するパス(path/to/notebook.ipynb)はワークスペースのrootからの相対パスである必要があります。
詳細は、jupyterlabのドキュメントをご参照ください。