Package net.sourceforge.ganttproject.importer

Source Code of net.sourceforge.ganttproject.importer.ImportFileWizardImpl$State

/*
* Created on 30.04.2005
*/
package net.sourceforge.ganttproject.importer;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import net.sourceforge.ganttproject.GanttProject;
import net.sourceforge.ganttproject.Mediator;
import net.sourceforge.ganttproject.gui.GanttDialogInfo;
import net.sourceforge.ganttproject.gui.UIFacade;
import net.sourceforge.ganttproject.gui.UIFacade.Choice;
import net.sourceforge.ganttproject.gui.projectwizard.WizardImpl;
import net.sourceforge.ganttproject.language.GanttLanguage;
import net.sourceforge.ganttproject.plugins.PluginManager;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;

/**
* @author bard
*/
public class ImportFileWizardImpl extends WizardImpl {
    private State myState;

    private GanttProject myProject;

    public ImportFileWizardImpl(UIFacade uiFacade, GanttProject project) {
        super(uiFacade, GanttLanguage.getInstance().getText("importWizard.dialog.title"));
        myProject = project;
        myState = new State();
        Importer[] importers = getImporters();
        addPage(new ImporterChooserPage(importers, myState));
        addPage(new FileChooserPage(myState));
    }

    private Importer[] getImporters() {
        List result = new ArrayList();
        Importer[] importers = (Importer[]) Mediator.getPluginManager().getExtensions(Importer.EXTENSION_POINT_ID, Importer.class);
//        String extensionPointID =
//        IConfigurationElement[] configElements = Platform
//                .getExtensionRegistry().getConfigurationElementsFor(
//                        extensionPointID);
        return importers;
    }

    protected void onOkPressed() {
        super.onOkPressed();
        //myProject.getTree().addBlankLine(null, myProject.getTree().getRoot().getChildCount());
        boolean merge = mergeProjects();
        myState.myImporter.run(myProject, myProject.getUIFacade(), myState.getFile(), merge);
    }

    protected boolean canFinish() {
        return myState.myImporter != null && myState.getFile() != null;
    }

    private boolean mergeProjects() {
        if(myProject.getDocument() == null && !myProject.isModified()) {
            return false;
        }
      String message = i18n("msg17");
      String title = i18n("question");
      Choice mergeChoice = getUIFacade().showConfirmationDialog(message, title);
      if (mergeChoice == Choice.YES) {
        return true;
      }
        if (myProject.checkCurrentProject()) {
            myProject.close();
        }
        return false;
    }
   
    private String i18n(String key) {
    return GanttLanguage.getInstance().getText(key);
  }

  class State {
        Importer myImporter;

        private File myFile;

        void setFile(File myFile) {
            this.myFile = myFile;
            ImportFileWizardImpl.this.adjustButtonState();
        }

        File getFile() {
            return myFile;
        }
    }
}
TOP

Related Classes of net.sourceforge.ganttproject.importer.ImportFileWizardImpl$State

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.