社区
Java SE
帖子详情
SWT如何控制TreeItem的展开
paodan
2009-12-01 11:15:11
我想在用户单击展开TreeItem的某个节点时,弹出一个对话框,进行一些权限验证,如果通过了,就展开当前节点,如果没通过,则不展开当前节点。试了treeExpanded,但是这个达不到效果,一点击展开就直接展开了,没有验证。
...全文
577
14
打赏
收藏
SWT如何控制TreeItem的展开
我想在用户单击展开TreeItem的某个节点时,弹出一个对话框,进行一些权限验证,如果通过了,就展开当前节点,如果没通过,则不展开当前节点。试了treeExpanded,但是这个达不到效果,一点击展开就直接展开了,没有验证。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
paodan
2009-12-23
打赏
举报
回复
结贴
paodan
2009-12-09
打赏
举报
回复
[Quote=引用 12 楼 pasband 的回复:]
class AuthTreeItem extends TreeItem {
public AuthTreeItem(Tree tree, int i) {
super(tree, i);
}
public void setExpanded(boolean exp) {
MessageBox box = new MessageBox(Display.getDefault()
.getActiveShell());
if (box.open() == SWT.OK) {
super.setExpanded(exp);
}
}
}
[/Quote]需要继承来覆盖setExpanded吗?有没有直接设置的?
pasband
2009-12-08
打赏
举报
回复
class AuthTreeItem extends TreeItem {
public AuthTreeItem(Tree tree, int i) {
super(tree, i);
}
public void setExpanded(boolean exp) {
MessageBox box = new MessageBox(Display.getDefault()
.getActiveShell());
if (box.open() == SWT.OK) {
super.setExpanded(exp);
}
}
}
wudeaaa
2009-12-07
打赏
举报
回复
帮顶
paodan
2009-12-03
打赏
举报
回复
[Quote=引用 9 楼 feifeikub 的回复:]
tree.addTreeListener(new TreeListener() {
@Override
public void treeCollapsed(TreeEvent e) {
}
@Override
public void treeExpanded(TreeEvent e) {
if (targetitem == e.item) {
MessageBox box = new MessageBox(Display.getDefault()
.getActiveShell());
box.open();
}
}
});
[/Quote]楼上有发过了,这样不行
encky
2009-12-01
打赏
举报
回复
为什么不在弹出对话框输入权限后,再根据权限来重新加载树呢?
一开始全部都只加载根节点,以后再慢慢加。。。
勇往直前的胖子
2009-12-01
打赏
举报
回复
或者,如果有权限则加载节点,如果没有权限就加一个节点,上面显示内容是:权限不够
提示用户权限不够,不能看这里的内容
勇往直前的胖子
2009-12-01
打赏
举报
回复
是这个意思,应该在加载阶段就判断权限
1、从效率上考虑,如果没有这个权限,当然不需要加载,减少开销
2、从安全上考虑,如果不管有没有权限都加载,而仅仅是通过权限控制他展不展开,那么也许可以通过分析内存中的内容得到敏感数据
paodan
2009-12-01
打赏
举报
回复
[Quote=引用 4 楼 pasband 的回复:]
tree.addTreeListener(new TreeListener() {
@Override
public void treeCollapsed(TreeEvent e) {
}
@Override
public void treeExpanded(TreeEvent e) {
if (targetitem == e.item) {
MessageBox box = new MessageBox(Display.getDefault()
.getActiveShell());
box.open();
}
}
});
[/Quote]这个你关闭了MessageBox后还是会展开的,只是在展开前弹出个对话框而已,这样即使验证不通过也是会展开的
pasband
2009-12-01
打赏
举报
回复
tree.addTreeListener(new TreeListener() {
@Override
public void treeCollapsed(TreeEvent e) {
}
@Override
public void treeExpanded(TreeEvent e) {
if (targetitem == e.item) {
MessageBox box = new MessageBox(Display.getDefault()
.getActiveShell());
box.open();
}
}
});
paodan
2009-12-01
打赏
举报
回复
[Quote=引用 1 楼 zrzlj 的回复:]
可以换个角度考虑这个问题啊,应该在加载节点的时候就控制全新啊,如果有权限就加载这些节点,如果没有权限就不加载,这样没有权限的人即使展开也看不到东西。
这样做不是更简单也更安全吗?
[/Quote]哦,知道1楼的意思了,假如没有权限,展开为空白的,并提示信息,有权限了才加载,是这个意思吗?
paodan
2009-12-01
打赏
举报
回复
[Quote=引用 1 楼 zrzlj 的回复:]
可以换个角度考虑这个问题啊,应该在加载节点的时候就控制全新啊,如果有权限就加载这些节点,如果没有权限就不加载,这样没有权限的人即使展开也看不到东西。
这样做不是更简单也更安全吗?
[/Quote]也有道理,但是这里是权限需要弹出对话框来验证才知道的,比如这棵树当前是收缩的,我点击展开符号“+”的时候会弹出验证对话框,如果没有弹出对话框无法输入权限信息。
勇往直前的胖子
2009-12-01
打赏
举报
回复
可以换个角度考虑这个问题啊,应该在加载节点的时候就控制全新啊,如果有权限就加载这些节点,如果没有权限就不加载,这样没有权限的人即使展开也看不到东西。
这样做不是更简单也更安全吗?
feifeikub
2009-12-01
打赏
举报
回复
tree.addTreeListener(new TreeListener() {
@Override
public void treeCollapsed(TreeEvent e) {
}
@Override
public void treeExpanded(TreeEvent e) {
if (targetitem == e.item) {
MessageBox box = new MessageBox(Display.getDefault()
.getActiveShell());
box.open();
}
}
});
Java
SWT
Tree
目录结构
1,
Tree
的小例子(3级树):http://xmind.iteye.com/blog/1139188 一个简单的3级树的例子,还有一个没有滚动条的树,
SWT
.NO_SCROLL。 2,
SWT
树的
展开
事件,懒加载:http://xmind.iteye.com/blog/1139396 一个懒加载的树,浏览文件结构。
SWT
.Expand事件发生的时候加载树项。 3,
SWT
树的
展开
事件...
SWT
程序开发(十四)—
SWT
实现API开发
学习了2天
SWT
了,简单的实现一个API文档的开发: 1、现来看下大致的开发结果: 主要也是对这两天学习内容的复习。下边将开发代码整理如下: 首先定义main类: package
swt
Api; import org.eclipse.
swt
.
SWT
; import org.eclipse.
swt
.custom.SashForm; import org.eclipse.
swt
.layout.FillLayout; import org.ecli...
使用Eclipse进行
SWT
编程
使用Eclipse进行
SWT
编程 1.为什么要使用
SWT
?
SWT
是IBM开发一套跨平台的GUI开发框架。为什么IBM要创建另一种GUI呢?为什么他们不使用现有的JavaGUI框架呢?要回答这些问题,我需要回到Java的早期时代。 Sun已经创建了一套跨平台的GUI框架AWT (Abstract Windowing Toolkit)。这个AWT框架使用了本地窗口组件(nat...
WindowBuilder、
SWT
、jface
GUI(Graphical User Interface,简称GUI,图形用户界面)是指采用图形方式显示的计算机操作用户界面,与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。AWT:1.包含了很多类和接口2.元素:窗口、核心类:组件Component可以直接用的基本组件:button、TextArea、Label容器:有窗口Window【分为Frame和Dialog】和面板Panel【Applet】基本组件存放在容器中,用add操作。
SWT
控件总结
控件palette 1.System Choose component 选择组件:允许选择组件类型并将其拖放到设计画布上 Tab Order标签的顺序:设置所选选项卡顺序 2.Composites Composite 复合:能够包含其他控件的控件 Group 集团:提供带有可选标题的蚀刻边界 Scrolled Composite :在滚动框中包含其他控件的控件 SashForm:以行或列的方式排列它的子控件(由方向指定) TabFolder:实现了笔记本用户界面比
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章