GWT plugin archetype: Open GWT dialog box from menu

Instead of adding a button that opens a GWT dialog box,
have a top menu from which the GWT dialog box is opened.

Change-Id: Ie62f04609958c4e1bdf4f30ada08f42579a42961
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2013-11-11 10:18:48 +01:00
committed by Edwin Kempin
parent 9323223d2f
commit 1d2d9bf746
3 changed files with 53 additions and 15 deletions

View File

@@ -0,0 +1,39 @@
// Copyright (C) 2013 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package ${package};
import com.google.gerrit.extensions.annotations.Listen;
import com.google.gerrit.extensions.webui.TopMenu;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Listen
public class HelloMenu implements TopMenu {
public final static String MENU_ID = "hello_open-dialog-box";
private final List<MenuEntry> menuEntries;
public HelloMenu() {
menuEntries = new ArrayList<TopMenu.MenuEntry>();
menuEntries.add(new MenuEntry("Hello", Collections
.singletonList(new MenuItem("Open Dialog Box", "", "", MENU_ID))));
}
@Override
public List<MenuEntry> getEntries() {
return menuEntries;
}
}

View File

@@ -22,6 +22,8 @@ import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import ${package}.HelloMenu;
/**
* HelloWorld Plugins.
*/
@@ -29,15 +31,6 @@ public class HelloPlugins extends Plugin {
@Override
public void onModuleLoad() {
Button button = new Button("Click me");
VerticalPanel vPanel = new VerticalPanel();
vPanel.setWidth("100%");
vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
vPanel.add(button);
RootPanel.get().add(vPanel);
// Create the dialog box
final DialogBox dialogBox = new DialogBox();
@@ -59,11 +52,14 @@ public class HelloPlugins extends Plugin {
// Set the contents of the Widget
dialogBox.setWidget(dialogVPanel);
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
dialogBox.center();
dialogBox.show();
}
});
RootPanel rootPanel = RootPanel.get(HelloMenu.MENU_ID);
rootPanel.getElement().removeAttribute("href");
rootPanel.addDomHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
dialogBox.center();
dialogBox.show();
}
}, ClickEvent.getType());
}
}

View File

@@ -101,3 +101,6 @@ a, a:visited, a:hover {
zoom: 1;
}
#hello_open-dialog-box {
cursor: pointer;
}