diff options
Diffstat (limited to 'plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge.ui/src/org/eclipse/papyrus/gmf/internal/bridge/transform/GMFGenNewFileCreationPage.java')
-rw-r--r-- | plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge.ui/src/org/eclipse/papyrus/gmf/internal/bridge/transform/GMFGenNewFileCreationPage.java | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge.ui/src/org/eclipse/papyrus/gmf/internal/bridge/transform/GMFGenNewFileCreationPage.java b/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge.ui/src/org/eclipse/papyrus/gmf/internal/bridge/transform/GMFGenNewFileCreationPage.java deleted file mode 100644 index 1e7447a14d7..00000000000 --- a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge.ui/src/org/eclipse/papyrus/gmf/internal/bridge/transform/GMFGenNewFileCreationPage.java +++ /dev/null @@ -1,250 +0,0 @@ -/****************************************************************************** - * Copyright (c) 2007, 2020 Borland Software Corporation, CEA LIST, Artal - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Alexander Fedorov (Borland) - initial API and implementation - * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Bug 569174 - *****************************************************************************/ -package org.eclipse.papyrus.gmf.internal.bridge.transform; - -import java.text.MessageFormat; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ProjectScope; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.jface.dialogs.IMessageProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.dialogs.WizardNewFileCreationPage; -import org.osgi.service.prefs.Preferences; - -class GMFGenNewFileCreationPage extends WizardNewFileCreationPage { - - static final String EXT_GMFGEN = "gmfgen"; //$NON-NLS-1$ - - private ResourceGroupEmulator resourceGroupEmulator; - - public GMFGenNewFileCreationPage(IStructuredSelection selection) { - super(GMFGenNewFileCreationPage.class.getSimpleName(), selection); - setTitle(Messages.TransformToGenModelWizard_title_gmfgen); - setDescription(Messages.TransformToGenModelWizard_descr_gmfgen); - } - - @Override - public void createControl(Composite parent) { - resourceGroupEmulator = new ResourceGroupEmulator(); - super.createControl(parent); - validateFileExists(); - } - - protected boolean validatePage() { - if (emulateValidate()) { - // Make sure the file ends in ".gmfgen". - // - String enteredExt = new Path(getFileName()).getFileExtension(); - if (enteredExt == null || !enteredExt.equals(EXT_GMFGEN)) { - String pattern = Messages.GMFGenNewFileCreationPage_e_filename; - setErrorMessage(MessageFormat.format(pattern, new Object[] { EXT_GMFGEN })); - return false; - } else { - validateFileExists(); - // TODO provide an option (prefpage or e.g. CTRL on kbd while wizard starts) whether toolsmith like - // to keep project-relative settings (for those who hate /project/.settings/ folder, as I do) - // e.g. Platform.getPreferenceService().getBoolean("oeg.bridge.ui", "transf-settings-per-gmfgen", true, null) - Preferences contextOptions = new ProjectScope(getModelFile().getProject()).getNode(getFileName()); - ((TransformToGenModelWizard) getWizard()).getTransformOperation().getOptions().setContext(contextOptions); - return true; - } - } else { - return false; - } - } - - private void validateFileExists() { - IPath resourcePath = getContainerFullPath().append(getFileName()); - if (isFileExists(resourcePath)) { - setMessage(Messages.ResourceGroup_nameExists, IMessageProvider.WARNING); - } - } - - public IFile getModelFile() { - return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName())); - } - - private boolean emulateValidate() { - boolean valid = true; - - if (!resourceGroupEmulator.validateControls()) { - // if blank name then fail silently - if (resourceGroupEmulator.getProblemType() == ResourceGroupEmulator.PROBLEM_RESOURCE_EMPTY || resourceGroupEmulator.getProblemType() == ResourceGroupEmulator.PROBLEM_CONTAINER_EMPTY) { - setMessage(resourceGroupEmulator.getProblemMessage()); - setErrorMessage(null); - } else { - setErrorMessage(resourceGroupEmulator.getProblemMessage()); - } - valid = false; - } - - String resourceName = getFileName(); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IStatus result = workspace.validateName(resourceName, IResource.FILE); - if (!result.isOK()) { - setErrorMessage(result.getMessage()); - return false; - } - - IStatus linkedResourceStatus = null; - if (valid) { - linkedResourceStatus = validateLinkedResource(); - if (linkedResourceStatus.getSeverity() == IStatus.ERROR) { - valid = false; - } - } - // validateLinkedResource sets messages itself - if (valid && (linkedResourceStatus == null || linkedResourceStatus.isOK())) { - setMessage(null); - setErrorMessage(null); - } - return valid; - } - - boolean isFileExists(IPath resourcePath) { - if (resourcePath == null) { - return false; - } - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - return (workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists()); - } - - // XXX: remove after fix of https://bugs.eclipse.org/bugs/show_bug.cgi?id=172000 - private class ResourceGroupEmulator { - - static final int PROBLEM_NONE = 0; - - static final int PROBLEM_RESOURCE_EMPTY = 1; - - static final int PROBLEM_RESOURCE_EXIST = 2; - - static final int PROBLEM_PATH_INVALID = 4; - - static final int PROBLEM_CONTAINER_EMPTY = 5; - - static final int PROBLEM_PROJECT_DOES_NOT_EXIST = 6; - - static final int PROBLEM_NAME_INVALID = 7; - - static final int PROBLEM_PATH_OCCUPIED = 8; - - private boolean allowExistingResources = true; - - private String problemMessage = "";//$NON-NLS-1$ - - private int problemType = PROBLEM_NONE; - - ResourceGroupEmulator() { - // just create - } - - boolean validateControls() { - // don't attempt to validate controls until they have been created - try { - getFileName(); - } catch (Exception e) { - return false; - } - problemType = PROBLEM_NONE; - problemMessage = "";//$NON-NLS-1$ - - if (!validateContainer() || !validateResourceName()) { - return false; - } - - IPath path = getContainerFullPath().append(getFileName()); - return validateFullResourcePath(path); - } - - private boolean validateContainer() { - IPath path = getContainerFullPath(); - if (path == null) { - problemType = PROBLEM_CONTAINER_EMPTY; - problemMessage = Messages.ResourceGroup_folderEmpty; - return false; - } - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - String projectName = path.segment(0); - if (projectName == null || !workspace.getRoot().getProject(projectName).exists()) { - problemType = PROBLEM_PROJECT_DOES_NOT_EXIST; - problemMessage = Messages.ResourceGroup_noProject; - return false; - } - // path is invalid if any prefix is occupied by a file - IWorkspaceRoot root = workspace.getRoot(); - while (path.segmentCount() > 1) { - if (root.getFile(path).exists()) { - problemType = PROBLEM_PATH_OCCUPIED; - problemMessage = NLS.bind(Messages.ResourceGroup_pathOccupied, path.makeRelative()); - return false; - } - path = path.removeLastSegments(1); - } - return true; - } - - private boolean validateResourceName() { - String resourceName = getFileName(); - - if (resourceName.length() == 0) { - problemType = PROBLEM_RESOURCE_EMPTY; - problemMessage = NLS.bind(Messages.ResourceGroup_emptyName, Messages.WizardNewFileCreationPage_file); - return false; - } - - if (!Path.ROOT.isValidPath(resourceName)) { - problemType = PROBLEM_NAME_INVALID; - problemMessage = NLS.bind(Messages.ResourceGroup_invalidFilename, resourceName); - return false; - } - return true; - } - - private boolean validateFullResourcePath(IPath resourcePath) { - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - - IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER); - if (!result.isOK()) { - problemType = PROBLEM_PATH_INVALID; - problemMessage = result.getMessage(); - return false; - } - - if (!allowExistingResources && isFileExists(resourcePath)) { - problemType = PROBLEM_RESOURCE_EXIST; - problemMessage = Messages.ResourceGroup_nameExists; - return false; - } - return true; - } - - String getProblemMessage() { - return problemMessage; - } - - int getProblemType() { - return problemType; - } - } -} |