2

TabbedPanel の Wicket の例のページ (リンク) では、各タブ (TabPanel1、TabPanel2、および TabPanel3) に個別の個別のクラスを使用しています。同じクラスの 3 つのインスタンスを使用しない理由はありますか? はいの場合、それは何ですか? 私はまだ Wicket にかなり慣れていませんが、これらのクラスは私と同じように見えます。

編集: すべてクラス tabPanel の 3 つのオブジェクトを使用して、簡単な例を実行しました。それぞれが異なるラベルを使用するように設定されており、適切に表示されました。

もう一度編集: さらに実験を行い、後で投稿された回答を読んだ後、最初の例が単純すぎることに気付きました。1 つのクラスを使用すると、タブのタイトルが異なる場合がありますが、ロジックは同じです。誰かが言ったように、それが「スイス アーミー ナイフ」クラスにならなければうまくいかないでしょう。それでも、マークアップ ファイルには対処できません。

4

3 に答える 3

2

Wicket は、再利用可能なコンポーネントの開発を促進するように設計されています。3 つの異なるクラスを、まったく異なる動作とコンテンツを持つアプリケーションの異なるページで使用する異なるコンポーネントと考えてください。連絡先情報については Tab1、地図については Tab2、写真については Tab3 と言ってください。これらのさまざまな目的をすべて管理するために、Swiss-Army-Knife-Panel を作成したくはありません。そのため、この例ではさまざまなパネル クラスが使用されています。

確かに、この例では最適な値が使用されていませんが、wicket-extension のこれらの特別なコンポーネントではなく、 wicket の一般原則 (モデルの操作方法を学ぶ際には特に注意してください) から始める方が良いでしょう。パッケージ。

于 2009-10-21T14:08:46.197 に答える
1

同じクラスの 3 つのインスタンスを使用すると、各タブに同じコンテンツが表示されることになります...あまり役に立ちませんか?

于 2009-10-16T18:22:21.797 に答える
0

あなたが示したように、それは可能であり、パネルの表示がモデルによって制御されている場合にうまく機能します。

場所の Google マップ画像が埋め込まれた、表示およびアドレス指定するコンポーネントがあるとします。

同じ「AddressWithMapPanel」の 3 つのインスタンスを作成して、それぞれに異なるモデルを渡し、各テーブルを「ホーム」、「職場」、「その他」のアドレスにすることができます。次に、タブ ロジックを使用して、異なるアドレスの表示を切り替え、同じ UI の変更を中央の場所に保持しながら、異なるコンテンツを取得できます。

于 2009-10-23T06:00:32.773 に答える