GWT - Widget FormPanel
introduzione
Il FormPanel widget rappresenta un pannello che racchiude i suoi contenuti in un elemento HTML <FORM>.
Dichiarazione di classe
Di seguito è riportata la dichiarazione per com.google.gwt.user.client.ui.FormPanel classe -
public class FormPanel
extends SimplePanel
implements FiresFormEvents,
com.google.gwt.user.client.ui.impl.FormPanelImplHost
Costruttori di classi
Sr.No. | Costruttore e descrizione |
---|---|
1 | FormPanel() Crea un nuovo FormPanel. |
2 | protected FormPanel(Element element) Questo costruttore può essere utilizzato dalle sottoclassi per utilizzare esplicitamente un elemento esistente. |
3 | protected FormPanel(Element element, boolean createIFrame) Questo costruttore può essere utilizzato dalle sottoclassi per utilizzare esplicitamente un elemento esistente. |
4 | FormPanel(NamedFrame frameTarget) Crea un FormPanel che ha come destinazione un NamedFrame. |
5 | FormPanel(java.lang.String target) Crea un nuovo FormPanel. |
Metodi di classe
Sr.No. | Nome e descrizione della funzione |
---|---|
1 | void add Form Handler (FormHandler handler) Deprecato. Utilizza add Submit Complete Handler (com.google.gwt.user.client.ui.Form Panel.Submit Complete Handler) e aggiungi invece Submit Handler (com.google.gwt.user.client.ui.Form Panel.Submit Handler) |
2 | Handler Registration addSubmit Complete Handler (FormPanel.SubmitCompleteHandler handler) Aggiunge un gestore di eventi completo FormPanel.Submit. |
3 | HandlerRegistration addSubmitHandler(FormPanel.SubmitHandler handler) Aggiunge un gestore FormPanel.SubmitEvent. |
4 | java.lang.String getAction() Ottiene l '"azione" associata a questo modulo. |
5 | java.lang.String getEncoding() Ottiene la codifica utilizzata per inviare questo modulo. |
6 | java.lang.String getMethod() Ottiene il metodo HTTP utilizzato per inviare questo modulo. |
7 | java.lang.String getTarget() Ottiene la "destinazione" del modulo. |
8 | protected void onAttach() Questo metodo viene chiamato quando un widget è allegato al documento del browser. |
9 | protected void onDetach() Questo metodo viene chiamato quando un widget viene scollegato dal documento del browser. |
10 | boolean onFormSubmit() Licenziato quando viene inviato un modulo. |
11 | void onFrameLoad() |
12 | void removeFormHandler(FormHandler handler) Deprecato. Usa il metodo HandlerRegistration.removeHandler () sull'oggetto restituito da e aggiungi invece il metodo * Handler |
13 | void reset() Reimposta il modulo, cancellando tutti i campi. |
14 | void setAction(java.lang.String url) Imposta l '"azione" associata a questo modulo. |
15 | void setEncoding(java.lang.String encodingType) Imposta la codifica utilizzata per inviare questo modulo. |
16 | void setMethod(java.lang.String method) Imposta il metodo HTTP utilizzato per inviare questo modulo. |
17 | void submit() Invia il modulo. |
18 | static FormPanel wrap(Element element) Crea un FormPanel che racchiude un elemento <form> esistente. |
19 | static FormPanel wrap(Element element, boolean createIFrame) Crea un FormPanel che racchiude un elemento <form> esistente. |
Metodi ereditati
Questa classe eredita i metodi dalle seguenti classi:
com.google.gwt.user.client.ui.UIObject
com.google.gwt.user.client.ui.Widget
com.google.gwt.user.client.ui.Panel
com.google.gwt.user.client.ui.SimplePanel
java.lang.Object
Esempio di widget FormPanel
Questo esempio ti guiderà attraverso semplici passaggi per mostrare l'utilizzo di un widget FormPanel in GWT. Segui i seguenti passaggi per aggiornare l'applicazione GWT che abbiamo creato in GWT - Capitolo Crea applicazione -
Passo | Descrizione |
---|---|
1 | Crea un progetto con un nome HelloWorld sotto un pacchetto com.tutorialspoint come spiegato nel capitolo GWT - Crea applicazione . |
2 | Modifica HelloWorld.gwt.xml , HelloWorld.css , HelloWorld.html e HelloWorld.java come spiegato di seguito. Mantieni il resto dei file invariato. |
3 | Compilare ed eseguire l'applicazione per verificare il risultato della logica implementata. |
Di seguito è riportato il contenuto del descrittore del modulo modificato src/com.tutorialspoint/HelloWorld.gwt.xml.
<?xml version = "1.0" encoding = "UTF-8"?>
<module rename-to = 'helloworld'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name = 'com.google.gwt.user.User'/>
<!-- Inherit the default GWT style sheet. -->
<inherits name = 'com.google.gwt.user.theme.clean.Clean'/>
<!-- Specify the app entry point class. -->
<entry-point class = 'com.tutorialspoint.client.HelloWorld'/>
<!-- Specify the paths for translatable code -->
<source path = 'client'/>
<source path = 'shared'/>
</module>
Di seguito è riportato il contenuto del file del foglio di stile modificato war/HelloWorld.css.
body {
text-align: center;
font-family: verdana, sans-serif;
}
h1 {
font-size: 2em;
font-weight: bold;
color: #777777;
margin: 40px 0px 70px;
text-align: center;
}
Di seguito è riportato il contenuto del file host HTML modificato war/HelloWorld.html.
<html>
<head>
<title>Hello World</title>
<link rel = "stylesheet" href = "HelloWorld.css"/>
<script language = "javascript" src = "helloworld/helloworld.nocache.js">
</script>
</head>
<body>
<h1>FormPanel Widget Demonstration</h1>
<div id = "gwtContainer"></div>
</body>
</html>
Cerchiamo di avere il seguente contenuto del file Java src/com.tutorialspoint/HelloWorld.java che dimostrerà l'uso del widget FormPanel.
package com.tutorialspoint.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DecoratorPanel;
import com.google.gwt.user.client.ui.FileUpload;
import com.google.gwt.user.client.ui.FormPanel;
import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
public class HelloWorld implements EntryPoint {
public void onModuleLoad() {
// Create a FormPanel and point it at a service.
final FormPanel form = new FormPanel();
form.setAction("/myFormHandler");
// Because we're going to add a FileUpload widget,
// we'll need to set the form to use the POST method,
// and multipart MIME encoding.
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
// Create a panel to hold all of the form widgets.
VerticalPanel panel = new VerticalPanel();
panel.setSpacing(10);
form.setWidget(panel);
// Create a TextBox, giving it a name so that it will be submitted.
final TextBox tb = new TextBox();
tb.setWidth("220");
tb.setName("textBoxFormElement");
panel.add(tb);
// Create a ListBox, giving it a name and
// some values to be associated with its options.
ListBox lb = new ListBox();
lb.setName("listBoxFormElement");
lb.addItem("item1", "item1");
lb.addItem("item2", "item2");
lb.addItem("item3", "item3");
lb.setWidth("220");
panel.add(lb);
// Create a FileUpload widget.
FileUpload upload = new FileUpload();
upload.setName("uploadFormElement");
panel.add(upload);
// Add a 'submit' button.
panel.add(new Button("Submit", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
form.submit();
}
}));
// Add an event handler to the form.
form.addSubmitHandler(new FormPanel.SubmitHandler() {
@Override
public void onSubmit(SubmitEvent event) {
// This event is fired just before the form is submitted.
// We can take this opportunity to perform validation.
if (tb.getText().length() == 0) {
Window.alert("The text box must not be empty");
event.cancel();
}
}
});
form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
@Override
public void onSubmitComplete(SubmitCompleteEvent event) {
// When the form submission is successfully completed,
// this event is fired. Assuming the service returned
// a response of type text/html, we can get the result
// here.
Window.alert(event.getResults());
}
});
DecoratorPanel decoratorPanel = new DecoratorPanel();
decoratorPanel.add(form);
// Add the widgets to the root panel.
RootPanel.get().add(decoratorPanel);
}
}
Una volta che sei pronto con tutte le modifiche apportate, compiliamo ed eseguiamo l'applicazione in modalità sviluppo come abbiamo fatto nel capitolo GWT - Crea applicazione . Se tutto va bene con la tua applicazione, questo produrrà il seguente risultato: