1 /*
2 * This file is a part of CAST project.
3 * (c) Copyright 2007, AGH University of Science & Technology
4 * https://caribou.iisg.agh.edu.pl/trac/cast
5 *
6 * Licensed under the Eclipse Public License, Version 1.0 (the "License").
7 * You may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 * http://www.eclipse.org/legal/epl-v10.html
10 */
11 /*
12 * File: IImportWizardStrategy.java
13 * Created: 2009-09-10
14 * Author: entrop
15 * $Id$
16 */
17
18 package pl.edu.agh.cast.importer.wizard.strategy;
19
20 import org.eclipse.jface.wizard.Wizard;
21
22 import pl.edu.agh.cast.importer.wizard.page.AbstractImportWizardPage;
23
24 /**
25 * Interface used for defining page flow strategy. The main method is
26 * {@link IImportWizardStrategy#getNextPage(AbstractImportWizardPage)}.
27 *
28 * @author AGH CAST Team
29 */
30 public interface IImportWizardStrategy {
31
32 /**
33 * Calculates which wizard page should be next, and returns reference to next page.
34 *
35 * @param current
36 * current page
37 * @return next page
38 */
39 AbstractImportWizardPage getNextPage(AbstractImportWizardPage current);
40
41 /**
42 * Creates pages needed for this strategy and adds created pages to wizard.
43 *
44 * @param wizard
45 * the wizard
46 */
47 void addPages(Wizard wizard);
48
49 /**
50 * Checks whether the wizard can finish the import process.
51 *
52 * @return true if the wizard could be finished, and false otherwise
53 */
54 boolean canFinishWizard();
55
56 /**
57 * Perform any special finish processing for this wizard strategy.
58 *
59 * @return true if finish code execution was successful
60 */
61 public boolean performFinish();
62
63 }