diff options
10 files changed, 97 insertions, 50 deletions
diff --git a/plugins/org.eclipse.etrice.core.common.ui/src/org/eclipse/etrice/core/common/ui/labeling/BaseLabelProvider.xtend b/plugins/org.eclipse.etrice.core.common.ui/src/org/eclipse/etrice/core/common/ui/labeling/BaseLabelProvider.xtend index 030e1fc72..ef34fef58 100644 --- a/plugins/org.eclipse.etrice.core.common.ui/src/org/eclipse/etrice/core/common/ui/labeling/BaseLabelProvider.xtend +++ b/plugins/org.eclipse.etrice.core.common.ui/src/org/eclipse/etrice/core/common/ui/labeling/BaseLabelProvider.xtend @@ -4,7 +4,7 @@ * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ - * + * * SPDX-License-Identifier: EPL-2.0 * * CONTRIBUTORS: @@ -14,40 +14,55 @@ package org.eclipse.etrice.core.common.ui.labeling import com.google.inject.Inject -import org.eclipse.jface.viewers.StyledString -import org.eclipse.jface.viewers.StyledString.Styler; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider import org.eclipse.etrice.core.common.base.Import -import org.eclipse.xtext.ui.label.StylerFactory import org.eclipse.jface.resource.JFaceResources -import org.eclipse.swt.SWT +import org.eclipse.jface.viewers.StyledString +import org.eclipse.jface.viewers.StyledString.Styler import org.eclipse.swt.graphics.RGB +import org.eclipse.swt.graphics.TextStyle +import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider /** * Provides labels for a EObjects. * * see http://www.eclipse.org/Xtext/documentation.html#labelProvider */ -class BaseLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider { +class BaseLabelProvider extends DefaultEObjectLabelProvider { protected static final String KEYWORD_COLOR = "KEYWORD_COLOR"; + protected val fontRegistry = JFaceResources.fontRegistry // Bug 576866 + protected val colorRegistry = JFaceResources.getColorRegistry + + val keyWordStyler = new Styler() { + + override applyStyles(TextStyle textStyle) { + textStyle.font = fontRegistry.getBold(JFaceResources.TEXT_FONT) + textStyle.foreground = colorRegistry.get(KEYWORD_COLOR) + } + + } + + val typeStyler = new Styler() { + + override applyStyles(TextStyle textStyle) { + textStyle.font = fontRegistry.getItalic(JFaceResources.TEXT_FONT) + } + + } + @Inject - protected StylerFactory stylerFactory; - - protected Styler keywordStyler = null; - protected Styler typeStyler = null; - - @Inject - new(org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider delegate) { + new(AdapterFactoryLabelProvider delegate) { super(delegate); - - JFaceResources.getColorRegistry().put(KEYWORD_COLOR, new RGB(50, 50, 50)); + + colorRegistry.put(KEYWORD_COLOR, new RGB(50, 50, 50)); } def String image(Import mdl) { return null; } - + def StyledString text(Import im) { if (im.getImportedNamespace() === null) { var txt = new StyledString("import model " + im.getImportURI()) @@ -61,20 +76,11 @@ class BaseLabelProvider extends org.eclipse.xtext.ui.label.DefaultEObjectLabelPr } def protected Styler getKeywordStyler() { - if (keywordStyler===null) { - var font = JFaceResources.getFontDescriptor(JFaceResources.TEXT_FONT) - var boldFont = font.setStyle(SWT.BOLD) - keywordStyler = stylerFactory.createStyler(boldFont, KEYWORD_COLOR, null) - } - return keywordStyler + return keyWordStyler } def protected Styler getTypeStyler() { - if (typeStyler===null) { - var font = JFaceResources.getFontDescriptor(JFaceResources.TEXT_FONT) - var italicFont = font.setStyle(SWT.ITALIC) - typeStyler = stylerFactory.createStyler(italicFont, null, null) - } return typeStyler } + } diff --git a/plugins/org.eclipse.etrice.generator.doc/src/org/eclipse/etrice/generator/doc/gen/AsciiDocGen.xtend b/plugins/org.eclipse.etrice.generator.doc/src/org/eclipse/etrice/generator/doc/gen/AsciiDocGen.xtend index 7540343b1..9fb911f43 100644 --- a/plugins/org.eclipse.etrice.generator.doc/src/org/eclipse/etrice/generator/doc/gen/AsciiDocGen.xtend +++ b/plugins/org.eclipse.etrice.generator.doc/src/org/eclipse/etrice/generator/doc/gen/AsciiDocGen.xtend @@ -57,11 +57,12 @@ class AsciiDocGen { def generateSingleDoc(Iterable<RoomPackage> packages, boolean includeImages) ''' = Model Documentation - generated by eTrice - {docdatetime} :toc: left :toclevels: 2 :table-caption!: + «tagStart("all")» + generated by eTrice + {docdatetime} «IF !packages.empty» .Room Packages @@ -97,6 +98,7 @@ class AsciiDocGen { «ac.generateActorDoc(includeImages)» «ENDFOR» «ENDFOR» + «tagEnd("all")» ''' def private generatePackageDoc(RoomPackage pkg) { @@ -494,7 +496,11 @@ class AsciiDocGen { def private static tagStart(RoomClass rc) '''// tag::«rc.FQN»[]''' def private static tagEnd(RoomClass rc) '''// end::«rc.FQN»[]''' + + def private static tagStart(String name) '''// tag::.«name»[]''' + def private static tagEnd(String name) '''// end::.«name»[]''' + def private static String fill(char c, int length) { val builder = new StringBuilder(length) for(var i = 0; i < length; i++) { diff --git a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/DiagramAccess.java b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/DiagramAccess.java index 5f9183f0a..342ee2c50 100644 --- a/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/DiagramAccess.java +++ b/plugins/org.eclipse.etrice.ui.behavior/src/org/eclipse/etrice/ui/behavior/DiagramAccess.java @@ -51,7 +51,7 @@ public class DiagramAccess extends DiagramAccessBase { public String getDiagramName(EObject rootObject) { if (rootObject instanceof ActorClass) { ActorClass ac = (ActorClass) rootObject; - return "Behavior of "+ac.getName(); + return ac.getName() + " Behavior"; } return "unknown"; } diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java index c9dae7be0..0ab11f26f 100644 --- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java +++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java @@ -77,6 +77,12 @@ public class CustomPersistencyBehavior extends DefaultPersistencyBehavior { } } + @Override + protected boolean shouldSave(Resource resource) { + // assume all resources we want to save have tracking modification enabled, see ModificationTrackingEnabler + return resource.isTrackingModification() && super.shouldSave(resource); + } + protected boolean validateResourcesBeforeSave(final IProgressMonitor monitor){ final RunnableWithResult<Boolean> runnable = new RunnableWithResult.Impl<Boolean>() { diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java index f738ef7c2..35cd4fe21 100644 --- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java +++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java @@ -10,12 +10,16 @@ package org.eclipse.etrice.ui.common.base.editor; +import java.util.Set; + import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.transaction.ResourceSetChangeEvent; import org.eclipse.emf.transaction.ResourceSetListenerImpl; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import com.google.common.collect.Sets; + /** * description * @@ -24,6 +28,8 @@ import org.eclipse.emf.transaction.TransactionalEditingDomain; */ public class ModificationTrackingEnabler extends ResourceSetListenerImpl { + private final Set<String> fileExtensions = Sets.newHashSet("structure", "behavior", "room"); + /* (non-Javadoc) * @see org.eclipse.emf.transaction.ResourceSetListenerImpl#setTarget(org.eclipse.emf.transaction.TransactionalEditingDomain) */ @@ -47,8 +53,13 @@ public class ModificationTrackingEnabler extends ResourceSetListenerImpl { protected void setTrackingModification() { ResourceSet rs = getTarget().getResourceSet(); for (Resource r : rs.getResources()) { - if (!r.isTrackingModification()) + if (shouldTrack(r) && !r.isTrackingModification()) r.setTrackingModification(true); } } + + protected boolean shouldTrack(Resource resource) { + String fileExt = resource.getURI().fileExtension(); + return fileExtensions.contains(fileExt.toLowerCase()); + } } diff --git a/plugins/org.eclipse.etrice.ui.structure/src/org/eclipse/etrice/ui/structure/DiagramAccess.java b/plugins/org.eclipse.etrice.ui.structure/src/org/eclipse/etrice/ui/structure/DiagramAccess.java index 1a82ae9e4..03fb269ee 100644 --- a/plugins/org.eclipse.etrice.ui.structure/src/org/eclipse/etrice/ui/structure/DiagramAccess.java +++ b/plugins/org.eclipse.etrice.ui.structure/src/org/eclipse/etrice/ui/structure/DiagramAccess.java @@ -42,7 +42,7 @@ public class DiagramAccess extends DiagramAccessBase { public String getDiagramName(EObject rootObject) { if (rootObject instanceof StructureClass) { StructureClass sc = (StructureClass) rootObject; - return "Structure of "+sc.getName(); + return sc.getName() + " Structure"; } return "unknown"; } diff --git a/releng/org.eclipse.etrice.parent/pom.xml b/releng/org.eclipse.etrice.parent/pom.xml index 5ca356e8b..3749dc958 100644 --- a/releng/org.eclipse.etrice.parent/pom.xml +++ b/releng/org.eclipse.etrice.parent/pom.xml @@ -24,7 +24,7 @@ <eclipse.version>2021-03</eclipse.version> <xtext.version>2.25.0</xtext.version> <tycho.version>2.3.0</tycho.version> - <cbi.version>1.1.5</cbi.version> + <cbi.version>1.3.2</cbi.version> <eclipse.url>http://download.eclipse.org/releases/${eclipse.version}</eclipse.url> <xtext.url>http://download.eclipse.org/modeling/tmf/xtext/updates/releases/${xtext.version}</xtext.url> diff --git a/runtime/org.eclipse.etrice.runtime.c/src/common/etUnit/etUnit.c b/runtime/org.eclipse.etrice.runtime.c/src/common/etUnit/etUnit.c index 303d6acda..297ae59ea 100644 --- a/runtime/org.eclipse.etrice.runtime.c/src/common/etUnit/etUnit.c +++ b/runtime/org.eclipse.etrice.runtime.c/src/common/etUnit/etUnit.c @@ -238,6 +238,9 @@ void etUnit_closeTestCase(etInt16 id) { void etUnit_skipTestCase(etInt16 id, const char* msg) { etInt16 caseId = getOpenTestCaseId(id); + etInt16 parallelId = getParallelIndex(caseId); + etUnit_testcaseOpen[parallelId] = ET_FALSE; + if (etUnit_reportfile != NULL) { etLogger_fprintf(etUnit_reportfile, "tc skip %d: %s\n", caseId, msg); } diff --git a/team/ETrice.setup b/team/ETrice.setup index 5c0fbe3b1..c55e2bed0 100644 --- a/team/ETrice.setup +++ b/team/ETrice.setup @@ -29,10 +29,22 @@ <setupTask xsi:type="setup:ResourceCreationTask" excludedTriggers="STARTUP MANUAL" - content="<?xml version="1.0" encoding="UTF-8"?>
<section name="Workbench">
	<section name="org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart">
		<item value="true" key="group_libraries"/>
		<item value="false" key="linkWithEditor"/>
		<item value="2" key="layout"/>
		<item value="2" key="rootMode"/>
		<item value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#x0D;&#x0A;&lt;packageExplorer configured=&quot;true&quot; group_libraries=&quot;1&quot; layout=&quot;2&quot; linkWithEditor=&quot;0&quot; rootMode=&quot;2&quot; sortWorkingSets=&quot;false&quot; workingSetName=&quot;&quot;&gt;&#x0D;&#x0A;&lt;localWorkingSetManager&gt;&#x0D;&#x0A;&lt;workingSet editPageId=&quot;org.eclipse.jdt.internal.ui.OthersWorkingSet&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1382792884467_1&quot; label=&quot;Other Projects&quot; name=&quot;Other Projects&quot;/&gt;&#x0D;&#x0A;&lt;/localWorkingSetManager&gt;&#x0D;&#x0A;&lt;activeWorkingSet workingSetName=&quot;Other Projects&quot;/&gt;&#x0D;&#x0A;&lt;allWorkingSets workingSetName=&quot;Other Projects&quot;/&gt;&#x0D;&#x0A;&lt;/packageExplorer&gt;" key="memento"/>
	</section>
</section>
" targetURL="${workspace.location|uri}/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml" encoding="UTF-8"> <description>Initialize JDT's package explorer to show working sets as its root objects</description> + <content> + <?xml version="1.0" encoding="UTF-8"?> + <section name="Workbench"> + <section name="org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart"> + <item value="true" key="group_libraries"/> + <item value="false" key="linkWithEditor"/> + <item value="2" key="layout"/> + <item value="2" key="rootMode"/> + <item value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#x0D;&#x0A;&lt;packageExplorer configured=&quot;true&quot; group_libraries=&quot;1&quot; layout=&quot;2&quot; linkWithEditor=&quot;0&quot; rootMode=&quot;2&quot; sortWorkingSets=&quot;false&quot; workingSetName=&quot;&quot;&gt;&#x0D;&#x0A;&lt;localWorkingSetManager&gt;&#x0D;&#x0A;&lt;workingSet editPageId=&quot;org.eclipse.jdt.internal.ui.OthersWorkingSet&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1382792884467_1&quot; label=&quot;Other Projects&quot; name=&quot;Other Projects&quot;/&gt;&#x0D;&#x0A;&lt;/localWorkingSetManager&gt;&#x0D;&#x0A;&lt;activeWorkingSet workingSetName=&quot;Other Projects&quot;/&gt;&#x0D;&#x0A;&lt;allWorkingSets workingSetName=&quot;Other Projects&quot;/&gt;&#x0D;&#x0A;&lt;/packageExplorer&gt;" key="memento"/> + </section> + </section> + + </content> </setupTask> <setupTask xsi:type="setup.p2:P2Task"> @@ -162,15 +174,15 @@ <setupTask xsi:type="setup:PreferenceTask" key="/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.codegen.targetPlatform" - value="1.8"/> + value="11"/> <setupTask xsi:type="setup:PreferenceTask" key="/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.compliance" - value="1.8"/> + value="11"/> <setupTask xsi:type="setup:PreferenceTask" key="/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.source" - value="1.8"/> + value="11"/> </setupTask> <setupTask xsi:type="setup:CompoundTask" @@ -325,7 +337,16 @@ <setupTask xsi:type="projects:ProjectsImportTask"> <sourceLocator - rootFolder="${git.clone.location}"/> + rootFolder="${git.clone.location}"> + <excludedPath>examples</excludedPath> + <excludedPath>runtime</excludedPath> + <predicate + xsi:type="predicates:NotPredicate"> + <operand + xsi:type="predicates:NaturePredicate" + nature="org.eclipse.cdt.core.cnature"/> + </predicate> + </sourceLocator> <sourceLocator rootFolder="${git.clone.website.location}"/> </setupTask> @@ -339,18 +360,6 @@ project="org.eclipse.etrice.core.common"/> </workingSet> <workingSet - name="${scope.project.label} C/C++"> - <predicate - xsi:type="predicates:AndPredicate"> - <operand - xsi:type="predicates:NaturePredicate" - nature="org.eclipse.cdt.core.cnature"/> - <operand - xsi:type="predicates:RepositoryPredicate" - project="org.eclipse.etrice.core.common"/> - </predicate> - </workingSet> - <workingSet name="${scope.project.label} Features"> <predicate xsi:type="predicates:AndPredicate"> diff --git a/tests/org.eclipse.etrice.runtime.c.tests/src/runtime/TestEtUnit.c b/tests/org.eclipse.etrice.runtime.c.tests/src/runtime/TestEtUnit.c index c1abf810a..6b29ea805 100644 --- a/tests/org.eclipse.etrice.runtime.c.tests/src/runtime/TestEtUnit.c +++ b/tests/org.eclipse.etrice.runtime.c.tests/src/runtime/TestEtUnit.c @@ -93,12 +93,18 @@ void TestEtUnit_Singleton_TestCase(){ etUnit_closeTestCase(0); } +void TestEtUnit_Skip_TestCase(){ + etInt16 id = etUnit_openTestCase("SkipTestcase"); + assert(id == 0); + etUnit_skipTestCase(0, "skip msg"); +} void TestEtUnit_runSuite(void){ etUnit_openTestSuite("org.eclipse.etrice.runtime.c.tests.TestEtUnit"); // test parallel first due test case number restriction TestEtUnit_Parallel_TestCase(); TestEtUnit_Singleton_TestCase(); + TestEtUnit_Skip_TestCase(); ADD_TESTCASE(TestEtUnit_Expect_Order); ADD_TESTCASE(TestEtUnit_Expect); etUnit_closeTestSuite(); |