0

UiBinder を使用して GWT CellBrowser ウィジェットにカスタム スタイルを設定しようとしていますが、依存するスタイルを変更できません (つまり、ウィジェット全体に別の背景色を設定できますが、スタイルを変更する方法がわかりません)。選択したアイテム)

このフォーラムで他のウィジェットに提案されているように「@external」を使用してみましたが (たとえば、hereまたはhere )、効果はありませんでした。CellBrowser でスタイルを指定する方法が原因だと思います。

私が取るべきアプローチはhttp://crazygui.wordpress.com/2011/11/01/how-to-skin-a-gwt-celltable/にもっと似ているはずだと思います。私が使用しているCellTableの代わりにCellBrowserにコードを適応させる:

@UiField (provided=true) CellBrowser cellbrowser;
interface CellBrowserCompanyUiBinder extends UiBinder<Widget, CellBrowserCompany> {}

public CellBrowserCompany() {

    TreeViewModel tvm = new TreeViewModelImpl();        
    CellBrowser.Resources reso = GWT.create(CellBrowsRes.class);

    cellbrowser = new CellBrowser(tvm, null, reso);
    cellbrowser.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);

    initWidget(uiBinder.createAndBindUi(this));
}
public interface CellBrowsRes extends CellBrowser.Resources{
    @Source({CellBrowser.Style.DEFAULT_CSS, "path/to/css.css"})
    BrowserStyle cellbrowserstyle();

    interface BrowserStyle extends CellBrowser.Style{}
}

GWT SDKの CSS ファイルを参照として使用しています。

私が持っている ui.xml ファイルの < g:HTMLPanel> タグ内:

<c:CellBrowser ui:field="cellbrowser" width="100%" height="100%"/>

「CellBrosRes」を使用しない場合、コードは正常に機能します。したがって、CellBrowser を作成する行を次の行に置き換えると機能します。

CellBrowser browser = new CellBrowser(tvm, null);

「CellBrosRes」を使用すると、私のスタイルが無視されます。スタイル リソースの作成方法に問題があると思います。

これを機能させる方法についての助けをいただければ幸いです。追加の詳細が必要な場合、または何かが十分に明確でない場合はお知らせください。

ありがとう

4

2 に答える 2

1

もう少し苦労した後、独自のウィジェットを作成することにしました。それは間違いなく改善される可能性があり、提案を聞きたいと思っていますが、今ではそれが私が使用しているものです.

これは構造です: CellBrowser > CellPanel[] > Cell[]

  • CellBrowser ウィジェットはセル配列で初期化されます。

  • これらのセルは、最初の CellPanel に配置されます。各セルに対して、表示するウィジェットと、その子を含むセルパネルを設定できます。

全体でいくつかのファイルを使用するため、コードをGoogleコードプロジェクトとしてアップロードしました

于 2012-02-12T01:28:56.787 に答える
0

CellBrowser を拡張し、デフォルトの css を変更できます。

public class CustomCellBrowser extends CellBrowser {

/**
 * The resources applied to the table.
 */
interface CellResources extends CellBrowser.Resources {
    @Source({CellBrowser.Style.DEFAULT_CSS, "CustomCellBrowser.css"})
    CellBrowser.Style cellBrowserStyle();
}

public <T> CustomCellBrowser(TreeViewModel viewModel, T rootValue) {
    super(viewModel, rootValue, (CellBrowser.Resources) GWT.create(CellResources.class));
}

}

ここでデフォルトの CSS のコピーを取得して変更します

これが役立つことを願っています

于 2012-05-03T14:12:42.527 に答える