📄 screenmanager.java
字号:
/*
* GWT-Ext Widget Library
* Copyright 2007 - 2008, GWT-Ext LLC., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package com.gwtext.sample.showcase2.client;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.History;
import com.gwtext.client.core.EventCallback;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Function;
import com.gwtext.client.data.*;
import com.gwtext.client.util.DelayedTask;
import com.gwtext.client.util.Format;
import com.gwtext.client.widgets.*;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.form.TextField;
import com.gwtext.client.widgets.form.event.TextFieldListenerAdapter;
import com.gwtext.client.widgets.layout.AccordionLayout;
import com.gwtext.client.widgets.layout.FitLayout;
import com.gwtext.client.widgets.tree.TreeFilter;
import com.gwtext.client.widgets.tree.TreeNode;
import com.gwtext.client.widgets.tree.TreePanel;
import com.gwtext.client.widgets.tree.TreeTraversalCallback;
import com.gwtext.client.widgets.tree.event.TreeNodeListenerAdapter;
import com.gwtext.sample.showcase2.client.button.ButtonsSample;
import com.gwtext.sample.showcase2.client.button.CycleButtonSample;
import com.gwtext.sample.showcase2.client.button.MenuButtonSample;
import com.gwtext.sample.showcase2.client.button.ToggleButtonSample;
import com.gwtext.sample.showcase2.client.chooser.ImageChooserSample;
import com.gwtext.sample.showcase2.client.combination.ChartGeneratorSample;
import com.gwtext.sample.showcase2.client.combo.*;
import com.gwtext.sample.showcase2.client.dd.BasicDDSample;
import com.gwtext.sample.showcase2.client.dd.BasicOnTopSample;
import com.gwtext.sample.showcase2.client.form.*;
import com.gwtext.sample.showcase2.client.grid.*;
import com.gwtext.sample.showcase2.client.layout.*;
import com.gwtext.sample.showcase2.client.main.CreditsPanel;
import com.gwtext.sample.showcase2.client.main.TocPanel;
import com.gwtext.sample.showcase2.client.misc.*;
import com.gwtext.sample.showcase2.client.panel.PanelsSample;
import com.gwtext.sample.showcase2.client.resizable.ResizablePanelSample;
import com.gwtext.sample.showcase2.client.tabs.BottomTabPanelSample;
import com.gwtext.sample.showcase2.client.tabs.TabPanelSample;
import com.gwtext.sample.showcase2.client.toolbar.ToolbarSample;
import com.gwtext.sample.showcase2.client.tooltip.ToolTipTypesSample;
import com.gwtext.sample.showcase2.client.tree.*;
import com.gwtext.sample.showcase2.client.view.DataViewSample;
import com.gwtext.sample.showcase2.client.window.LayoutWindowSample;
import com.gwtext.sample.showcase2.client.window.MessageBoxSample;
import com.gwtext.sample.showcase2.client.pagebus.PubSubSample;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class ScreenManager {
private static Store store;
private TabPanel appTabPanel;
private TextField searchField;
private TreeFilter treeFilter;
private TreePanel treePanel;
private DelayedTask delayedTask = new DelayedTask();
private static ArrayReader reader;
private static MemoryProxy proxy;
public ScreenManager(TabPanel tabPanel) {
this.appTabPanel = tabPanel;
}
public Panel getAccordionNav() {
Panel accordion = new Panel();
accordion.setTitle("Accordion");
accordion.setLayout(new AccordionLayout(true));
Store store = getStore();
Record[] records = store.getRecords();
for (int i = 0; i < records.length; i++) {
Record record = records[i];
String id = record.getAsString("id");
final String category = record.getAsString("category");
String title = record.getAsString("title");
final String iconCls = record.getAsString("iconCls");
String thumbnail = record.getAsString("thumbnail");
String qtip = record.getAsString("qtip");
final ShowcasePanel panel = (ShowcasePanel) record.getAsObject("screen");
record.set("screen", panel);
if (category == null) {
Panel categoryPanel = new Panel();
categoryPanel.setAutoScroll(true);
categoryPanel.setLayout(new FitLayout());
categoryPanel.setId(id + "-acc");
categoryPanel.setTitle(title);
categoryPanel.setIconCls(iconCls);
accordion.add(categoryPanel);
} else {
Panel categoryPanel = (Panel) accordion.findByID(category + "-acc");
TreePanel treePanel = (TreePanel) categoryPanel.findByID(category + "-acc-tree");
TreeNode root = null;
if (treePanel == null) {
treePanel = new TreePanel();
treePanel.setAutoScroll(true);
treePanel.setId(category + "-acc-tree");
treePanel.setRootVisible(false);
root = new TreeNode();
treePanel.setRootNode(root);
categoryPanel.add(treePanel);
} else {
root = treePanel.getRootNode();
}
TreeNode node = new TreeNode();
node.setText(title);
node.setId(id);
if (iconCls != null) node.setIconCls(iconCls);
if (qtip != null) node.setTooltip(qtip);
root.appendChild(node);
addNodeClickListener(node, panel, iconCls);
}
}
return accordion;
}
private void addNodeClickListener(TreeNode node, final Panel panel, final String iconCls) {
if (panel != null) {
node.addListener(new TreeNodeListenerAdapter() {
public void onClick(Node node, EventObject e) {
String panelID = panel.getId();
if (appTabPanel.hasItem(panelID)) {
showScreen(panel, null, null, node.getId());
} else {
TreeNode treeNode = (TreeNode) node;
panel.setTitle(treeNode.getText());
String nodeIconCls = iconCls;
if (iconCls == null) {
nodeIconCls = ((TreeNode) treeNode.getParentNode()).getIconCls();
}
showScreen(panel, treeNode.getText(), nodeIconCls, node.getId());
}
}
});
}
}
public void showScreen(String historyToken) {
if (historyToken == null || historyToken.equals("")) {
appTabPanel.activate(0);
} else {
Record record = store.getById(historyToken);
if (record != null) {
ShowcasePanel panel = (ShowcasePanel) record.getAsObject("screen");
String title = record.getAsString("title");
String iconCls = record.getAsString("iconCls");
showScreen(panel, title, iconCls, historyToken);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -