diff options
author | Lorenzo Bettini | 2015-04-22 13:04:32 +0000 |
---|---|---|
committer | Lorenzo Bettini | 2015-04-22 13:13:21 +0000 |
commit | 20be0468d0dc4fc01fd5e935b5484a48e7877b09 (patch) | |
tree | 25a9e0a01fa95a21fbe729f1508a396226bb8bb2 | |
parent | f79fbcd15abc7d2a83dbd67a249176f40ce9c31e (diff) | |
download | org.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
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»; |