GWT - Widget DialogBox
introduzione
Il DialogBoxwidget rappresenta una forma di popup che ha un'area didascalia in alto e può essere trascinata dall'utente. A differenza di PopupPanel, le chiamate a PopupPanel.setWidth (String) e PopupPanel.setHeight (String) imposteranno la larghezza e l'altezza della finestra di dialogo stessa, anche se un widget non è stato ancora aggiunto.
Dichiarazione di classe
Di seguito è riportata la dichiarazione per com.google.gwt.user.client.ui.DialogBox classe -
public class DialogBox
extends DecoratedPopupPanel
implements HasHTML, HasSafeHtml, MouseListener
Costruttori di classi
Sr.No. | Costruttore e descrizione |
---|---|
1 | DialogBox() Crea una finestra di dialogo vuota. |
2 | DialogBox(boolean autoHide) Crea una finestra di dialogo vuota, specificandone auto-hide proprietà. |
3 | DialogBox(boolean autoHide, boolean modal) Crea una finestra di dialogo vuota, specificandone auto-hide e modal proprietà. |
Metodi di classe
Sr.No. | Nome e descrizione della funzione |
---|---|
1 | protected void beginDragging(MouseDownEvent event) Chiamato con il mouse in basso nell'area della didascalia, inizia il ciclo di trascinamento attivando l'acquisizione degli eventi. |
2 | protected void continueDragging(MouseMoveEvent event) Chiamato al movimento del mouse nell'area della didascalia, continua a trascinare se è stato avviato da beginDragging (com.google.gwt.event .dom.client.MouseDownEvent). |
3 | protected void doAttachChildren() Se un widget contiene uno o più widget figlio che non sono nella gerarchia del widget logico (il figlio è fisicamente connesso solo a livello DOM), deve sovrascrivere questo metodo e chiamare Widget.on Attach () per ciascuno dei suoi widget figlio. |
4 | protected void doDetachChildren() Se un widget contiene uno o più widget figlio che non sono nella gerarchia del widget logico (il bambino è fisicamente connesso solo a livello DOM), deve sovrascrivere questo metodo e chiamare Widget.onDetach () per ciascuno dei suoi widget figlio. |
5 | protected void endDragging(MouseUpEvent event) Chiamato al passaggio del mouse nell'area della didascalia, termina il trascinamento terminando l'acquisizione dell'evento. |
6 | DialogBox.Caption getCaption() Fornisce accesso alla didascalia della finestra di dialogo. |
7 | java.lang.String getHTML() Ottiene il contenuto di questo oggetto come HTML. |
8 | java.lang.String getText() Ottiene il testo di questo oggetto. |
9 | void hide() Nasconde il popup e lo stacca dalla pagina. |
10 | void onBrowserEvent(Event event) Attivato ogni volta che viene ricevuto un evento del browser. |
11 | protected void onEnsureDebugId(java.lang.String baseID) Elementi interessati: -caption = testo nella parte superiore della finestra di dialogo. -content = il contenitore attorno al contenuto. |
12 | void on Mouse Down(Widget sender, int x, int y) Deprecato. Utilizza il trascinamento iniziale (com.google.gwt.event.dom. Client.Mouse Down Event) e ottieni invece Caption () |
13 | void on Mouse Enter(Widget sender) Deprecato. Usa ha gestori al passaggio del mouse. aggiungere invece Mouse Over Handler (com.google.gwt.event.dom. client.Mouse Over Handler) |
14 | void onMouseLeave(Widget sender) Deprecato. Utilizza invece Has Mouse Out Handlers.add Mouse Out Handler (com.google.gwt.event.dom. Client.Mouse Out Handler) |
15 | void onMouseMove(Widget sender, int x, int y) Deprecato. Utilizza invece continueDragging (com.google.gwt.event.dom. Client.MouseMoveEvent) e getCaption () |
16 | void onMouseUp(Widget sender, int x, int y) Deprecato. Utilizza invece endDragging (com.google.gwt.event.dom. Client.MouseUpEvent) e getCaption () |
17 | protected void onPreviewNativeEvent(Event.NativePreviewEvent event) |
18 | void setHTML(SafeHtml html) Imposta la stringa html all'interno della didascalia. |
19 | void setHTML(java.lang.String html) Imposta la stringa html all'interno della didascalia. |
20 | void setText(java.lang.String text) Imposta il testo all'interno della didascalia. |
21 | void show() Mostra il popup e allegalo alla pagina. |
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
com.google.gwt.user.client.ui.PopupPanel
com.google.gwt.user.client.ui.DecoratedPopupPanel
java.lang.Object
Esempio di widget DialogBox
Questo esempio ti guiderà attraverso semplici passaggi per mostrare l'utilizzo di un widget DialogBox in GWT. Segui i passaggi seguenti 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;
}
.gwt-DialogBox .Caption {
background: #e3e8f3 url(images/hborder.png) repeat-x 0px -2003px;
padding: 4px 4px 4px 8px;
cursor: default;
border-bottom: 1px solid #bbbbbb;
border-top: 5px solid #d0e4f6;
}
.gwt-DialogBox .dialogContent {
}
.gwt-DialogBox .dialogMiddleCenter {
padding: 3px;
background: white;
}
.gwt-DialogBox .dialogBottomCenter {
background: url(images/hborder.png) repeat-x 0px -4px;
-background: url(images/hborder_ie6.png) repeat-x 0px -4px;
}
.gwt-DialogBox .dialogMiddleLeft {
background: url(images/vborder.png) repeat-y;
}
.gwt-DialogBox .dialogMiddleRight {
background: url(images/vborder.png) repeat-y -4px 0px;
-background: url(images/vborder_ie6.png) repeat-y -4px 0px;
}
.gwt-DialogBox .dialogTopLeftInner {
width: 5px;
zoom: 1;
}
.gwt-DialogBox .dialogTopRightInner {
width: 8px;
zoom: 1;
}
.gwt-DialogBox .dialogBottomLeftInner {
width: 5px;
height: 8px;
zoom: 1;
}
.gwt-DialogBox .dialogBottomRightInner {
width: 5px;
height: 8px;
zoom: 1;
}
.gwt-DialogBox .dialogTopLeft {
background: url(images/corner.png) no-repeat -13px 0px;
-background: url(images/corner_ie6.png) no-repeat -13px 0px;
}
.gwt-DialogBox .dialogTopRight {
background: url(images/corner.png) no-repeat -18px 0px;
-background: url(images/corner_ie6.png) no-repeat -18px 0px;
}
.gwt-DialogBox .dialogBottomLeft {
background: url(images/corner.png) no-repeat 0px -15px;
-background: url(images/corner_ie6.png) no-repeat 0px -15px;
}
.gwt-DialogBox .dialogBottomRight {
background: url(images/corner.png) no-repeat -5px -15px;
-background: url(images/corner_ie6.png) no-repeat -5px -15px;
}
html>body .gwt-DialogBox {
}
* html .gwt-DialogBox .dialogTopLeftInner {
width: 5px;
overflow: hidden;
}
* html .gwt-DialogBox .dialogTopRightInner {
width: 8px;
overflow: hidden;
}
* html .gwt-DialogBox .dialogBottomLeftInner {
width: 5px;
height: 8px;
overflow: hidden;
}
* html .gwt-DialogBox .dialogBottomRightInner {
width: 8px;
height: 8px;
overflow: hidden;
}
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>DialogBox 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 DialogBox.
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.DialogBox;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
public class HelloWorld implements EntryPoint {
private static class MyDialog extends DialogBox {
public MyDialog() {
// Set the dialog box's caption.
setText("My First Dialog");
// Enable animation.
setAnimationEnabled(true);
// Enable glass background.
setGlassEnabled(true);
// DialogBox is a SimplePanel, so you have to set its widget
// property to whatever you want its contents to be.
Button ok = new Button("OK");
ok.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
MyDialog.this.hide();
}
});
Label label = new Label("This is a simple dialog box.");
VerticalPanel panel = new VerticalPanel();
panel.setHeight("100");
panel.setWidth("300");
panel.setSpacing(10);
panel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
panel.add(label);
panel.add(ok);
setWidget(panel);
}
}
public void onModuleLoad() {
Button b = new Button("Click me");
b.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// Instantiate the dialog box and show it.
MyDialog myDialog = new MyDialog();
int left = Window.getClientWidth()/ 2;
int top = Window.getClientHeight()/ 2;
myDialog.setPopupPosition(left, top);
myDialog.show();
}
});
RootPanel.get().add(b);
}
}
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: