<% | |
/** | |
* <copyright> | |
* | |
* Copyright (c) 2002-2008 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 | |
* | |
* </copyright> | |
*/ | |
%> | |
<%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(modelFile.getFullPath().toString()).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); | |
<%=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();%> |