mardi 2 juin 2015

ProgressBar in Eclipse mit Wizard page?

Hallo
ich versuche einen ProgressBar einzubauen ,der bis 10 hochzählen dann abbrechen kann.
Mein Code kann das leider nicht. Es wäre super, wenn ihr mir helfen könnt.




Code:

    public class WizardProgress {

    private static class MyWizard extends Wizard {

        public MyWizard() {

        }

        /*
        * (non-Javadoc)
        * @see org.eclipse.jface.wizard.Wizard#addPages()
        */
        @Override
        public void addPages() {

            addPage(new MyWizardPageThread("Progress"));
        }

        @Override
        public boolean performFinish() {
            return true;
        }

    };

    private static class MyWizardPageThread extends WizardPage {

        private boolean loading = true;     

        protected MyWizardPageThread(String pageName) {
            super(pageName);

            setTitle(pageName);
        }

        @Override
        public void createControl(final Composite parent) { // control
            final Composite comp = new Composite(parent, SWT.NONE);
            comp.setLayout(new GridLayout(1, false));

            final Composite barContainer = new Composite(comp, SWT.NONE);
            barContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            barContainer.setLayout(new GridLayout(2, false));

            Label l = new Label(barContainer, SWT.NONE);
            l.setText("Loading...");

            final ProgressBar bar = new ProgressBar(barContainer, SWT.INDETERMINATE);
            bar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
            bar.setMaximum(10);

            setControl(comp);

            Thread t = new Thread() {

                @Override
                public void run() { // run

                 
                    parent.getDisplay().syncExec(new Runnable() {

                        @Override
                        public void run() {
                            loading = false;
                            getWizard().getContainer().updateButtons();
                        }
                    });
                }

            };

            t.start();
        }

    }

    public static void main(String[] args) {
        Display display = new Display();

        final Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());
        WizardDialog dialog = new WizardDialog(shell, new MyWizard());
        dialog.open();
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }

        display.dispose();
    }
}



ProgressBar in Eclipse mit Wizard page?

0 commentaires:

Enregistrer un commentaire