📄 maps.java
字号:
package com.gwtext.sample.maps.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.HistoryListener;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.PopupPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Margins;
import com.gwtext.client.core.Position;
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.widgets.*;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.event.TabPanelListenerAdapter;
import com.gwtext.client.widgets.layout.BorderLayout;
import com.gwtext.client.widgets.layout.BorderLayoutData;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.menu.BaseItem;
import com.gwtext.client.widgets.menu.Item;
import com.gwtext.client.widgets.menu.Menu;
import com.gwtext.client.widgets.menu.event.BaseItemListenerAdapter;
import com.gwtext.client.widgets.tree.TreePanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Maps implements EntryPoint, HistoryListener {
private static PopupPanel messagePanel = new PopupPanel(true);
private com.gwtext.client.widgets.TabPanel centerPanel;
private ScreenManager screenManager;
private Menu menu;
public void onModuleLoad() {
//create the main panel and assign it a BorderLayout
com.gwtext.client.widgets.Panel mainPanel = new com.gwtext.client.widgets.Panel();
mainPanel.setLayout(new BorderLayout());
BorderLayoutData northLayoutData = new BorderLayoutData(RegionPosition.NORTH);
northLayoutData.setSplit(false);
BorderLayoutData centerLayoutData = new BorderLayoutData(RegionPosition.CENTER);
centerLayoutData.setMargins(new Margins(5, 0, 5, 5));
com.gwtext.client.widgets.Panel centerPanelWrappper = new com.gwtext.client.widgets.Panel();
centerPanelWrappper.setLayout(new FitLayout());
centerPanelWrappper.setBorder(false);
centerPanelWrappper.setBodyBorder(false);
centerPanel = new com.gwtext.client.widgets.TabPanel();
centerPanel.setBodyBorder(false);
centerPanel.setEnableTabScroll(true);
centerPanel.setAutoScroll(true);
centerPanel.setAutoDestroy(false);
centerPanel.setActiveTab(0);
//hide the panel when the tab is closed
centerPanel.addListener(new TabPanelListenerAdapter() {
public boolean doBeforeTabChange(com.gwtext.client.widgets.TabPanel source, com.gwtext.client.widgets.Panel newPanel, com.gwtext.client.widgets.Panel oldPanel) {
WindowMgr.hideAll();
return true;
}
public void onRemove(Container self, Component component) {
component.hide();
}
public void onContextMenu(com.gwtext.client.widgets.TabPanel source, com.gwtext.client.widgets.Panel tab, EventObject e) {
showMenu(tab, e);
}
});
centerPanel.setLayoutOnTabChange(true);
centerPanel.setTitle("Main Content");
screenManager = new ScreenManager(centerPanel);
//setup the west regions layout properties
BorderLayoutData westLayoutData = new BorderLayoutData(RegionPosition.WEST);
westLayoutData.setMargins(new Margins(5, 5, 0, 5));
westLayoutData.setCMargins(new Margins(5, 5, 5, 5));
westLayoutData.setMinSize(155);
westLayoutData.setMaxSize(350);
westLayoutData.setSplit(true);
//create the west panel and add it to the main panel applying the west region layout properties
com.gwtext.client.widgets.Panel westPanel = createWestPanel();
mainPanel.add(westPanel, westLayoutData);
final com.gwtext.client.widgets.Panel introPanel = new com.gwtext.client.widgets.Panel();
introPanel.setTitle("GWT-Ext 2.0 Maps Showcase");
introPanel.setPaddings(10);
introPanel.setLayout(new FitLayout());
final ShowcaseView showcaseView = new ShowcaseView(screenManager);
introPanel.add(showcaseView);
centerPanel.add(introPanel, centerLayoutData);
centerPanelWrappper.add(centerPanel);
mainPanel.add(centerPanelWrappper, centerLayoutData);
final String initToken = History.getToken();
if (initToken.length() != 0) {
mainPanel.addListener(new PanelListenerAdapter() {
public void onRender(Component component) {
onHistoryChanged(initToken);
}
});
}
Viewport viewport = new Viewport(mainPanel);
// Add history listener
History.addHistoryListener(this);
}
private com.gwtext.client.widgets.Panel createWestPanel() {
com.gwtext.client.widgets.Panel westPanel = new com.gwtext.client.widgets.Panel();
westPanel.setId("side-nav");
westPanel.setTitle("Showcase Explorer");
westPanel.setLayout(new FitLayout());
westPanel.setWidth(210);
westPanel.setCollapsible(true);
Toolbar toolbar = new Toolbar();
toolbar.addFill();
toolbar.addItem(new ToolbarTextItem("Select Theme "));
toolbar.addSpacer();
toolbar.addField(new ThemeChanger());
westPanel.setTopToolbar(toolbar);
com.gwtext.client.widgets.TabPanel tabPanel = new com.gwtext.client.widgets.TabPanel();
tabPanel.setActiveTab(0);
tabPanel.setDeferredRender(true);
tabPanel.setTabPosition(Position.BOTTOM);
TreePanel treePanel = screenManager.getTreeNav();
tabPanel.add(treePanel);
tabPanel.add(screenManager.getAccordionNav());
westPanel.add(tabPanel);
return westPanel;
}
/**
* This method is called whenever the application's history changes.
*
* @param historyToken the histrory token
*/
public void onHistoryChanged(String historyToken) {
screenManager.showScreen(historyToken);
}
private void showMenu(final com.gwtext.client.widgets.Panel tab, EventObject e) {
if (menu == null) {
menu = new Menu();
Item close = new Item("Close Tab");
close.setId("close-tab-item");
close.addListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
centerPanel.remove(centerPanel.getActiveTab());
}
});
menu.addItem(close);
Item closeOthers = new Item("Close Other Tabs");
closeOthers.setId("close-others-item");
closeOthers.addListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
Component[] items = centerPanel.getItems();
for (int i = 0; i < items.length; i++) {
com.gwtext.client.widgets.Panel panel = (com.gwtext.client.widgets.Panel) items[i];
if (panel.isClosable() && !panel.getId().equals(centerPanel.getActiveTab().getId())) {
centerPanel.remove(panel);
}
}
}
});
menu.addItem(closeOthers);
}
BaseItem close = menu.getItem("close-tab-item");
if (!centerPanel.getActiveTab().isClosable()) {
close.disable();
} else {
close.enable();
}
BaseItem closeOthers = menu.getItem("close-others-item");
if (centerPanel.getItems().length == 1) {
closeOthers.disable();
} else {
closeOthers.enable();
}
menu.showAt(e.getXY());
}
public static void showMessage(String title, String message) {
messagePanel.setPopupPosition(500, 300);
messagePanel.setWidget(new HTML(getMessageHtml(title, message)));
messagePanel.setWidth("300px");
messagePanel.show();
}
private static native String getMessageHtml(String title, String message) /*-{
return ['<div class="msg">',
'<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
'<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', title, '</h3>', message, '</div></div></div>',
'<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
'</div>'].join('');
}-*/;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -