/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.verify; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; /** * {@link WizardDialog} for {@link ComponentResultVerificationWizard}. * * @author Doreen Seider */ public class ComponentResultVerificationWizardDialog extends WizardDialog { public ComponentResultVerificationWizardDialog(Shell parentShell, IWizard newWizard) { super(parentShell, newWizard); setTitle("Tool Result Verification"); setShellStyle(SWT.CLOSE | SWT.MAX | SWT.TITLE | SWT.BORDER | SWT.RESIZE | getDefaultOrientation()); } @Override protected void createButtonsForButtonBar(Composite parent) { ((GridLayout) parent.getLayout()).makeColumnsEqualWidth = false; createButton(parent, IDialogConstants.BACK_ID, IDialogConstants.BACK_LABEL, true); createButton(parent, IDialogConstants.NEXT_ID, IDialogConstants.NEXT_LABEL, true); createButton(parent, IDialogConstants.FINISH_ID, IDialogConstants.FINISH_LABEL, true); createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, true); } @Override public void updateButtons() { boolean canFinish = true; for (IWizardPage page : getWizard().getPages()) { canFinish &= page.isPageComplete(); } boolean canFlipToNextPage = getCurrentPage().canFlipToNextPage(); getButton(IDialogConstants.BACK_ID).setEnabled(getCurrentPage().getPreviousPage() != null); getButton(IDialogConstants.NEXT_ID).setEnabled(canFlipToNextPage); getButton(IDialogConstants.FINISH_ID).setEnabled(canFinish && !canFlipToNextPage); if (canFlipToNextPage && !canFinish) { getShell().setDefaultButton(getButton(IDialogConstants.NEXT_ID)); } else { getShell().setDefaultButton(getButton(IDialogConstants.FINISH_ID)); } } @Override protected void nextPressed() { // assume a certain constellation of pages that breaks if a new page is added, but as not likely right now, a more generic approach // is not applied from the beginning ((ComponentResultVerificationInfoWizardPage) getCurrentPage().getNextPage()) .setVerificationToken(((ComponentResultVerificationTokenWizardPage) getCurrentPage()).getVerificationToken()); super.nextPressed(); } @Override protected void buttonPressed(int buttonId) { // Don't know why this doesn't work by default if (buttonId == IDialogConstants.CANCEL_ID) { cancelPressed(); } else { super.buttonPressed(buttonId); } } }