MyProgressMonitorDialog

4 篇文章 0 订阅
3 篇文章 0 订阅
package xxx;

import java.lang.reflect.InvocationTargetException;

/**
 * Not used
 * @author zero
 *
 */
public class MyProgressMonitorDialog extends TitleAreaDialog {
	private ProgressMonitorPart canvas;

	/**
	 * Create the dialog.
	 * @param parentShell
	 */
	public MyProgressMonitorDialog(Shell parentShell) {
		super(parentShell);
	}

	/**
	 * Create contents of the dialog.
	 * @param parent
	 */
	@Override
	protected Control createDialogArea(Composite parent) {
		setTitle("Import ");
		Composite area = (Composite) super.createDialogArea(parent);
		Composite container = new Composite(area, SWT.NONE);
		container.setLayout(new GridLayout(1, false));
		container.setLayoutData(new GridData(GridData.FILL_BOTH));
		
		canvas = new ProgressMonitorPart(container, null);
		canvas.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
//		canvas.setLayout(new GridLayout());
//		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP).span(1, 1).grab(true, false).applyTo(canvas);
		return area;
	}

	@Override
	protected void okPressed() {
		try {
			canvas.attachToCancelComponent(getButton(IDialogConstants.CANCEL_ID));
			ModalContext.run(new OP(), true,canvas, getShell().getDisplay());
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	
	class OP implements IRunnableWithProgress{

		@Override
		public void run(IProgressMonitor monitor)
				throws InvocationTargetException, InterruptedException {
			int s = 157654;
			monitor.beginTask("op", s);
			for (int i = 0; i < s; i++) {
				if(monitor.isCanceled()){
					return;
				}
				System.out.println(i);
				System.out.println(i);
				System.out.println(i);
				System.out.println(i);
				monitor.worked(1);
			}
			monitor.done();
		}
		
	}

	
	/**
	 * Create contents of the button bar.
	 * @param parent
	 */
	@Override
	protected void createButtonsForButtonBar(Composite parent) {
		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
				true);
		createButton(parent, IDialogConstants.CANCEL_ID,
				IDialogConstants.CANCEL_LABEL, false);
	}

	/**
	 * Return the initial size of the dialog.
	 */
	@Override
	protected Point getInitialSize() {
		return new Point(488, 358);
	}
	
	public static void main(String[] args) {
		MyProgressMonitorDialog dialog=new MyProgressMonitorDialog(new Shell());
		dialog.open();
		
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值