class ImportCSVUIWizard {

    private final ImporterSpreadsheetCSV[] importers;
    private WizardDescriptor.Panel[] panels;
    private WizardDescriptor wizardDescriptor;

    public ImportCSVUIWizard(ImporterSpreadsheetCSV[] importers) {
        this.importers = importers;
        initDescriptor();
    }

    public WizardDescriptor getDescriptor() {
        return wizardDescriptor;
    }

    public void initDescriptor() {
        buildPanels();
        wizardDescriptor = new WizardDescriptor(panels);
    }

    /**
     * Initialize panels representing individual wizard's steps and sets various properties for them influencing wizard appearance.
     */
    private void buildPanels() {<FILL_FUNCTION_BODY>}
}

        panels = new WizardDescriptor.Panel[importers.length * 2];
        for (int i = 0; i < importers.length; i++) {
            ImporterSpreadsheetCSV importer = importers[i];
            WizardPanel1CSV step1 = new WizardPanel1CSV(importer);
            WizardPanel2 step2 = new WizardPanel2(importer);

            panels[i * 2] = step1;
            panels[i * 2 + 1] = step2;
        }

        String[] steps = new String[panels.length];

        for (int i = 0; i < panels.length; i++) {
            Component c = panels[i].getComponent();

            steps[i] = c.getName();

            if (c instanceof JComponent) { // assume Swing components
                JComponent jc = (JComponent) c;
                // Sets step number of a component
                // TODO if using org.openide.dialogs >= 7.8, can use WizardDescriptor.PROP_*:
                jc.putClientProperty("WizardPanel_contentSelectedIndex", i);
                // Sets steps names for a panel
                jc.putClientProperty("WizardPanel_contentData", steps);
                // Turn on subtitle creation on each step
                jc.putClientProperty("WizardPanel_autoWizardStyle", Boolean.TRUE);
                // Show steps on the left side with the image on the background
                jc.putClientProperty("WizardPanel_contentDisplayed", Boolean.TRUE);
                // Turn on numbering of all steps
                jc.putClientProperty("WizardPanel_contentNumbered", Boolean.TRUE);
            }
        }
    
<no_super_class>