簡體   English   中英

GWT:如何更改GWT Celltable中的行字體?

[英]GWT:how to change row font in GWT Celltable?

我在“數組列表”中有字體列表,我正在將該字體添加到單元格表(GWT)中,但是完整列表僅顯示默認字體。 但是我的要求是,如果字體名稱為“ Arial”,則該名稱應顯示為“ Arial”字體;如果字體名稱為“ Calibri”,則該名稱應顯示為“ Calibri”字體,其余字體也應如此。 如何在“組合框”和“單元格表”中顯示字體列表。

GWT中的單元可以具有自定義渲染器。 請參考此示例以獲取詳細信息-我試圖使其盡可能簡單:

public class Sample implements EntryPoint {

    private static final Templates T = GWT.create(Templates.class);

    public interface Templates extends SafeHtmlTemplates {
        @Template("<span style='{0}'>{1}</span>")
        SafeHtml fontName(SafeStyles styles, String name);
    }

    static class Font {
        String name;
        public Font(String name) {
            this.name = name;
        }
    }

    class FontCell extends AbstractCell<Font> implements Cell<Font> {
        @Override
        public void render(Context context, Font font, SafeHtmlBuilder sb) {
            sb.append(T.fontName(SafeStylesUtils.fromTrustedNameAndValue("font-family", font.name), font.name));
        }
    }

    class FontColumn extends Column<Font, Font> {
        public FontColumn() {
            super(new FontCell());
        }

        @Override
        public Font getValue(Font object) {
            return object;
        }
    }

    private static List<Font> fonts = Arrays.asList(
            new Font("Arial"),
            new Font("Courier New"),
            new Font("Tahoma"),
            new Font("Verdana"));

    public void onModuleLoad() {
        CellTable<Font> cellTable = new CellTable<Font>();
        cellTable.addColumn(new FontColumn(), "Font");
        new ListDataProvider<Font>(fonts).addDataDisplay(cellTable);
        RootPanel.get().add(cellTable);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM