| |
| <% |
| /** |
| * Copyright (c) 2002-2010 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are 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: |
| * IBM - Initial API and implementation |
| */ |
| %> |
| <%GenPackage genPackage = (GenPackage)argument; GenModel genModel=genPackage.getGenModel();%> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern.base/egf/EMF_Pattern_Base.fcore#LogicalName=org.eclipse.egf.emf.pattern.base.HeaderJava" args="parameter:argument"%> |
| <%String _ListOfString = "List" + (genModel.useGenerics() ? "<" + genModel.getImportedName("java.lang.String") + ">" : "");%> |
| <%String _ArrayListOfString = "ArrayList" + (genModel.useGenerics() ? "<" + genModel.getImportedName("java.lang.String") + ">" : "");%> |
| <%String _CollectionOfString = "Collection" + (genModel.useGenerics() ? "<" + genModel.getImportedName("java.lang.String") + ">" : "");%> |
| <%String _MapOfObjectToObject = "Map" + (genModel.useGenerics() ? "<" + genModel.getImportedName("java.lang.Object") + ", " + genModel.getImportedName("java.lang.Object") + ">" : "");%> |
| <%String _HashMapOfObjectToObject = "HashMap" + (genModel.useGenerics() ? "<" + genModel.getImportedName("java.lang.Object") + ", " + genModel.getImportedName("java.lang.Object") + ">" : "");%> |
| package <%=genPackage.getPresentationPackageName()%>; |
| |
| |
| import java.util.ArrayList; |
| import java.util.Arrays; |
| import java.util.Collection; |
| import java.util.Collections; |
| import java.util.HashMap; |
| <%if (!genModel.useGenerics()) {%> |
| import java.util.Iterator; |
| <%}%> |
| import java.util.List; |
| import java.util.Map; |
| import java.util.MissingResourceException; |
| import java.util.StringTokenizer; |
| |
| <%if (!genModel.isRichClientPlatform() && genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {%> |
| import org.eclipse.emf.common.CommonPlugin; |
| |
| <%}%> |
| import org.eclipse.emf.common.util.URI; |
| |
| import org.eclipse.emf.ecore.EClass; |
| import org.eclipse.emf.ecore.EClassifier; |
| |
| import org.eclipse.emf.ecore.resource.Resource; |
| import org.eclipse.emf.ecore.resource.ResourceSet; |
| |
| import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; |
| |
| import org.eclipse.emf.ecore.EObject; |
| |
| import org.eclipse.emf.ecore.xmi.XMLResource; |
| |
| import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; |
| |
| <%if (!genModel.isRichClientPlatform()) {%> |
| import org.eclipse.core.resources.IContainer; |
| import org.eclipse.core.resources.IFile; |
| import org.eclipse.core.resources.IFolder; |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.resources.IResource; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| |
| <%}%> |
| import org.eclipse.core.runtime.IProgressMonitor; |
| |
| import org.eclipse.jface.dialogs.MessageDialog; |
| |
| import org.eclipse.jface.viewers.IStructuredSelection; |
| |
| import org.eclipse.jface.wizard.Wizard; |
| import org.eclipse.jface.wizard.WizardPage; |
| |
| import org.eclipse.swt.SWT; |
| |
| import org.eclipse.swt.events.ModifyListener; |
| import org.eclipse.swt.events.ModifyEvent; |
| |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| |
| import org.eclipse.swt.widgets.Combo; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Label; |
| |
| import org.eclipse.ui.INewWizard; |
| import org.eclipse.ui.IWorkbench; |
| |
| <%if (!genModel.isRichClientPlatform()) {%> |
| import org.eclipse.ui.actions.WorkspaceModifyOperation; |
| |
| import org.eclipse.ui.dialogs.WizardNewFileCreationPage; |
| |
| import org.eclipse.ui.part.FileEditorInput; |
| import org.eclipse.ui.part.ISetSelectionTarget; |
| |
| <%}%> |
| <%if (!genModel.isSuppressEMFMetaData()) {%> |
| import <%=genPackage.getQualifiedFactoryInterfaceName()%>; |
| <%}%> |
| import <%=genPackage.getQualifiedPackageInterfaceName()%>; |
| import <%=genPackage.getQualifiedEditPluginClassName()%>; |
| |
| |
| <%genModel.markImportLocation(stringBuffer);%> |
| |
| |
| /** |
| * This is a simple wizard for creating a new model file. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public class <%=genPackage.getModelWizardClassName()%> extends Wizard implements INewWizard |
| { |
| <%if (genModel.hasCopyrightField()) {%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static final <%=genModel.getImportedName("java.lang.String")%> copyright = <%=genModel.getCopyrightFieldLiteral()%>;<%=genModel.getNonNLS()%> |
| |
| <%}%> |
| /** |
| * The supported extensions for created files. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static final <%=_ListOfString%> FILE_EXTENSIONS = |
| Collections.unmodifiableList(Arrays.asList(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getEditorClassName()%>FilenameExtensions").split("\\s*,\\s*")));<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%> |
| |
| /** |
| * A formatted list of supported file extensions, suitable for display. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static final String FORMATTED_FILE_EXTENSIONS = |
| <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getEditorClassName()%>FilenameExtensions").replaceAll("\\s*,\\s*", ", ");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%><%=genModel.getNonNLS(3)%> |
| |
| /** |
| * This caches an instance of the model package. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.isSuppressEMFMetaData() ? genModel.getImportedName("org.eclipse.emf.ecore.EPackage") : genPackage.getPackageInterfaceName()%> <%=genPackage.getUncapPackageName()%> = <%=genPackage.getPackageInterfaceName()%>.eINSTANCE; |
| |
| /** |
| * This caches an instance of the model factory. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.isSuppressEMFMetaData() ? genModel.getImportedName("org.eclipse.emf.ecore.EFactory") : genPackage.getFactoryInterfaceName()%> <%=genPackage.getUncapFactoryName()%> = <%=genPackage.getUncapPackageName()%>.get<%=genModel.isSuppressEMFMetaData() ? "EFactoryInstance" : genPackage.getFactoryName()%>(); |
| |
| <%if (!genModel.isRichClientPlatform()) {%> |
| /** |
| * This is the file creation page. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genPackage.getModelWizardClassName()%>NewFileCreationPage newFileCreationPage; |
| |
| <%}%> |
| /** |
| * This is the initial object creation page. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genPackage.getModelWizardClassName()%>InitialObjectCreationPage initialObjectCreationPage; |
| |
| /** |
| * Remember the selection during initialization for populating the default container. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected IStructuredSelection selection; |
| |
| /** |
| * Remember the workbench during initialization. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected IWorkbench workbench; |
| |
| /** |
| <%if (!genPackage.hasDocumentRoot()) {%> |
| * Caches the names of the types that can be created as the root object. |
| <%} else {%> |
| * Caches the names of the features representing global elements. |
| <%}%> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=_ListOfString%> initialObjectNames; |
| |
| /** |
| * This just records the information. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void init(IWorkbench workbench, IStructuredSelection selection) |
| { |
| this.workbench = workbench; |
| this.selection = selection; |
| setWindowTitle(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_Wizard_label"));<%=genModel.getNonNLS()%> |
| setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getImage("full/wizban/New<%=genPackage.getPrefix()%>")));<%=genModel.getNonNLS()%> |
| } |
| |
| /** |
| <%if (!genPackage.hasDocumentRoot()) {%> |
| * Returns the names of the types that can be created as the root object. |
| <%} else {%> |
| * Returns the names of the features representing global elements. |
| <%}%> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=_CollectionOfString%> getInitialObjectNames() |
| { |
| if (initialObjectNames == null) |
| { |
| initialObjectNames = new <%=_ArrayListOfString%>(); |
| <%if (!genPackage.hasDocumentRoot()) {%> |
| <%if (genModel.useGenerics()) {%> |
| for (EClassifier eClassifier : <%=genPackage.getUncapPackageName()%>.getEClassifiers()) |
| <%} else {%> |
| for (Iterator classifiers = <%=genPackage.getUncapPackageName()%>.getEClassifiers().iterator(); classifiers.hasNext(); ) |
| <%}%> |
| { |
| <%if (!genModel.useGenerics()) {%> |
| EClassifier eClassifier = (EClassifier)classifiers.next(); |
| <%}%> |
| if (eClassifier instanceof EClass) |
| { |
| EClass eClass = (EClass)eClassifier; |
| if (!eClass.isAbstract()) |
| { |
| initialObjectNames.add(eClass.getName()); |
| } |
| } |
| } |
| <%} else {%> |
| <%if (genModel.useGenerics()) {%> |
| for (<%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> eStructuralFeature : <%=genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData")%>.INSTANCE.getAllElements(<%=genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData")%>.INSTANCE.getDocumentRoot(<%=genPackage.getUncapPackageName()%>))) |
| <%} else {%> |
| for (Iterator elements = <%=genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData")%>.INSTANCE.getAllElements(<%=genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData")%>.INSTANCE.getDocumentRoot(<%=genPackage.getUncapPackageName()%>)).iterator(); elements.hasNext(); ) |
| <%}%> |
| { |
| <%if (!genModel.useGenerics()) {%> |
| <%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%> eStructuralFeature = (<%=genModel.getImportedName("org.eclipse.emf.ecore.EStructuralFeature")%>)elements.next(); |
| <%}%> |
| if (eStructuralFeature.isChangeable()) |
| { |
| EClassifier eClassifier = eStructuralFeature.getEType(); |
| if (eClassifier instanceof EClass) |
| { |
| EClass eClass = (EClass)eClassifier; |
| if (!eClass.isAbstract()) |
| { |
| initialObjectNames.add(eStructuralFeature.getName()); |
| } |
| } |
| } |
| } |
| <%}%> |
| Collections.sort(initialObjectNames, <%if (!genModel.isRichClientPlatform() && genModel.getComplianceLevel().getValue() >= GenJDKLevel.JDK50) {%>CommonPlugin.INSTANCE.getComparator()<%} else {%>java.text.Collator.getInstance()<%}%>); |
| } |
| return initialObjectNames; |
| } |
| |
| /** |
| * Create a new model. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected EObject createInitialModel() |
| { |
| <%if (!genPackage.hasDocumentRoot()) {%> |
| EClass eClass = (EClass)<%=genPackage.getUncapPackageName()%>.getEClassifier(initialObjectCreationPage.getInitialObjectName()); |
| EObject rootObject = <%=genPackage.getUncapFactoryName()%>.create(eClass); |
| <%} else {%> |
| EClass eClass = <%=genModel.getImportedName("org.eclipse.emf.ecore.util.ExtendedMetaData")%>.INSTANCE.getDocumentRoot(<%=genPackage.getUncapPackageName()%>); |
| EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(initialObjectCreationPage.getInitialObjectName()); |
| EObject rootObject = <%=genPackage.getUncapFactoryName()%>.create(eClass); |
| rootObject.eSet(eStructuralFeature, <%=genModel.getImportedName("org.eclipse.emf.ecore.util.EcoreUtil")%>.create((EClass)eStructuralFeature.getEType())); |
| <%}%> |
| return rootObject; |
| } |
| |
| /** |
| * Do the work after everything is specified. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public boolean performFinish() |
| { |
| try |
| { |
| <%if (genModel.isRichClientPlatform()) {%> |
| // Get the URI of the model file. |
| // |
| final URI fileURI = getModelURI(); |
| if (new <%=genModel.getImportedName("java.io.File")%>(fileURI.toFileString()).exists()) |
| { |
| if (!MessageDialog.openQuestion |
| (getShell(), |
| <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_Question_title"),<%=genModel.getNonNLS()%> |
| <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_WARN_FileConflict", new String []{ fileURI.toFileString() })))<%=genModel.getNonNLS()%> |
| { |
| initialObjectCreationPage.selectFileField(); |
| return false; |
| } |
| } |
| |
| // Do the work within an operation. |
| // |
| <%=genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress")%> operation = new <%=genModel.getImportedName("org.eclipse.jface.operation.IRunnableWithProgress")%>() |
| { |
| public void run(IProgressMonitor progressMonitor) |
| <%} else {%> |
| // Remember the file. |
| // |
| final IFile modelFile = getModelFile(); |
| |
| // Do the work within an operation. |
| // |
| WorkspaceModifyOperation operation = |
| new WorkspaceModifyOperation() |
| { |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| protected void execute(IProgressMonitor progressMonitor) |
| <%}%> |
| { |
| try |
| { |
| // Create a resource set |
| // |
| ResourceSet resourceSet = new ResourceSetImpl(); |
| |
| <%if (!genModel.isRichClientPlatform()) {%> |
| // Get the URI of the model file. |
| // |
| URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true); |
| |
| <%}%> |
| // Create a resource for this file. |
| // |
| Resource resource = resourceSet.createResource(fileURI<%if (genPackage.isContentType()) {%>, <%=genPackage.getImportedPackageInterfaceName()%>.eCONTENT_TYPE<%}%>); |
| |
| // Add the initial model object to the contents. |
| // |
| EObject rootObject = createInitialModel(); |
| if (rootObject != null) |
| { |
| resource.getContents().add(rootObject); |
| } |
| |
| // Save the contents of the resource to the file system. |
| // |
| <%=_MapOfObjectToObject%> options = new <%=_HashMapOfObjectToObject%>(); |
| options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding()); |
| resource.save(options); |
| } |
| catch (Exception exception) |
| { |
| <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.log(exception); |
| } |
| finally |
| { |
| progressMonitor.done(); |
| } |
| } |
| }; |
| |
| getContainer().run(false, false, operation); |
| |
| <%if (genModel.isRichClientPlatform()) {%> |
| return <%=genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName())%>.openEditor(workbench, fileURI); |
| <%} else {%> |
| // Select the new file resource in the current view. |
| // |
| <%=genModel.getImportedName("org.eclipse.ui.IWorkbenchWindow")%> workbenchWindow = workbench.getActiveWorkbenchWindow(); |
| <%=genModel.getImportedName("org.eclipse.ui.IWorkbenchPage")%> page = workbenchWindow.getActivePage(); |
| final <%=genModel.getImportedName("org.eclipse.ui.IWorkbenchPart")%> activePart = page.getActivePart(); |
| if (activePart instanceof ISetSelectionTarget) |
| { |
| final <%=genModel.getImportedName("org.eclipse.jface.viewers.ISelection")%> targetSelection = new <%=genModel.getImportedName("org.eclipse.jface.viewers.StructuredSelection")%>(modelFile); |
| getShell().getDisplay().asyncExec |
| (new Runnable() |
| { |
| public void run() |
| { |
| ((ISetSelectionTarget)activePart).selectReveal(targetSelection); |
| } |
| }); |
| } |
| |
| // Open an editor on the new file. |
| // |
| try |
| { |
| page.openEditor |
| (new FileEditorInput(modelFile), |
| workbench.getEditorRegistry().getDefaultEditor<%if (!genPackage.isContentType()) {%>(modelFile.getFullPath().toString()).getId());<%} else {%> |
| (modelFile.getFullPath().toString(), |
| <%=genModel.getImportedName("org.eclipse.core.runtime.Platform")%>.getContentTypeManager().getContentType(<%=genPackage.getImportedPackageInterfaceName()%>.eCONTENT_TYPE)).getId()); |
| <%}%> |
| } |
| catch (<%=genModel.getImportedName("org.eclipse.ui.PartInitException")%> exception) |
| { |
| MessageDialog.openError(workbenchWindow.getShell(), <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());<%=genModel.getNonNLS()%> |
| return false; |
| } |
| |
| return true; |
| <%}%> |
| } |
| catch (Exception exception) |
| { |
| <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.log(exception); |
| return false; |
| } |
| } |
| |
| <%if (!genModel.isRichClientPlatform()) {%> |
| /** |
| * This is the one page of the wizard. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public class <%=genPackage.getModelWizardClassName()%>NewFileCreationPage extends WizardNewFileCreationPage |
| { |
| /** |
| * Pass in the selection. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genPackage.getModelWizardClassName()%>NewFileCreationPage(String pageId, IStructuredSelection selection) |
| { |
| super(pageId, selection); |
| } |
| |
| /** |
| * The framework calls this to see if the file is correct. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| protected boolean validatePage() |
| { |
| if (super.validatePage()) |
| { |
| String extension = new <%=genModel.getImportedName("org.eclipse.core.runtime.Path")%>(getFileName()).getFileExtension(); |
| if (extension == null || !FILE_EXTENSIONS.contains(extension)) |
| { |
| String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%> |
| setErrorMessage(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS })); |
| return false; |
| } |
| return true; |
| } |
| return false; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public IFile getModelFile() |
| { |
| return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName())); |
| } |
| } |
| |
| <%}%> |
| /** |
| * This is the page where the type of object to create is selected. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public class <%=genPackage.getModelWizardClassName()%>InitialObjectCreationPage extends WizardPage |
| { |
| <%if (genModel.isRichClientPlatform()) {%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=genModel.getImportedName("org.eclipse.swt.widgets.Text")%> fileField; |
| |
| <%}%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected Combo initialObjectField; |
| |
| /** |
| * @generated |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| */ |
| protected <%=_ListOfString%> encodings; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected Combo encodingField; |
| |
| /** |
| * Pass in the selection. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public <%=genPackage.getModelWizardClassName()%>InitialObjectCreationPage(String pageId) |
| { |
| super(pageId); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void createControl(Composite parent) |
| { |
| Composite composite = new Composite(parent, SWT.NONE); |
| { |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 1; |
| layout.verticalSpacing = 12; |
| composite.setLayout(layout); |
| |
| GridData data = new GridData(); |
| data.verticalAlignment = GridData.FILL; |
| data.grabExcessVerticalSpace = true; |
| data.horizontalAlignment = GridData.FILL; |
| composite.setLayoutData(data); |
| } |
| |
| <%if (genModel.isRichClientPlatform()) {%> |
| Label resourceURILabel = new Label(composite, SWT.LEFT); |
| { |
| resourceURILabel.setText(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_File_label"));<%=genModel.getNonNLS()%> |
| |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.FILL; |
| resourceURILabel.setLayoutData(data); |
| } |
| |
| Composite fileComposite = new Composite(composite, SWT.NONE); |
| { |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.END; |
| fileComposite.setLayoutData(data); |
| |
| GridLayout layout = new GridLayout(); |
| data.horizontalAlignment = GridData.FILL; |
| layout.marginHeight = 0; |
| layout.marginWidth = 0; |
| layout.numColumns = 2; |
| fileComposite.setLayout(layout); |
| } |
| |
| fileField = new <%=genModel.getImportedName("org.eclipse.swt.widgets.Text")%>(fileComposite, SWT.BORDER); |
| { |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.FILL; |
| data.grabExcessHorizontalSpace = true; |
| data.horizontalSpan = 1; |
| fileField.setLayoutData(data); |
| } |
| |
| fileField.addModifyListener(validator); |
| |
| <%if (!genModel.isRichAjaxPlatform()) {%> |
| <%=genModel.getImportedName("org.eclipse.swt.widgets.Button")%> resourceURIBrowseFileSystemButton = new <%=genModel.getImportedName("org.eclipse.swt.widgets.Button")%>(fileComposite, SWT.PUSH); |
| resourceURIBrowseFileSystemButton.setText(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_Browse_label"));<%=genModel.getNonNLS()%> |
| |
| resourceURIBrowseFileSystemButton.addSelectionListener |
| (new <%=genModel.getImportedName("org.eclipse.swt.events.SelectionAdapter")%>() |
| { |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public void widgetSelected(<%=genModel.getImportedName("org.eclipse.swt.events.SelectionEvent")%> event) |
| { |
| String[] filters = <%if (!genModel.useGenerics()) {%>(String[])<%}%><%=genPackage.getImportedEditorClassName()%>.FILE_EXTENSION_FILTERS.toArray(new String[<%=genPackage.getImportedEditorClassName()%>.FILE_EXTENSION_FILTERS.size()]); |
| String[] files = <%=genModel.getImportedName(genModel.getQualifiedEditorAdvisorClassName())%>.openFilePathDialog(getShell(), <%=genModel.getImportedName("org.eclipse.swt.SWT")%>.SAVE, filters); |
| if (files.length > 0) |
| { |
| fileField.setText(files[0]); |
| } |
| } |
| }); |
| <%}%> |
| <%}%> |
| Label containerLabel = new Label(composite, SWT.LEFT); |
| { |
| containerLabel.setText(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_ModelObject"));<%=genModel.getNonNLS()%> |
| |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.FILL; |
| containerLabel.setLayoutData(data); |
| } |
| |
| initialObjectField = new Combo(composite, SWT.BORDER); |
| { |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.FILL; |
| data.grabExcessHorizontalSpace = true; |
| initialObjectField.setLayoutData(data); |
| } |
| |
| <%if (genModel.useGenerics()) {%> |
| for (String objectName : getInitialObjectNames()) |
| { |
| initialObjectField.add(getLabel(objectName)); |
| } |
| <%} else {%> |
| for (Iterator i = getInitialObjectNames().iterator(); i.hasNext(); ) |
| { |
| initialObjectField.add(getLabel((String)i.next())); |
| } |
| <%}%> |
| |
| if (initialObjectField.getItemCount() == 1) |
| { |
| initialObjectField.select(0); |
| } |
| initialObjectField.addModifyListener(validator); |
| |
| Label encodingLabel = new Label(composite, SWT.LEFT); |
| { |
| encodingLabel.setText(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_XMLEncoding"));<%=genModel.getNonNLS()%> |
| |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.FILL; |
| encodingLabel.setLayoutData(data); |
| } |
| encodingField = new Combo(composite, SWT.BORDER); |
| { |
| GridData data = new GridData(); |
| data.horizontalAlignment = GridData.FILL; |
| data.grabExcessHorizontalSpace = true; |
| encodingField.setLayoutData(data); |
| } |
| |
| <%if (genModel.useGenerics()) {%> |
| for (String encoding : getEncodings()) |
| { |
| encodingField.add(encoding); |
| } |
| <%} else {%> |
| for (Iterator i = getEncodings().iterator(); i.hasNext(); ) |
| { |
| encodingField.add((String)i.next()); |
| } |
| <%}%> |
| |
| encodingField.select(0); |
| encodingField.addModifyListener(validator); |
| |
| setPageComplete(validatePage()); |
| setControl(composite); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected ModifyListener validator = |
| new ModifyListener() |
| { |
| public void modifyText(ModifyEvent e) |
| { |
| setPageComplete(validatePage()); |
| } |
| }; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected boolean validatePage() |
| { |
| <%if (genModel.isRichClientPlatform()) {%> |
| URI fileURI = getFileURI(); |
| if (fileURI == null || fileURI.isEmpty()) |
| { |
| setErrorMessage(null); |
| return false; |
| } |
| |
| String extension = fileURI.fileExtension(); |
| if (extension == null || !FILE_EXTENSIONS.contains(extension)) |
| { |
| String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%> |
| setErrorMessage(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS })); |
| return false; |
| } |
| |
| setErrorMessage(null); |
| <%}%> |
| return getInitialObjectName() != null && getEncodings().contains(encodingField.getText()); |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public void setVisible(boolean visible) |
| { |
| super.setVisible(visible); |
| if (visible) |
| { |
| <%if (!genModel.isRichClientPlatform()) {%> |
| if (initialObjectField.getItemCount() == 1) |
| { |
| initialObjectField.clearSelection(); |
| encodingField.setFocus(); |
| } |
| else |
| { |
| encodingField.clearSelection(); |
| initialObjectField.setFocus(); |
| } |
| <%} else {%> |
| initialObjectField.clearSelection(); |
| encodingField.clearSelection(); |
| fileField.setFocus(); |
| <%}%> |
| } |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String getInitialObjectName() |
| { |
| String label = initialObjectField.getText(); |
| |
| <%if (genModel.useGenerics()) {%> |
| for (String name : getInitialObjectNames()) |
| <%} else {%> |
| for (Iterator i = getInitialObjectNames().iterator(); i.hasNext(); ) |
| <%}%> |
| { |
| <%if (!genModel.useGenerics()) {%> |
| String name = (String)i.next(); |
| <%}%> |
| if (getLabel(name).equals(label)) |
| { |
| return name; |
| } |
| } |
| return null; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public String getEncoding() |
| { |
| return encodingField.getText(); |
| } |
| <%if (genModel.isRichClientPlatform()) {%> |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public URI getFileURI() |
| { |
| try |
| { |
| return URI.createFileURI(fileField.getText()); |
| } |
| catch (Exception exception) |
| { |
| // Ignore |
| } |
| return null; |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public void selectFileField() |
| { |
| initialObjectField.clearSelection(); |
| encodingField.clearSelection(); |
| fileField.selectAll(); |
| fileField.setFocus(); |
| } |
| <%}%> |
| <%{ String type = genPackage.hasDocumentRoot() ? "feature" : "type"; String prefix = genPackage.hasDocumentRoot() ? "_UI_DocumentRoot_" : "_UI_";%> |
| |
| /** |
| * Returns the label for the specified <%=type%> name. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected String getLabel(String <%=type%>Name) |
| { |
| try |
| { |
| return <%=genPackage.getEditPluginClassName()%>.INSTANCE.getString("<%=prefix%>" + <%=type%>Name + "_<%=type%>");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%> |
| } |
| catch(MissingResourceException mre) |
| { |
| <%=genModel.getImportedName(genModel.getQualifiedEditorPluginClassName())%>.INSTANCE.log(mre); |
| } |
| return <%=type%>Name; |
| } |
| <%}%> |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| protected <%=_CollectionOfString%> getEncodings() |
| { |
| if (encodings == null) |
| { |
| encodings = new <%=_ArrayListOfString%>(); |
| for (StringTokenizer stringTokenizer = new StringTokenizer(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); )<%=genModel.getNonNLS()%> |
| { |
| encodings.add(stringTokenizer.nextToken()); |
| } |
| } |
| return encodings; |
| } |
| } |
| |
| /** |
| * The framework calls this to create the contents of the wizard. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| <%if (genModel.useClassOverrideAnnotation()) {%> |
| @Override |
| <%}%> |
| public void addPages() |
| { |
| <%if (!genModel.isRichClientPlatform()) {%> |
| // Create a page, set the title, and the initial model file name. |
| // |
| newFileCreationPage = new <%=genPackage.getModelWizardClassName()%>NewFileCreationPage("Whatever", selection);<%=genModel.getNonNLS()%> |
| newFileCreationPage.setTitle(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getModelWizardClassName()%>_label"));<%=genModel.getNonNLS()%> |
| newFileCreationPage.setDescription(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getModelWizardClassName()%>_description"));<%=genModel.getNonNLS()%> |
| newFileCreationPage.setFileName(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getEditorClassName()%>FilenameDefaultBase") + "." + <%if (!genModel.useGenerics()) {%>(String)<%}%>FILE_EXTENSIONS.get(0));<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%> |
| addPage(newFileCreationPage); |
| |
| // Try and get the resource selection to determine a current directory for the file dialog. |
| // |
| if (selection != null && !selection.isEmpty()) |
| { |
| // Get the resource... |
| // |
| Object selectedElement = selection.iterator().next(); |
| if (selectedElement instanceof IResource) |
| { |
| // Get the resource parent, if its a file. |
| // |
| IResource selectedResource = (IResource)selectedElement; |
| if (selectedResource.getType() == IResource.FILE) |
| { |
| selectedResource = selectedResource.getParent(); |
| } |
| |
| // This gives us a directory... |
| // |
| if (selectedResource instanceof IFolder || selectedResource instanceof IProject) |
| { |
| // Set this for the container. |
| // |
| newFileCreationPage.setContainerFullPath(selectedResource.getFullPath()); |
| |
| // Make up a unique new name here. |
| // |
| String defaultModelBaseFilename = <%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getEditorClassName()%>FilenameDefaultBase");<%=genModel.getNonNLS()%> |
| String defaultModelFilenameExtension = <%if (!genModel.useGenerics()) {%>(String)<%}%>FILE_EXTENSIONS.get(0); |
| String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;<%=genModel.getNonNLS()%> |
| for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) |
| { |
| modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;<%=genModel.getNonNLS()%> |
| } |
| newFileCreationPage.setFileName(modelFilename); |
| } |
| } |
| } |
| <%}%> |
| initialObjectCreationPage = new <%=genPackage.getModelWizardClassName()%>InitialObjectCreationPage("Whatever2");<%=genModel.getNonNLS()%> |
| initialObjectCreationPage.setTitle(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_<%=genPackage.getModelWizardClassName()%>_label"));<%=genModel.getNonNLS()%> |
| initialObjectCreationPage.setDescription(<%=genPackage.getImportedEditorPluginClassName()%>.INSTANCE.getString("_UI_Wizard_initial_object_description"));<%=genModel.getNonNLS()%> |
| addPage(initialObjectCreationPage); |
| } |
| |
| <%if (genModel.isRichClientPlatform()) {%> |
| /** |
| * Get the URI from the page. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public URI getModelURI() |
| { |
| return initialObjectCreationPage.getFileURI(); |
| } |
| |
| <%} else {%> |
| /** |
| * Get the file from the page. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public IFile getModelFile() |
| { |
| return newFileCreationPage.getModelFile(); |
| } |
| |
| <%}%> |
| } |
| <%genModel.emitSortedImports();%> |