Java中addshell函数,Java Shell.addDisposeListener方法代码示例

import org.eclipse.swt.widgets.Shell; //导入方法依赖的package包/类

private void openFilesMiniView(DownloadManager dm, TableCell cell) {

Shell shell = ShellFactory.createShell(Utils.findAnyShell(), SWT.SHELL_TRIM);

FillLayout fillLayout = new FillLayout();

fillLayout.marginHeight = 2;

fillLayout.marginWidth = 2;

shell.setLayout(fillLayout);

Rectangle bounds = ((TableCellSWT) cell).getBoundsOnDisplay();

bounds.y += bounds.height;

bounds.width = 630;

bounds.height = (16 * dm.getNumFileInfos()) + 60;

Rectangle realBounds = shell.computeTrim(0, 0, bounds.width, bounds.height);

realBounds.width -= realBounds.x;

realBounds.height -= realBounds.y;

realBounds.x = bounds.x;

realBounds.y = bounds.y;

if (bounds.height > 500) {

bounds.height = 500;

}

shell.setBounds(realBounds);

shell.setAlpha(230);

Utils.verifyShellRect(shell, true);

final FilesView view = new FilesView(false);

view.dataSourceChanged(dm);

view.initialize(shell);

Composite composite = view.getComposite();

//composite.setLayoutData(null);

//shell.setLayout(new FillLayout());

view.viewActivated();

view.refresh();

final UIUpdatable viewUpdater = new UIUpdatable() {

@Override

public void updateUI() {

view.refresh();

}

@Override

public String getUpdateUIName() {

return view.getFullTitle();

}

};

UIUpdaterSWT.getInstance().addUpdater(viewUpdater);

shell.addDisposeListener(new DisposeListener() {

@Override

public void widgetDisposed(DisposeEvent e) {

UIUpdaterSWT.getInstance().removeUpdater(viewUpdater);

view.delete();

}

});

shell.layout(true, true);

shell.setText(dm.getDisplayName());

shell.open();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值