0

PopupPanel;を使用して特定の要素のコンテキスト メニューを作成しています。メニュー自体はかなり大きく複雑になります。私が探しているのは、ボタンのリストに加えて、クリックされた要素に関連する画像とテキストを用意することです。

私の問題は、クリックした要素のすぐ下にボタンを常に表示したいということです。これはユーザーにとって便利だからです。問題は、PopupPanelが画面の端に近づくと、完全に表示されるように位置が自動的に変更され、通常のように左側が要素に揃えられないことです。この動作は気に入っていますが、ボタンの位置が離れてしまいます

だから私がしたいのは、通常、ボタンはパネルの左側にあり、他のものは右側にあります。パネルが画面の右側に近い場合、代わりにボタンを右側 (つまり、クリックされた要素の下) に配置し、他のものを左側に配置したいと考えています。

CSSのみを使用して、GWTまたはさらに良い方法でこれを行う賢い方法はありますか? PopupPanel悲しいことに、いつ反転するかはわかりません。私が現在持っている唯一の解決策は、ポップアップを表示する前にポップアップの位置と幅を手動で確認し、それに応じて調整することですが、より良い解決策があることを願っています.

4

1 に答える 1

0

これが私が提案するものです(同様のユースケースの私自身の実装に基づいています):

  • 位置コールバックの実装に、(コンストラクターで) の参照を受け入れるようにします。
    • PopupPanel 要素
    • ユーザーが右クリックした要素
    • PopupPanel に入れたコンテンツ
  • レプリケート (これは DRY ではないことはわかっていますが、実装はパッケージ プライベートです) デフォルト ポジション コールバックからのコード
  • 右側に開くと、コンテンツのレイアウトを変更するメソッドが呼び出されます (CSS ベースまたはその他)。

お役に立てば幸いです。より良いものを見つけたら、私に知らせてください。

于 2013-07-29T17:14:52.990 に答える