Skip to content

Commit 47a4469

Browse files
author
Alexander Pann
committed
feature(base): make concepts with a main expression a visible elements provider
If the expression implements `IVisibleElementsProviderSource` it is used instead to provide the elements or else the request is forwared to the parent provider.
1 parent e1f20f5 commit 47a4469

File tree

14 files changed

+1268
-5
lines changed

14 files changed

+1268
-5
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ The project does _not_ follow Semantic Versioning and the changes are documented
1010
### Added
1111

1212
- Variability: The intention "Update all configurations" for feature models has been improved: Now a modal dialog with a progress bar and some additional information is shown. The process is now completely sequential, improving stability. Moreover, there is some timing output in the log. Finally, performance has been improved by postponing the event handling for all changes to the involved models.
13+
- Concepts with a main expression can now act as a visible elements provider. They forward the task to the expression if it implements `IVisibleElementsProviderSource`; otherwise, they call the parent provider instead.
1314

1415
### Fixed
1516

code/languages/org.iets3.opensource/.mps/modules.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
<modulePath path="$PROJECT_DIR$/languages/test.iest3.component.attribute/test.iest3.component.attribute.mpl" folder="comp" />
100100
<modulePath path="$PROJECT_DIR$/languages/test.org.iets3.analysis.base.solvable/test.org.iets3.analysis.base.solvable.mpl" folder="analysis.tests" />
101101
<modulePath path="$PROJECT_DIR$/languages/test.org.iets3.core.trace/test.org.iets3.core.trace.mpl" folder="trace" />
102+
<modulePath path="$PROJECT_DIR$/languages/test.ts.expr.os.customization/test.ts.expr.os.customization.mpl" folder="expr.tests" />
102103
<modulePath path="$PROJECT_DIR$/languages/test.ts.expr.os.nix/test.ts.expr.os.nix.mpl" folder="expr.tests" />
103104
<modulePath path="$PROJECT_DIR$/languages/test.ts.expr.os.validNameConcept/test.ts.expr.os.validNameConcept.mpl" folder="expr.tests" />
104105
<modulePath path="$PROJECT_DIR$/solutions/InterpreterTestExecutor/InterpreterTestExecutor.msd" folder="_build" />

