Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Bettini2015-04-22 13:04:32 +0000
committerLorenzo Bettini2015-04-22 13:13:21 +0000
commit20be0468d0dc4fc01fd5e935b5484a48e7877b09 (patch)
tree25a9e0a01fa95a21fbe729f1508a396226bb8bb2
parentf79fbcd15abc7d2a83dbd67a249176f40ce9c31e (diff)
downloadorg.eclipse.emf-parsley-20be0468d0dc4fc01fd5e935b5484a48e7877b09.tar.gz
org.eclipse.emf-parsley-20be0468d0dc4fc01fd5e935b5484a48e7877b09.tar.xz
org.eclipse.emf-parsley-20be0468d0dc4fc01fd5e935b5484a48e7877b09.zip
448122: View class name without FQN in Project Wizard
In the generated viewpart section of the DSL module, generated by the wizard, the View's class name is generated without the FQN (an import is generated instead). Change-Id: Ic60bdbda6926334380d0db68dcba2a0484baf106 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=448122
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF3
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslNewProjectFilesTests.xtend62
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend24
-rw-r--r--dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java6
-rw-r--r--plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend11
5 files changed, 92 insertions, 14 deletions
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF b/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF
index ff3ee274f..8f1bc8303 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/META-INF/MANIFEST.MF
@@ -19,7 +19,8 @@ Require-Bundle: org.eclipse.emf.parsley.dsl,
org.eclipse.emf.parsley.views,
org.eclipse.jface;bundle-version="3.5.0",
org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
- org.eclipse.emf.parsley.tests.pde.utils
+ org.eclipse.emf.parsley.tests.pde.utils,
+ org.eclipse.emf.parsley.generator.common
Import-Package: org.apache.log4j,
org.apache.log4j.spi,
org.hamcrest.core,
diff --git a/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslNewProjectFilesTests.xtend b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslNewProjectFilesTests.xtend
new file mode 100644
index 000000000..231e75d1b
--- /dev/null
+++ b/dsl/org.eclipse.emf.parsley.dsl.tests/src/org/eclipse/emf/parsley/dsl/tests/EmfParsleyDslNewProjectFilesTests.xtend
@@ -0,0 +1,62 @@
+package org.eclipse.emf.parsley.dsl.tests
+
+import org.eclipse.emf.parsley.dsl.ui.wizard.EmfParsleyDslNewProjectFiles
+import org.junit.Test
+
+import static extension org.junit.Assert.*
+
+/**
+ * @author Lorenzo Bettini - Initial contribution and API
+ */
+class EmfParsleyDslNewProjectFilesTests {
+
+ val generator = new EmfParsleyDslNewProjectFiles
+
+ @Test
+ def void testDslModuleWithoutAdditionalContents() {
+ generator.exampleDslFile("testproject").assertGeneratedContentEqualsTo(
+'''
+/* testproject Emf Parsley Dsl Module file */
+module testproject {
+
+}
+'''
+ )
+ }
+
+ @Test
+ def void testDslModuleWithFQN() {
+ generator.exampleDslFile("mypackage.testproject").assertGeneratedContentEqualsTo(
+'''
+/* mypackage.testproject Emf Parsley Dsl Module file */
+module mypackage.testproject {
+
+}
+'''
+ )
+ }
+
+ @Test
+ def void testDslModuleWithView() {
+ generator.dslFileWithView("mypackage.testproject", "my.views.MyView").assertGeneratedContentEqualsTo(
+'''
+import my.views.MyView
+
+/* mypackage.testproject Emf Parsley Dsl Module file */
+module mypackage.testproject {
+
+ parts {
+ viewpart mypackage.testproject {
+ viewname "Testproject"
+ viewclass MyView
+ }
+ }
+}
+'''
+ )
+ }
+
+ def private assertGeneratedContentEqualsTo(CharSequence actual, CharSequence expected) {
+ expected.toString.assertEquals(actual.toString)
+ }
+} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend
index 51f0c08e4..5ec9ce17a 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslNewProjectFiles.xtend
@@ -28,16 +28,20 @@ module «projectName» {
'''
def dslFileWithView(String projectName, String viewId) {
- exampleDslFile(projectName,
-'''
-parts {
- viewpart «projectName» {
- viewname "«projectName.prefixFromProject»"
- viewclass «viewId»
- }
-}
-'''
- )
+ '''
+ import «viewId»
+
+ «exampleDslFile(projectName,
+ '''
+ parts {
+ viewpart «projectName» {
+ viewname "«projectName.prefixFromProject»"
+ viewclass «viewId.prefixFromProject»
+ }
+ }
+ '''
+ )»
+ '''
}
} \ No newline at end of file
diff --git a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
index b88011bbd..5cc19d4dd 100644
--- a/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
+++ b/dsl/org.eclipse.emf.parsley.dsl.ui/src/org/eclipse/emf/parsley/dsl/ui/wizard/EmfParsleyDslProjectCreatorCustom.java
@@ -28,12 +28,12 @@ import com.google.common.collect.Lists;
* @author Lorenzo Bettini
*
*/
-public class EmfParsleyDslProjectCreatorCustom extends
- EmfParsleyDslProjectCreator {
+public class EmfParsleyDslProjectCreatorCustom extends EmfParsleyDslProjectCreator {
static EmfParsleyDslNewProjectFiles filesGenerator = new EmfParsleyDslNewProjectFiles();
static EmfParsleyProjectFilesGenerator projectFilesGenerator = new EmfParsleyProjectFilesGenerator();
- @Override
+
+ @Override
protected List<String> getAllFolders() {
return ImmutableList.of(SRC_ROOT,
EmfParsleyDslOutputConfigurationProvider.EMFPARSLEY_GEN);
diff --git a/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend
index 72046be19..e81043a1d 100644
--- a/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend
+++ b/plugins/org.eclipse.emf.parsley.generator.common/src/org/eclipse/emf/parsley/generator/common/EmfParsleyViewFilesGenerator.xtend
@@ -12,6 +12,17 @@ package org.eclipse.emf.parsley.generator.common
class EmfParsleyViewFilesGenerator {
+ def generateViewClass(String projectName, String className, String extendsClass)
+'''
+package «projectName»;
+
+import org.eclipse.emf.parsley.views.«extendsClass»;
+
+public class «className» extends «extendsClass» {
+
+}
+'''
+
def generateConcreteForResourceTreeView(String projectName, String className, String extendsClass)
'''
package «projectName»;

Back to the top