Skip to content

Package: ViewModelWizardNewFileCreationPage

ViewModelWizardNewFileCreationPage

nameinstructionbranchcomplexitylinemethod
ViewModelWizardNewFileCreationPage(String, IStructuredSelection)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
checkProjectNature()
M: 8 C: 13
62%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 2 C: 5
71%
M: 0 C: 1
100%
createControl(Composite)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
getEClass()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getModelFile()
M: 0 C: 20
100%
M: 2 C: 4
67%
M: 2 C: 2
50%
M: 0 C: 4
100%
M: 0 C: 1
100%
setEClass(EClass)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
setVisible(boolean)
M: 14 C: 79
85%
M: 5 C: 11
69%
M: 5 C: 4
44%
M: 2 C: 24
92%
M: 0 C: 1
100%
static {...}
M: 0 C: 16
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
validatePage()
M: 21 C: 22
51%
M: 4 C: 4
50%
M: 3 C: 2
40%
M: 5 C: 6
55%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2016 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Alexandra Buzila - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.model.presentation;
15:
16: import java.util.Arrays;
17: import java.util.Collections;
18: import java.util.List;
19:
20: import org.eclipse.core.resources.IContainer;
21: import org.eclipse.core.resources.IFile;
22: import org.eclipse.core.resources.IFolder;
23: import org.eclipse.core.resources.IProject;
24: import org.eclipse.core.resources.IResource;
25: import org.eclipse.core.resources.ResourcesPlugin;
26: import org.eclipse.core.runtime.CoreException;
27: import org.eclipse.core.runtime.Path;
28: import org.eclipse.emf.ecore.EClass;
29: import org.eclipse.jface.dialogs.IMessageProvider;
30: import org.eclipse.jface.viewers.IStructuredSelection;
31: import org.eclipse.swt.widgets.Composite;
32: import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
33:
34: /**
35: * @author Alexandra Buzila
36: *
37: */
38: /**
39: * This is the first page of the wizard. <!-- begin-user-doc --> <!--
40: * end-user-doc -->
41: *
42: * @generated
43: */
44: public class ViewModelWizardNewFileCreationPage extends
45:         WizardNewFileCreationPage {
46:
47:         /**
48:          * The supported extensions for created files. <!-- begin-user-doc --> <!--
49:          * end-user-doc -->
50:          *
51:          * @generated
52:          */
53:         public static final List<String> FILE_EXTENSIONS = Collections
54:                 .unmodifiableList(Arrays.asList(ViewEditorPlugin.INSTANCE
55:                         .getString("_UI_ViewEditorFilenameExtensions").split( //$NON-NLS-1$
56:                                 "\\s*,\\s*"))); //$NON-NLS-1$
57:
58:         /**
59:          * A formatted list of supported file extensions, suitable for display. <!--
60:          * begin-user-doc --> <!-- end-user-doc -->
61:          *
62:          * @generated
63:          */
64:         public static final String FORMATTED_FILE_EXTENSIONS = ViewEditorPlugin.INSTANCE
65:                 .getString("_UI_ViewEditorFilenameExtensions").replaceAll( //$NON-NLS-1$
66:                         "\\s*,\\s*", ", "); //$NON-NLS-1$ //$NON-NLS-2$
67:
68:         private EClass eClass;
69:         private final IStructuredSelection selection;
70:
71:         /**
72:          * @return the eClass
73:          */
74:         public EClass getEClass() {
75:                 return eClass;
76:         }
77:
78:         /**
79:          * @param eClass the eClass to set
80:          */
81:         public void setEClass(EClass eClass) {
82:                 this.eClass = eClass;
83:         }
84:
85:         /**
86:          * Pass in the selection. <!-- begin-user-doc --> <!-- end-user-doc -->
87:          *
88:          * @generated
89:          */
90:         public ViewModelWizardNewFileCreationPage(String pageId,
91:                 IStructuredSelection selection) {
92:                 super(pageId, selection);
93:                 this.selection = selection;
94:         }
95:
96:         /**
97:          * {@inheritDoc}
98:          *
99:          * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#setVisible(boolean)
100:          */
101:         @Override
102:         public void setVisible(boolean visible) {
103:                 super.setVisible(visible);
104:•                if (visible) {
105:                         // Try and get the resource selection to determine a current directory
106:                         // for the file dialog.
107:•                        if (selection != null && !selection.isEmpty()) {
108:                                 // Get the resource...
109:                                 final Object selectedElement = selection.iterator().next();
110:•                                if (selectedElement instanceof IResource) {
111:                                         // Get the resource parent, if its a file.
112:                                         IResource selectedResource = (IResource) selectedElement;
113:•                                        if (selectedResource.getType() == IResource.FILE) {
114:                                                 selectedResource = selectedResource.getParent();
115:                                         }
116:
117:                                         // This gives us a directory...
118:•                                        if (selectedResource instanceof IFolder
119:•                                                || selectedResource instanceof IProject) {
120:                                                 // Set this for the container.
121:                                                 setContainerFullPath(selectedResource
122:                                                         .getFullPath());
123:                                         }
124:                                         // Make up a unique new name here.
125:                                         final String defaultModelBaseFilename = eClass.getName();
126:                                         final String defaultModelFilenameExtension = FILE_EXTENSIONS
127:                                                 .get(0);
128:                                         String modelFilename = defaultModelBaseFilename + "." //$NON-NLS-1$
129:                                                 + defaultModelFilenameExtension;
130:•                                        for (int i = 1; ((IContainer) selectedResource)
131:                                                 .findMember(modelFilename) != null; ++i) {
132:                                                 modelFilename = defaultModelBaseFilename + i + "." //$NON-NLS-1$
133:                                                         + defaultModelFilenameExtension;
134:                                         }
135:                                         setFileName(modelFilename);
136:                                         setPageComplete(true);
137:                                 }
138:                         }
139:                 } else {
140:                         setPageComplete(false);
141:                 }
142:
143:         }
144:
145:         /**
146:          * {@inheritDoc}
147:          *
148:          * @see org.eclipse.ui.dialogs.WizardNewFileCreationPage#createControl(org.eclipse.swt.widgets.Composite)
149:          */
150:         @Override
151:         public void createControl(Composite parent) {
152:                 super.createControl(parent);
153:         }
154:
155:         /**
156:          * The framework calls this to see if the file is correct. <!--
157:          * begin-user-doc --> <!-- end-user-doc -->
158:          *
159:          * @generated
160:          */
161:         @Override
162:         protected boolean validatePage() {
163:•                if (super.validatePage()) {
164:                         // validate extension
165:                         final String extension = new Path(getFileName()).getFileExtension();
166:•                        if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
167:•                                final String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" //$NON-NLS-1$
168:                                         : "_WARN_FilenameExtension"; //$NON-NLS-1$
169:                                 setErrorMessage(ViewEditorPlugin.INSTANCE.getString(key,
170:                                         new Object[] { FORMATTED_FILE_EXTENSIONS }));
171:                                 return false;
172:                         }
173:                         // validate selected project
174:                         checkProjectNature();
175:
176:                         return true;
177:                 }
178:                 return false;
179:         }
180:
181:         private void checkProjectNature() {
182:•                if (getModelFile() == null) {
183:                         return;
184:                 }
185:                 final IProject project = getModelFile().getProject();
186:                 try {
187:•                        if (!project.hasNature("org.eclipse.pde.PluginNature")) { //$NON-NLS-1$
188:                                 setMessage(ViewEditorPlugin.INSTANCE.getString("_WARN_PluginProject"), IMessageProvider.WARNING); //$NON-NLS-1$
189:                         }
190:                 } catch (final CoreException ex) {
191:                         // do nothing
192:                 }
193:         }
194:
195:         /**
196:          * <!-- begin-user-doc --> <!-- end-user-doc -->
197:          *
198:          * @generated
199:          */
200:         public IFile getModelFile() {
201:•                if (getControl() == null || getContainerFullPath() == null || getFileName() == null) {
202:                         return null;
203:                 }
204:                 return ResourcesPlugin.getWorkspace().getRoot()
205:                         .getFile(getContainerFullPath().append(getFileName()));
206:         }
207:
208: }