/ / GWT: Wie ändere ich die Zeilenschrift in GWT Celltable? - Java, Eclipse, GWT, Eclipse-RCP

GWT: Wie ändert man Zeilenschrift in GWT Celltable? - Java, Eclipse, Gwt, Eclipse-RCP

Ich habe eine Liste der Schriftarten in der Array-Liste, die ich hinzufügeDiese Schriftarten werden in die Zelltabelle (GWT) geschrieben, die vollständige Liste zeigt jedoch nur die Standardschriftart an. Aber meine Anforderung ist, wenn der Schriftartenname "Arial" ist, sollte dieser Name mit der Schriftart "Arial" angezeigt werden, und wenn der Schriftartenname "Calibri" ist, sollte dieser Name mit der Schriftart "Calibri" angezeigt werden, wie auch die übrigen Schriftarten. Wie kann ich diese Schriftartenliste in "Kombinationsfeld" mit "Zelltabelle" anzeigen.

Antworten:

0 für die Antwort № 1

Zellen in GWT können einen benutzerdefinierten Renderer haben. Weitere Informationen finden Sie in diesem Beispiel. Ich habe versucht, es so einfach wie möglich zu halten:

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);
}
}