Do you have an example posted of a SDK 2 app that adds an entry to its "Gear" menu and allows the user to save settings to a preference object via a dialog window?
2 に答える
結局、ExtJSCookieProviderを使用してアプリの状態を保存しました。Cookieを使用することで、設定はユーザーごとになり、プロジェクトごとにも設定しました。Appクラス内の私のコードは次のようになります。
...
sessionKey: function() {
return (this.getContext().get('appID') || 'MyAppName') + ':' + this.getContext().getProject()._ref;
},
session: function() {
if (!this.state)
this.state = Ext.state.Manager.get(this.sessionKey()) || {};
return this.state;
},
saveSession: function(newState) {
var session = this.session();
Ext.apply(session, newState);
Ext.state.Manager.set(this.sessionKey(), session);
},
launch: function() {
Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider'));
...
これを使用するには、this.session()を呼び出して状態を取得し、saveSession()を呼び出して状態をマージし直します。
開発モードでも動作します。Chrome(および他のブラウザ?)は、指示しない限り、file://モードでCookieを保存しないことに注意してください。
簡単に言えば、現時点ではそれは不可能です。
ユーザーがカスタム アプリ内から設定を操作できるようにする最善の方法を見つけようとしています。各アプリは IFrame 内でサンドボックス化されているため、アプリ コードはギア メニューと対話できません (フレームの外側にあるため)。
将来的には、カスタム アプリと Rally アプリが統一された方法で設定と対話する方法を検討しています。
設定を保存する場合は、Appオブジェクトのドキュメントを参照してください。SDK の 2.0p2 バージョンでは、アプリの設定を管理するのに役立ついくつかの機能を追加しました。現在、すべてのカスタム アプリは、設定にアクセスするための独自のインターフェイスを提供する必要があります。