RCP程序有多个view,如何实现导航view的隐藏与显示功能

九重霄 2011-02-16 09:51:11
如下方法增加的NavigationView.ID的导航view。点击一下收缩左箭头,树形界面隐藏,左箭头变成右箭头,点击右箭头。
导航视图显示。箭头已经实现了,请高手指导一下,如何隐藏和刷新整个界面。


public class Perspective implements IPerspectiveFactory {
public static final String ID = "Perspective";

public void createInitialLayout(IPageLayout layout) {

PageLayout pageL = (PageLayout)layout ;
ViewSashContainer vsc = pageL.getRootLayoutContainer();

String editorArea = layout.getEditorArea();
layout.setEditorAreaVisible(true);

IFolderLayout NavigationLayout = layout.createFolder("Left", IPageLayout.LEFT, 0.25f, editorArea);
NavigationLayout.addView(NavigationView.ID);
layout.getViewLayout(NavigationView.ID).setCloseable(false);

layout.addFastView(HAControlView.ID);


IFolderLayout bottomRight = layout.createFolder("bottomLeft", IPageLayout.BOTTOM, 0.75f, editorArea); //$NON-NLS-1$ //$NON-NLS-2$
bottomRight.addView(IPageLayout.ID_PROP_SHEET);

IFolderLayout bottomLeft = layout.createFolder("bottomRight", IPageLayout.RIGHT, 0.65f, "bottomLeft"); //$NON-NLS-1$ //$NON-NLS-2$
bottomLeft.addView(IPageLayout.ID_OUTLINE);
}
}
...全文
394 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
injector 2012-03-25
  • 打赏
  • 举报
回复
在箭头事件里
添加一个这样的初始化方法
public void init(IWorkbenchWindow window) {
this.window=window;
//找到导航view
ViewPart view = (ViewPart) window. getActivePage().findView(Nagivation.ID);
//隐藏导航view
window.getActivePage().hideView(view);
}
然后你可以用计数的方法(奇偶数)来判断: 点一下显示,再点一下不显示(就是再次调用init(window)啦)。
最后大功告成~
salever 2011-02-28
  • 打赏
  • 举报
回复
最小化吧
九重霄 2011-02-28
  • 打赏
  • 举报
回复
想隐藏整个View
  • 打赏
  • 举报
回复

/**
* This method initializes btn_openLeftPane
* 打开左控制面板
* @return javax.swing.JButton
*/
private JButton getBtn_openLeftPane() {
if (btn_openLeftPane == null) {
btn_openLeftPane = new JButton();
btn_openLeftPane.setBorderPainted(true);
btn_openLeftPane.setContentAreaFilled(true);
btn_openLeftPane.setBounds(new Rectangle(1, 7, 42, 17));
btn_openLeftPane.setText(">");
btn_openLeftPane.addActionListener(this);
btn_openLeftPane.setActionCommand("open");
}
return btn_openLeftPane;
}

/**
* This method initializes btn_closeLeftPane
* 关闭左控制面板
* @return javax.swing.JButton
*/
private JButton getBtn_closeLeftPane() {
if (btn_closeLeftPane == null) {
btn_closeLeftPane = new JButton();
btn_closeLeftPane.setBorderPainted(true);
btn_closeLeftPane.setContentAreaFilled(true);
btn_closeLeftPane.setBounds(new Rectangle(1, 30, 42, 17));
btn_closeLeftPane.setText("<");
btn_closeLeftPane.addActionListener(this);
btn_closeLeftPane.setActionCommand("close");
}
return btn_closeLeftPane;
}



public void actionPerformed(ActionEvent e) {
//打开菜单栏
if(e.getActionCommand().equals("open")){
for(int i=42;i<=205;i++){
JPanel_left.setBounds(-10, 130, i, 560);
}
}
//关闭菜单栏
else if(e.getActionCommand().equals("close")){
buyInManage.hide();
storeManage.hide();
dayManage.hide();
this.repaint();
for(int i=205;i>=42;i--){
JPanel_left.setBounds(-10, 130, i, 560);
}
}
}
salever 2011-02-16
  • 打赏
  • 举报
回复
晕,2L的明显文不对题,LZ说的是RCP,你答的是Swing。

问一下LZ,你是想隐藏整个View呢,还是隐藏View里面的树形结构啊?
九重霄 2011-02-16
  • 打赏
  • 举报
回复
这些方法应该放到哪个类中呢?NavigationView?
JPanel_left是什么啊?

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