5.12. TUI アドオンの基本機能
Anaconda は、テキストベースのインターフェイス (TUI) にも対応しています。このインターフェイスは機能がさらに制限されていますが、一部のシステムでは、インタラクティブインストールの唯一の選択肢となる場合があります。テキストベースのインターフェイスとグラフィカルインターフェイスの違い、および TUI の制限に関する詳細は、Introduction to Anaconda and add-ons を参照してください。
テキストインターフェイスのサポートをアドオンに追加するには、Anaconda add-on structure の説明に従って、tui ディレクトリー内に新しいサブパッケージのセットを作成します。
インストーラーのテキストモードサポートは simpleline ライブラリーに基づいており、非常にシンプルなユーザーの対話のみを許可します。テキストモードインターフェイスは、
- カーソルの移動には対応していません。代わりに、ラインプリンターのように動作します。
- 視覚的機能拡張 (異なる色やフォントの使用など) はサポートしません。
内部的には、simpleline ツールキットには、App、UIScreen および Widget の 3 つの主要クラスがあります。ウィジェットは、画面に出力される情報が含まれるユニットです。これらは、App クラスの単一のインスタンスによって切り替えられる UIScreens に配置されます。基本的な要素に加え、hubs、spoke`s and `dialogs はすべて、グラフィカルインターフェイスと同じような方法でさまざまなウィジェットを含んでいます。
アドオンで最も重要なクラスは、NormalTUISpoke および pyanaconda.ui.tui.spokes パッケージで定義される他のさまざまなクラスです。これらのクラスはすべて TUIObject クラスをベースとしています。このクラス自体は、Add-on GUI advanced features で説明されている GUIObject クラスと同じものになります。各 TUI スポークは、NormalTUISpoke クラスを継承する Python クラスであり、API で定義される特別な引数とメソッドをオーバーライドします。テキストインターフェイスは GUI よりも簡単なため、引数は以下の 2 つのみになります。
-
title: GUI の title 引数と同様にスポークのタイトルを決定します。 -
category: スポークのカテゴリーを文字列として判別します。カテゴリー名はどこにも表示されず、グループ化にのみ使用されます。
TUI は GUI とは異なる方法でカテゴリーを処理します。既存のカテゴリーを新しいスポークに割り当てることが推奨されます。新しいカテゴリーを作成するには、Anaconda にパッチを適用する必要があり、ほとんどメリットがありません。
また、各スポークは、init、initialize、refresh、apply、execute、input、prompt、および properties (ready、complete、mandatory、status) メソッドをオーバーライドすることが想定されています。