/*******************************************************************************
* Copyright (c) 2008 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.smooks.configuration.editors.edireader12;
import java.util.Properties;
import org.eclipse.core.resources.IContainer;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.jboss.tools.smooks.SmooksModelUtils;
import org.jboss.tools.smooks.configuration.editors.SmooksMultiFormEditor;
import org.jboss.tools.smooks.configuration.editors.wizard.IStructuredDataSelectionWizard;
import org.jboss.tools.smooks.model.smooks.DocumentRoot;
import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
/**
* @author Dart
*
*/
public class EDIDataWizard extends Wizard implements IStructuredDataSelectionWizard, INewWizard {
private EDIMappingDataPathWizardPage mappingFilePage;
private EDIDataPathWizardPage ediFilePage;
private SmooksResourceListType resourceList;
private EditingDomain editingDomain;
private IContainer folder = null;
public EDIDataWizard() {
super();
this.setWindowTitle(Messages.EDIDataWizard_WizardTitle);
}
@Override
public void addPages() {
ediFilePage = new EDIDataPathWizardPage(Messages.EDIDataWizard_0, new String[] { Messages.EDIDataWizard_2 }); //$NON-NLS-2$ //$NON-NLS-1$ //$NON-NLS-1$ //$NON-NLS-1$ //$NON-NLS-1$
this.addPage(ediFilePage);
if (folder != null) {
ediFilePage.setInitSelections(new Object[] { folder });
}
// mappingFilePage = new EDIMappingDataPathWizardPage("EDI Config Page",
// null);
// this.addPage(mappingFilePage);
super.addPages();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
@Override
public boolean performFinish() {
if (mappingFilePage != null) {
if (mappingFilePage.isUseAvaliableReader()) {
return true;
}
if (mappingFilePage.isCreateNewReader()) {
String encoding = mappingFilePage.getEncoding();
String path = mappingFilePage.getFilePath();
// EDIReader reader = EdiFactory.eINSTANCE.createEDIReader();
// reader.setEncoding(encoding);
// reader.setMappingModel(path);
// Command command = AddCommand.create(editingDomain, resourceList,
// SmooksPackage.Literals.SMOOKS_RESOURCE_LIST_TYPE__ABSTRACT_READER_GROUP, FeatureMapUtil
// .createEntry(EdiPackage.Literals.EDI_DOCUMENT_ROOT__READER, reader));
// editingDomain.getCommandStack().execute(command);
}
}
return true;
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.wizard.
* IStructuredDataSelectionWizard
* #complate(org.jboss.tools.smooks.configuration
* .editors.SmooksMultiFormEditor)
*/
public void complate(SmooksMultiFormEditor formEditor) {
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.wizard.
* IStructuredDataSelectionWizard#getInputDataTypeID()
*/
public String getInputDataTypeID() {
return SmooksModelUtils.INPUT_TYPE_EDI_1_1;
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.wizard.
* IStructuredDataSelectionWizard#getProperties()
*/
public Properties getProperties() {
Properties pros = new Properties();
if (mappingFilePage != null) {
if (mappingFilePage.isUseAvaliableReader() || mappingFilePage.isCreateNewReader()) {
pros.put(EDIDataParser.USE_AVAILABEL_READER, "true"); //$NON-NLS-1$
return pros;
}
String encoding = mappingFilePage.getEncoding();
pros.put(EDIDataParser.ENCODING, encoding);
String path = mappingFilePage.getFilePath();
pros.put(EDIDataParser.MAPPING_MODEL, path);
}
return pros;
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.wizard.
* IStructuredDataSelectionWizard#getReturnData()
*/
public Object getReturnData() {
return null;
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.wizard.
* IStructuredDataSelectionWizard#getStructuredDataSourcePath()
*/
public String getStructuredDataSourcePath() {
if (ediFilePage.getFilePath() != null) {
return ediFilePage.getFilePath();
}
return null;
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.wizard.
* IStructuredDataSelectionWizard#init(org.eclipse.ui.IEditorSite,
* org.eclipse.ui.IEditorInput)
*/
public void init(IEditorSite site, IEditorInput input) {
IEditorPart editorPart = site.getWorkbenchWindow().getActivePage().findEditor(input);
if (editorPart != null && editorPart instanceof SmooksMultiFormEditor) {
SmooksMultiFormEditor formEditor = (SmooksMultiFormEditor) editorPart;
Object smooksModel = formEditor.getSmooksModel();
if (smooksModel instanceof DocumentRoot) {
resourceList = ((DocumentRoot) smooksModel).getSmooksResourceList();
}
editingDomain = formEditor.getEditingDomain();
}
folder = ((IFileEditorInput) input).getFile().getParent();
if (ediFilePage != null && folder != null) {
ediFilePage.setInitSelections(new Object[] { folder });
}
if (this.mappingFilePage != null) {
mappingFilePage.setSmooksResourceList(resourceList);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
* org.eclipse.jface.viewers.IStructuredSelection)
*/
public void init(IWorkbench workbench, IStructuredSelection selection) {
}
}