code/languages/org.iets3.opensource/languages/org.iets3.core.base/models/structure.mps

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
</languages>
99
<imports>
1010
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
11+
<import index="vs0r" ref="r:f7764ca4-8c75-4049-922b-08516400a727(com.mbeddr.core.base.structure)" implicit="true" />
1112
</imports>
1213
<registry>
1314
<language id="982eb8df-2c96-4bd7-9963-11712ea622e5" name="jetbrains.mps.lang.resources">
@@ -214,5 +215,12 @@
214215
</node>
215216
</node>
216217
</node>
218+
<node concept="PlHQZ" id="7UbQLM_m7K$">
219+
<property role="EcuMT" value="9118622786621307940" />
220+
<property role="TrG5h" value="IVisibleElementProviderSource" />
221+
<node concept="PrWs8" id="7UbQLM_m7KA" role="PrDN$">
222+
<ref role="PrY4T" to="vs0r:6clJcrJXo2z" resolve="IVisibleElementProvider" />
223+
</node>
224+
</node>
217225
</model>
218226

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.base/models/behavior.mps

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
<import index="lzb2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui(MPS.IDEA/)" />
4949
<import index="tpcn" ref="r:00000000-0000-4000-0000-011c8959028b(jetbrains.mps.lang.structure.behavior)" />
5050
<import index="ciba" ref="r:11b7cdb2-cc58-456e-bb9a-ce45b78edd2f(jetbrains.mps.ide.httpsupport.runtime.base)" />
51+
<import index="o8zo" ref="r:314576fc-3aee-4386-a0a5-a38348ac317d(jetbrains.mps.scope)" />
5152
</imports>
5253
<registry>
5354
<language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
@@ -532,6 +533,7 @@
532533
<concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
533534
<reference id="1138056546658" name="link" index="3TtcxE" />
534535
</concept>
536+
<concept id="1172420572800" name="jetbrains.mps.lang.smodel.structure.ConceptNodeType" flags="in" index="3THzug" />
535537
<concept id="1228341669568" name="jetbrains.mps.lang.smodel.structure.Node_DetachOperation" flags="nn" index="3YRAZt" />
536538
</language>
537539
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
@@ -32722,5 +32724,105 @@
3272232724
<ref role="3uigEE" node="7LZDtvhnXHQ" resolve="IValueAndTrace" />
3272332725
</node>
3272432726
</node>
32727+
<node concept="13h7C7" id="7UbQLM_mw0U">
32728+
<ref role="13h7C2" to="hm2y:3G_qVqIw4zo" resolve="IContainExpressionParam" />
32729+
<node concept="13i0hz" id="7UbQLM_mw1d" role="13h7CS">
32730+
<property role="TrG5h" value="visibleContentsOfType" />
32731+
<property role="13i0it" value="false" />
32732+
<property role="13i0iv" value="false" />
32733+
<ref role="13i0hy" to="hwgx:6clJcrJXo2_" resolve="visibleContentsOfType" />
32734+
<node concept="3Tm1VV" id="7UbQLM_mw1e" role="1B3o_S" />
32735+
<node concept="2AHcQZ" id="7UbQLM_mw1f" role="2AJF6D">
32736+
<ref role="2AI5Lk" to="wyt6:~Deprecated" resolve="Deprecated" />
32737+
</node>
32738+
<node concept="3clFbS" id="7UbQLM_mw1g" role="3clF47">
32739+
<node concept="3clFbF" id="7UbQLM_mw1h" role="3cqZAp">
32740+
<node concept="BsUDl" id="7UbQLM_mw1i" role="3clFbG">
32741+
<ref role="37wK5l" to="hwgx:3g6LnlWuSo8" resolve="visibleContentsOfTypeAsSequence" />
32742+
<node concept="2OqwBi" id="7UbQLM_mw1j" role="37wK5m">
32743+
<node concept="37vLTw" id="7UbQLM_mw1k" role="2Oq$k0">
32744+
<ref role="3cqZAo" node="7UbQLM_mw1m" resolve="targetConcept" />
32745+
</node>
32746+
<node concept="1rGIog" id="7UbQLM_mw1l" role="2OqNvi" />
32747+
</node>
32748+
</node>
32749+
</node>
32750+
</node>
32751+
<node concept="37vLTG" id="7UbQLM_mw1m" role="3clF46">
32752+
<property role="TrG5h" value="targetConcept" />
32753+
<node concept="3THzug" id="7UbQLM_mw1n" role="1tU5fm" />
32754+
</node>
32755+
<node concept="A3Dl8" id="7UbQLM_mw1o" role="3clF45">
32756+
<node concept="3Tqbb2" id="7UbQLM_mw1p" role="A3Ik2" />
32757+
</node>
32758+
</node>
32759+
<node concept="13i0hz" id="7UbQLM_mw1q" role="13h7CS">
32760+
<property role="TrG5h" value="visibleContentsOfType" />
32761+
<property role="13i0it" value="false" />
32762+
<property role="13i0iv" value="false" />
32763+
<ref role="13i0hy" to="hwgx:79$zShlSHxZ" resolve="visibleContentsOfType" />
32764+
<node concept="3Tm1VV" id="7UbQLM_mw1r" role="1B3o_S" />
32765+
<node concept="3clFbS" id="7UbQLM_mw1s" role="3clF47">
32766+
<node concept="Jncv_" id="7UbQLM_mzcw" role="3cqZAp">
32767+
<ref role="JncvD" to="4kwy:7UbQLM_m7K$" resolve="IVisibleElementProviderSource" />
32768+
<node concept="2OqwBi" id="7UbQLM_mBRY" role="JncvB">
32769+
<node concept="13iPFW" id="7UbQLM_mBDt" role="2Oq$k0" />
32770+
<node concept="3TrEf2" id="7UbQLM_mCiA" role="2OqNvi">
32771+
<ref role="3Tt5mk" to="hm2y:3G_qVqIw4zp" resolve="expr" />
32772+
</node>
32773+
</node>
32774+
<node concept="3clFbS" id="7UbQLM_mzc$" role="Jncv$">
32775+
<node concept="3cpWs6" id="7UbQLM_mD4A" role="3cqZAp">
32776+
<node concept="2OqwBi" id="7UbQLM_mDoI" role="3cqZAk">
32777+
<node concept="Jnkvi" id="7UbQLM_mD7K" role="2Oq$k0">
32778+
<ref role="1M0zk5" node="7UbQLM_mzcA" resolve="source" />
32779+
</node>
32780+
<node concept="2qgKlT" id="7UbQLM_mDR0" role="2OqNvi">
32781+
<ref role="37wK5l" to="hwgx:79$zShlSHxZ" resolve="visibleContentsOfType" />
32782+
<node concept="37vLTw" id="7UbQLM_mG6d" role="37wK5m">
32783+
<ref role="3cqZAo" node="7UbQLM_mw1Y" resolve="targetConcept" />
32784+
</node>
32785+
</node>
32786+
</node>
32787+
</node>
32788+
</node>
32789+
<node concept="JncvC" id="7UbQLM_mzcA" role="JncvA">
32790+
<property role="TrG5h" value="source" />
32791+
<node concept="2jxLKc" id="7UbQLM_mzcB" role="1tU5fm" />
32792+
</node>
32793+
</node>
32794+
<node concept="3cpWs6" id="7UbQLM_mGJE" role="3cqZAp">
32795+
<node concept="2OqwBi" id="7UbQLM_mw1w" role="3cqZAk">
32796+
<node concept="2OqwBi" id="7UbQLM_mw1x" role="2Oq$k0">
32797+
<node concept="13iPFW" id="7UbQLM_mw1y" role="2Oq$k0" />
32798+
<node concept="2Xjw5R" id="7UbQLM_mw1z" role="2OqNvi">
32799+
<node concept="1xMEDy" id="7UbQLM_mw1$" role="1xVPHs">
32800+
<node concept="chp4Y" id="7UbQLM_mw1_" role="ri$Ld">
32801+
<ref role="cht4Q" to="vs0r:6clJcrJXo2z" resolve="IVisibleElementProvider" />
32802+
</node>
32803+
</node>
32804+
</node>
32805+
</node>
32806+
<node concept="2qgKlT" id="7UbQLM_mw1A" role="2OqNvi">
32807+
<ref role="37wK5l" to="hwgx:79$zShlSHxZ" resolve="visibleContentsOfType" />
32808+
<node concept="37vLTw" id="7UbQLM_mw1B" role="37wK5m">
32809+
<ref role="3cqZAo" node="7UbQLM_mw1Y" resolve="targetConcept" />
32810+
</node>
32811+
</node>
32812+
</node>
32813+
</node>
32814+
</node>
32815+
<node concept="37vLTG" id="7UbQLM_mw1Y" role="3clF46">
32816+
<property role="TrG5h" value="targetConcept" />
32817+
<node concept="3bZ5Sz" id="7UbQLM_mw1Z" role="1tU5fm" />
32818+
</node>
32819+
<node concept="3uibUv" id="7UbQLM_mw20" role="3clF45">
32820+
<ref role="3uigEE" to="o8zo:3fifI_xCtN$" resolve="Scope" />
32821+
</node>
32822+
</node>
32823+
<node concept="13hLZK" id="7UbQLM_mw0V" role="13h7CW">
32824+
<node concept="3clFbS" id="7UbQLM_mw0W" role="2VODD2" />
32825+
</node>
32826+
</node>
3272532827
</model>
3272632828

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.base/models/structure.mps

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2408,6 +2408,9 @@
24082408
<property role="20lbJX" value="fLJekj4/_1" />
24092409
<ref role="20lvS9" node="6sdnDbSla17" resolve="Expression" />
24102410
</node>
2411+
<node concept="PrWs8" id="7UbQLM_mw0T" role="PrDN$">
2412+
<ref role="PrY4T" to="vs0r:6clJcrJXo2z" resolve="IVisibleElementProvider" />
2413+
</node>
24112414
</node>
24122415
<node concept="PlHQZ" id="1azguFQNaDo">
24132416
<property role="EcuMT" value="1342989591305300568" />

0 commit comments

Comments
 (0)