| /**
|
| * Copyright (c) 2011, 2019 Mia-Software.
|
| *
|
| * All rights reserved. This program and the accompanying materials
|
| * are made available under the terms of the Eclipse Public License v2.0
|
| * which accompanies this distribution, and is available at
|
| * http://www.eclipse.org/legal/epl-v20.html
|
| *
|
| * Contributors:
|
| * Nicolas Guyomar (Mia-Software) - Bug 349546 - EMF Facet facetSet editor
|
| */ |
| package org.eclipse.modisco.facet.efacet.ui.internal.wizards;
|
|
|
| import org.eclipse.emf.ecore.EClassifier;
|
| import org.eclipse.emf.ecore.EPackage;
|
| import org.eclipse.emf.edit.domain.EditingDomain;
|
| import org.eclipse.jface.window.Window;
|
| import org.eclipse.jface.wizard.Wizard;
|
| import org.eclipse.jface.wizard.WizardDialog;
|
| import org.eclipse.modisco.facet.efacet.ui.internal.Messages;
|
| import org.eclipse.modisco.facet.efacet.ui.internal.composites.SelectETypeComposite.ETypeSelectionOptions;
|
| import org.eclipse.modisco.facet.efacet.ui.internal.exported.wizard.ISelectETypeWizard;
|
| import org.eclipse.modisco.facet.efacet.ui.internal.wizards.pages.SelectEClassifierWizardPage;
|
| import org.eclipse.modisco.facet.efacet.ui.internal.wizards.pages.SelectEPackageWizardPage;
|
| import org.eclipse.ui.PlatformUI;
|
|
|
| public class SelectETypeWizardImpl extends Wizard implements ISelectETypeWizard {
|
|
|
| private final WizardDialog dialog;
|
|
|
| private final SelectEPackageWizardPage selectEPackagePage;
|
| private final SelectEClassifierWizardPage selectETypePage;
|
|
|
| private final EditingDomain editingDomain;
|
|
|
| private EClassifier selectedEType;
|
|
|
| private boolean canChangeEPackage = true;
|
|
|
| public SelectETypeWizardImpl(final EditingDomain editingDomain, final ETypeSelectionOptions eTypeSelectionOption,
|
| final boolean canChangeEPackage, final EPackage ePackage) {
|
| super();
|
| this.editingDomain = editingDomain;
|
| this.canChangeEPackage = canChangeEPackage;
|
| this.dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), this);
|
| this.selectEPackagePage = new SelectEPackageWizardPage(this.editingDomain);
|
| this.selectETypePage = new SelectEClassifierWizardPage(eTypeSelectionOption, ePackage);
|
| if (eTypeSelectionOption == ETypeSelectionOptions.ECLASS) {
|
| setWindowTitle(Messages.Select_EClass);
|
| } else if (eTypeSelectionOption == ETypeSelectionOptions.EDATATYPE) {
|
| setWindowTitle(Messages.Select_EDataType);
|
| } else {
|
| setWindowTitle(Messages.Select_EClassifier);
|
| }
|
| }
|
|
|
| @Override
|
| public void addPages() {
|
| if (this.canChangeEPackage) {
|
| addPage(this.selectEPackagePage);
|
| }
|
| addPage(this.selectETypePage);
|
| }
|
|
|
| public int open() {
|
| if (this.dialog != null) {
|
| return this.dialog.open();
|
| }
|
| return Window.CANCEL;
|
| }
|
|
|
| @Override
|
| public boolean performFinish() {
|
| this.selectedEType = this.selectETypePage.getSelectedEclassifier();
|
| return true;
|
| }
|
|
|
| public EClassifier getSelectedEType() {
|
| return this.selectedEType;
|
| }
|
|
|
| }
|