2009-10-03 16 views
14

Ich habe eine leere gezeichnet. Hat GWT ein Widget, das das HTML P-Tag erzeugt?Hat GWT ein Absatz-Widget?

Ich möchte nur das P-Tag im DOM erscheinen, ohne irgendwelche externen DIV's.

Antwort

2

Wenn Sie einen Absatz-Widget benötigen, die andere Widgets enthalten kann, können Sie ein FlowPanel:

FlowPanel panel = new FlowPanel(ParagraphElement.TAG); 
panel.add(otherWidget); 

Die String-arg constructor ermöglicht die Verwendung eines beliebigen HTML-Tag, und da FlowPanelComplexPanel erstreckt, können Sie andere anhängen Widgets drin.

2

Haben Sie versucht HTMLPanel Widget?

+0

Ich glaube, dass HTMLPanel ein DIV-Element, kein P-Element rendert. – David

+2

HTMLPanel hat den Konstruktor HTMLPanel (String-Tag, String HTML), so kann es ein beliebiges Element sein –

16

GWT hat kein solches Widget. Aber Sie können einfach einen erstellen. Das SimplePanel verfügt über einen geschützten Konstruktor, der es ermöglicht, ein Panel mit einem beliebigen HTML-Tag zu erstellen. Um ein Bedienfeld mit dem P-Tag zu erstellen, einfach die Simple erweitern und erstellen Sie es mit Ihrem eigenen Konstruktor:

public class PPanel extends SimplePanel { 
    public PPanel() { 
     super(Document.get().createPElement()); 
    } 
    } 
+0

Danke für diese Antwort Hilbrand. Indem ich PPanel auch HasText implementieren lasse, habe ich die Lösung, nach der ich gesucht habe. – David

+0

Wie bei der Aktualisierung mit dem aktuellen GWT wäre nun der 'Super'-Konstruktoraufruf:' super (DOM.createElement ("p")); ' – checketts

+0

@checketts Eigentlich ist die' DOM'-Klasse im alten Stil GWT. –

2

Nicht Hilbrand Bouwkamp Antwort zu untergraben, weil es ist, wo ich meine, abgeleitet von, ich glaube, eine möglicherweise nützlichere Version davon ist eine, die eine Zeichenfolge im Konstruktor nimmt. Hilbrand, wenn du das einfach zu deiner Antwort hinzufügen willst, fühle dich frei und ich werde diese Antwort löschen.

public class PPanel extends SimplePanel { 
    public PPanel() { 
     super(Document.get().createPElement()); 
    } 

    public PPanel(String string) { 
     super(Document.get().createPElement()); 
     getElement().setInnerText(string); 
    } 
} 

Auf diese Weise, anstatt rufen zu müssen:

PPanel panel = new PPanel(); 
panel.getElement().setInnerText("Text Here"); 

Wir haben einfach anrufen:

PPanel panel = new PPanel("Text Here"); 
0

GWT hat nun die PreElement zusammen mit allen anderen Elementen in ähnlicher Weise .