GWT: widget de cuadro de diálogo
Introducción
los DialogBoxwidget representa una forma de ventana emergente que tiene un área de título en la parte superior y puede ser arrastrada por el usuario. A diferencia de PopupPanel, las llamadas a PopupPanel.setWidth (String) y PopupPanel.setHeight (String) establecerán el ancho y el alto del cuadro de diálogo, incluso si aún no se ha agregado un widget.
Declaración de clase
A continuación se muestra la declaración de com.google.gwt.user.client.ui.DialogBox clase -
public class DialogBox
extends DecoratedPopupPanel
implements HasHTML, HasSafeHtml, MouseListener
Constructores de clases
No Señor. | Constructor y descripción |
---|---|
1 | DialogBox() Crea un cuadro de diálogo vacío. |
2 | DialogBox(boolean autoHide) Crea un cuadro de diálogo vacío, especificando su auto-hide propiedad. |
3 | DialogBox(boolean autoHide, boolean modal) Crea un cuadro de diálogo vacío, especificando su auto-hide y modal propiedades. |
Métodos de clase
No Señor. | Nombre y descripción de la función |
---|---|
1 | protected void beginDragging(MouseDownEvent event) Llamado con el mouse hacia abajo en el área de subtítulos, comienza el ciclo de arrastre activando la captura de eventos. |
2 | protected void continueDragging(MouseMoveEvent event) Llamado al mover el mouse en el área de subtítulos, continúa arrastrando si se inició con beginDragging (com.google.gwt.event .dom.client.MouseDownEvent). |
3 | protected void doAttachChildren() Si un widget contiene uno o más widgets secundarios que no están en la jerarquía de widgets lógicos (el niño está conectado físicamente solo en el nivel DOM), debe anular este método y llamar a Widget.on Attach () para cada uno de sus widgets secundarios. |
4 | protected void doDetachChildren() Si un widget contiene uno o más widgets secundarios que no están en la jerarquía de widgets lógicos (el niño está conectado físicamente solo en el nivel DOM), debe anular este método y llamar a Widget.onDetach () para cada uno de sus widgets secundarios. |
5 | protected void endDragging(MouseUpEvent event) Llamado con el mouse hacia arriba en el área de subtítulos, termina arrastrando al finalizar la captura de eventos. |
6 | DialogBox.Caption getCaption() Proporciona acceso al título del cuadro de diálogo. |
7 | java.lang.String getHTML() Obtiene el contenido de este objeto como HTML. |
8 | java.lang.String getText() Obtiene el texto de este objeto. |
9 | void hide() Oculta la ventana emergente y la separa de la página. |
10 | void onBrowserEvent(Event event) Se activa cada vez que se recibe un evento del navegador. |
11 | protected void onEnsureDebugId(java.lang.String baseID) Elementos afectados: -caption = texto en la parte superior del DialogBox. -content = el contenedor alrededor del contenido. |
12 | void on Mouse Down(Widget sender, int x, int y) Obsoleto. Use begin Dragging (com.google.gwt.event.dom. Client.Mouse Down Event) y obtenga Caption () en su lugar |
13 | void on Mouse Enter(Widget sender) Obsoleto. Utilice Controladores con mouse sobre. agregue Mouse Over Handler (com.google.gwt.event.dom. client.Mouse Over Handler) en su lugar |
14 | void onMouseLeave(Widget sender) Obsoleto. Use Has Mouse Out Handlers.add Mouse Out Handler (com.google.gwt.event.dom. Client.Mouse Out Handler) en su lugar |
15 | void onMouseMove(Widget sender, int x, int y) Obsoleto. Utilice continueDragging (com.google.gwt.event.dom. Client.MouseMoveEvent) y getCaption () en su lugar |
dieciséis | void onMouseUp(Widget sender, int x, int y) Obsoleto. Utilice endDragging (com.google.gwt.event.dom. Client.MouseUpEvent) y getCaption () en su lugar |
17 | protected void onPreviewNativeEvent(Event.NativePreviewEvent event) |
18 | void setHTML(SafeHtml html) Establece la cadena html dentro del título. |
19 | void setHTML(java.lang.String html) Establece la cadena html dentro del título. |
20 | void setText(java.lang.String text) Establece el texto dentro del título. |
21 | void show() Muestra la ventana emergente y adjúntela a la página. |
Métodos heredados
Esta clase hereda métodos de las siguientes clases:
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
Ejemplo de widget DialogBox
Este ejemplo lo llevará a través de sencillos pasos para mostrar el uso de un widget DialogBox en GWT. Siga los siguientes pasos para actualizar la aplicación GWT que creamos en GWT - Capítulo Crear aplicación -
Paso | Descripción |
---|---|
1 | Cree un proyecto con un nombre HelloWorld en un paquete com.tutorialspoint como se explica en el capítulo GWT - Crear aplicación . |
2 | Modifique HelloWorld.gwt.xml , HelloWorld.css , HelloWorld.html y HelloWorld.java como se explica a continuación. Mantenga el resto de los archivos sin cambios. |
3 | Compile y ejecute la aplicación para verificar el resultado de la lógica implementada. |
A continuación se muestra el contenido del descriptor de módulo modificado 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>
A continuación se muestra el contenido del archivo de hoja de estilo modificado 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;
}
A continuación se muestra el contenido del archivo de host HTML modificado 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>
Tengamos el siguiente contenido del archivo Java src/com.tutorialspoint/HelloWorld.java que demostrará el 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 vez que esté listo con todos los cambios realizados, compilemos y ejecutemos la aplicación en modo de desarrollo como hicimos en el capítulo GWT - Crear aplicación . Si todo está bien con su aplicación, esto producirá el siguiente resultado: