📄 mainserveview.java
字号:
/**
*
*/
package chainShopMS.views;
import java.util.ArrayList;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.part.DrillDownAdapter;
import org.eclipse.ui.part.ViewPart;
import chainShopMS.Activator;
import chainShopMS.action.ActionManager;
/**
* @author Administrator
* 在总店管理端,总店的管理导航视图
*/
public class MainServeView extends ViewPart
{
/** 导航的树对象 */
private TreeViewer viewer;
/** 可以为树添加返回导航操作对象 */
private DrillDownAdapter drillDownAdapter;
/** 折叠树操作 */
private Action collapseAction;
/** 展开树操作 */
private Action expandAction;
/** 双击树结点时操作 */
private Action doubleClickAction;
/** 该视图的ID */
public static final String ID = "chainShopMS.views.MainServeView";
/**
* 构造方法
*/
public MainServeView()
{
}
/** 树结点类 */
class TreeObject implements IAdaptable
{
private String name;
private String key;
private TreeParent parent;
public TreeObject(final String name, final String key)
{
this.name = name;
this.key = key;
}
public String getName()
{
return name;
}
public void setParent(final TreeParent parent)
{
this.parent = parent;
}
public TreeParent getParent()
{
return parent;
}
public String toString()
{
return getName();
}
public Object getAdapter(final Class key)
{
return null;
}
public String getKey()
{
return key;
}
public void setKey(final String key)
{
this.key = key;
}
}
/** 树的父结点类 */
class TreeParent extends TreeObject
{
private ArrayList children;
public TreeParent(final String name)
{
super(name, "__Parent");
children = new ArrayList();
}
public void addChild(final TreeObject child)
{
children.add(child);
child.setParent(this);
}
public void removeChild(final TreeObject child)
{
children.remove(child);
child.setParent(null);
}
public TreeObject[] getChildren()
{
return (TreeObject[]) children.toArray(new TreeObject[children
.size()]);
}
public boolean hasChildren()
{
return children.size() > 0;
}
}
/** 树的内容器 */
class ViewContentProvider implements IStructuredContentProvider,
ITreeContentProvider
{
private TreeParent invisibleRoot;
public void inputChanged(final Viewer v, final Object oldInput,
final Object newInput)
{
}
public void dispose()
{
}
public Object[] getElements(final Object parent)
{
if (parent.equals(getViewSite()))
{
if (invisibleRoot == null)
{
initialize();
}
return getChildren(invisibleRoot);
}
return getChildren(parent);
}
public Object getParent(final Object child)
{
if (child instanceof TreeObject)
{
return ((TreeObject) child).getParent();
}
return null;
}
public Object[] getChildren(final Object parent)
{
if (parent instanceof TreeParent)
{
return ((TreeParent) parent).getChildren();
}
return new Object[0];
}
public boolean hasChildren(final Object parent)
{
if (parent instanceof TreeParent)
{
return ((TreeParent) parent).hasChildren();
}
return false;
}
/** 初始化树中的数据 */
private void initialize()
{
final TreeObject c1 = new TreeObject("连锁管理", "CHAIN_MANAGER");
final TreeParent t1 = new TreeParent("连锁管理");
t1.addChild(c1);
final TreeObject l1 = new TreeObject("采购管理", "STOCK_MANAGER");
final TreeParent t2 = new TreeParent("采购管理");
t2.addChild(l1);
final TreeObject p2 = new TreeObject("财务管理", "FINANCE_MANAGER");
final TreeParent t3 = new TreeParent("财务管理");
t3.addChild(p2);
final TreeObject d1 = new TreeObject("商品分发", "PRODUCT_DISTRIBUTE");
final TreeParent t4 = new TreeParent("商品分发");
t4.addChild(d1);
final TreeObject s1 = new TreeObject("利润分析", "Sum_PROFIT_ANALYSIS");
final TreeObject s2 = new TreeObject("库存管理", "Sum_STORAGE_MANAGER");
final TreeObject s3 = new TreeObject("销售统计", "Sum_SELL_SATA");
final TreeObject s4 = new TreeObject("会员统计", "Sum_MEMBER_SATA");
final TreeObject s5 = new TreeObject("员工信息", "Sum_STAFF_SATA");
final TreeParent t5 = new TreeParent("数据分析");
t5.addChild(s1);
t5.addChild(s2);
t5.addChild(s3);
t5.addChild(s4);
t5.addChild(s5);
final TreeObject sub1 = new TreeObject("利润分析", "Sub_PROFIT_ANALYSIS");
final TreeObject sub2 = new TreeObject("库存管理", "Sub_STORAGE_MANAGER");
final TreeObject sub3 = new TreeObject("销售统计", "Sub_SELL_SATA");
final TreeObject sub4 = new TreeObject("会员统计", "Sub_MEMBER_SATA");
final TreeObject sub5 = new TreeObject("员工信息", "Sub_STAFF_SATA");
final TreeParent t6 = new TreeParent("分店数据分析");
t6.addChild(sub1);
t6.addChild(sub2);
t6.addChild(sub3);
t6.addChild(sub4);
t6.addChild(sub5);
final TreeObject set1 = new TreeObject("管理设置", "PREF");
final TreeParent t7 = new TreeParent("首选项");
t7.addChild(set1);
invisibleRoot = new TreeParent("");
invisibleRoot.addChild(t1);
invisibleRoot.addChild(t2);
invisibleRoot.addChild(t3);
invisibleRoot.addChild(t4);
invisibleRoot.addChild(t5);
invisibleRoot.addChild(t6);
invisibleRoot.addChild(t7);
}
}
/** 树的内容器 */
class ViewLabelProvider extends LabelProvider
{
public String getText(final Object obj)
{
return obj.toString();
}
public Image getImage(final Object obj)
{
String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
if (obj instanceof TreeParent)
{
imageKey = ISharedImages.IMG_OBJ_FOLDER;
}
return PlatformUI.getWorkbench().getSharedImages().getImage(
imageKey);
}
}
public void createPartControl(final Composite parent)
{
/** 创建树 */
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
/** 初始化树 */
drillDownAdapter = new DrillDownAdapter(viewer);
viewer.setContentProvider(new ViewContentProvider());
viewer.setLabelProvider(new ViewLabelProvider());
viewer.setInput(getViewSite());
/** 创建树中所使用操作对象 */
makeActions();
/** 添加上下文菜单 */
hookContextMenu();
/** 添加双击事件 */
hookDoubleClickAction();
/** 添加到操作条中 */
contributeToActionBars();
}
/** 添加上下文菜单 */
private void hookContextMenu()
{
final MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
menuMgr.addMenuListener(new IMenuListener()
{
public void menuAboutToShow(final IMenuManager manager)
{
MainServeView.this.fillContextMenu(manager);
}
});
final Menu menu = menuMgr.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
getSite().registerContextMenu(menuMgr, viewer);
}
/** 添加到操作条中 */
private void contributeToActionBars()
{
final IActionBars bars = getViewSite().getActionBars();
fillLocalPullDown(bars.getMenuManager());
fillLocalToolBar(bars.getToolBarManager());
}
/** 添加下拉菜单项 */
private void fillLocalPullDown(final IMenuManager manager)
{
manager.add(collapseAction);
manager.add(new Separator());
manager.add(expandAction);
}
/** 添加上下文菜单项 */
private void fillContextMenu(final IMenuManager manager)
{
manager.add(collapseAction);
manager.add(expandAction);
manager.add(new Separator());
drillDownAdapter.addNavigationActions(manager);
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
/** 添加工具栏工具按钮 */
private void fillLocalToolBar(final IToolBarManager manager)
{
manager.add(collapseAction);
manager.add(expandAction);
manager.add(new Separator());
drillDownAdapter.addNavigationActions(manager);
}
/** 创建视图所使用的操作对象 */
private void makeActions()
{
/** 展开全部按钮 */
collapseAction = new Action()
{
public void run()
{
viewer.collapseAll();
}
};
collapseAction.setText("折叠全部");
collapseAction.setToolTipText("折叠全部");
collapseAction.setImageDescriptor(Activator
.getImageDescriptor("icons/collapse.gif"));
/** 折叠全部按钮 */
expandAction = new Action()
{
public void run()
{
viewer.expandAll();
}
};
expandAction.setText("展开全部");
expandAction.setToolTipText("展开全部");
expandAction.setImageDescriptor(Activator
.getImageDescriptor("icons/expand.gif"));
/** 双击操作 */
doubleClickAction = new Action()
{
public void run()
{
/** 获得当前选中的树节点 */
final ISelection selection = viewer.getSelection();
final Object obj = ((IStructuredSelection) selection)
.getFirstElement();
/** 如果选中的为TreeParent对象,则返回 */
if (obj instanceof TreeParent)
{
return;
}
/** 如果选中的为子节点,则根据key值打开相应的操作 */
final TreeObject object = (TreeObject) obj;
if (object.getKey().equals("CHAIN_MANAGER"))
{//选中连锁管理
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
ChainDataTableView.ID).run();//打开具体信息视图
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
ChainMessageView.ID).run();//打开具体信息视图
}
else if (object.getKey().equals("Sub_PROFIT_ANALYSIS")||object.getKey().equals("Sub_STORAGE_MANAGER")
||object.getKey().equals("Sub_SELL_SATA")||object.getKey().equals("Sub_MEMBER_SATA")
||object.getKey().equals("Sub_STAFF_SATA"))//选中可对分店的操作
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
SubServeView.ID).run();
SubServeView subServeView=new SubServeView();
subServeView.viewer.expandAll();//展开可以对分店数据分析操作的子树
}
else if (object.getKey().equals("STOCK_MANAGER"))//采购管理
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
StockDataTableView.ID).run();//打开具体采购信息表格视图
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
StockManagerView.ID).run();//打开具体采购信息管理视图
}
else if (object.getKey().equals("FINANCE_MANAGER"))//财务管理
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
FinanceTableView.ID).run();//打开具体财务信息表格视图
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
FinanceManagerView.ID).run();//打开具体财务信息管理视图
}
else if (object.getKey().equals("PRODUCT_DISTRIBUTE"))//商品分发
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
DistributeTableView.ID).run();//打开具体商品分发表格视图
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
DistributeManagerView.ID).run();//打开具体商品分发信息管理视图
}
else if (object.getKey().equals("Sum_STORAGE_MANAGER"))//总店综合库存管理
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
StorageTableView.ID).run();//打开库存信息表格格视图
}
else if (object.getKey().equals("Sum_PROFIT_ANALYSIS"))//总店综合利润分析
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
ProfitSataTableView.ID).run();//打开利润分析视图
}
else if (object.getKey().equals("Sum_SELL_SATA"))//总店综合销售统计分析
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
SellTableView.ID).run();//打开总店综合销售统计表格视图
}
else if (object.getKey().equals("Sum_STAFF_SATA"))//总店综合员工信息
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
StaffDataTableView.ID).run();//打开总店综合统计员工信息视图
}
else if (object.getKey().equals("Sum_MEMBER_SATA"))//总店综合会员统计信息
{
ActionManager.createShowViewAction(
getSite().getWorkbenchWindow(),
CustomTableView.ID).run();//打开总店综合统计会员信息视图
}
else if (object.getKey().equals("PREF"))
{
ActionFactory.PREFERENCES.create(
getSite().getWorkbenchWindow()).run();
}
}
};
}
/** 双击树事件 */
private void hookDoubleClickAction()
{
viewer.addDoubleClickListener(new IDoubleClickListener()
{
public void doubleClick(final DoubleClickEvent event)
{
doubleClickAction.run();
}
});
}
public void setFocus()
{
viewer.getControl().setFocus();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -