`

MyProgressMonitorDialog

阅读更多
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();
		
	}

}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics