Skip to content

Commit

Permalink
JNG-5928 groups to views in jsl (#270)
Browse files Browse the repository at this point in the history
  • Loading branch information
noherczeg authored Sep 25, 2024
1 parent 5018f4b commit d083041
Show file tree
Hide file tree
Showing 59 changed files with 6,281 additions and 5,464 deletions.
5 changes: 5 additions & 0 deletions judo-tatami-jsl-jsl2ui/src/main/epsilon/operations/id.eol
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,8 @@ operation Any getId() : String {

return r.getId(self);
}

operation String purify() : String {
// e.g. xmiids do not like such characters
return self.replace("::", "/");
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,52 @@
/*
@cached
operation JSL!ActorGroupDeclaration getFqName(): String {
if (self.eContainer.isTypeOf(JSL!ActorGroupDeclaration) or self.eContainer.isTypeOf(JSL!ActorDeclaration)) {
return self.eContainer.getFqName() + "::MenuItemGroup::" + self.name;
operation JSL!UIMenuGroupDeclaration getFqName(): String {
if (self.eContainer.isTypeOf(JSL!UIMenuGroupDeclaration) or self.eContainer.isTypeOf(JSL!UIMenuDeclaration)) {
return self.eContainer.getFqName() + "::" + self.name;
}
return self.tag;
return self.name;
}

@cached
operation JSL!ActorGroupDeclaration getActorDeclaration(): JSL!ActorDeclaration {
if (self.eContainer.isTypeOf(JSL!ActorGroupDeclaration)) {
return self.eContainer.getActorDeclaration();
} else if (self.eContainer.isTypeOf(JSL!ActorDeclaration)) {
return self.eContainer;
operation JSL!UIMenuGroupDeclaration getRootMenu(): JSL!UIMenuDeclaration {
if (self.eContainer.isDefined()) {
if (self.eContainer.isTypeOf(JSL!UIMenuGroupDeclaration)) {
return self.eContainer.getRootMenu();
} else if (self.eContainer.isTypeOf(JSL!UIMenuDeclaration)) {
return self.eContainer;
}
}
return null;
}
*/

@cached
operation JSL!UIMenuGroupDeclaration getActorDeclaration(): JSL!ActorDeclaration {
var root = self.getRootMenu();
if (root.isDefined()) {
return root.getActorDeclaration();
}
return null;
}

@cached
operation JSL!UIMenuGroupDeclaration getExposedVisualElements(): Set {
var ves = new Set();

ves.add(self);

for (link in self.members.select(m | m.isTypeOf(JSL!UIMenuLinkDeclaration)).asSet()) {
ves.add(link);
ves.addAll(link.getExposedVisualElements());
}

for (table in self.members.select(m | m.isTypeOf(JSL!UIMenuTableDeclaration)).asSet()) {
ves.add(table);
ves.addAll(table.getExposedVisualElements());
}

for (group in self.members.select(m | m.isTypeOf(JSL!UIMenuGroupDeclaration)).asSet()) {
ves.add(group);
ves.addAll(group.getExposedVisualElements());
}

return ves;
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
/*
@cached
operation JSL!ActorLinkDeclaration getFqName(): String {
if (self.getTransferContainer().isDefined()) {
return self.getTransferContainer().getFqName() + "::" + self.name;
operation JSL!UIMenuLinkDeclaration getFqName(): String {
if (self.eContainer.isTypeOf(JSL!UIMenuGroupDeclaration) or self.eContainer.isTypeOf(JSL!UIMenuDeclaration)) {
return self.eContainer.getFqName() + "::" + self.name;
}
return self.name;
}

@cached
operation JSL!ActorLinkDeclaration getActorDeclaration(): JSL!ActorDeclaration {
if (self.eContainer.isTypeOf(JSL!ActorGroupDeclaration)) {
return self.eContainer.getActorDeclaration();
} else if (self.eContainer.isTypeOf(JSL!ActorDeclaration)) {
return self.eContainer;
operation JSL!UIMenuLinkDeclaration getRootMenu(): JSL!UIMenuDeclaration {
if (self.eContainer.isDefined()) {
if (self.eContainer.isTypeOf(JSL!UIMenuGroupDeclaration)) {
return self.eContainer.getRootMenu();
} else if (self.eContainer.isTypeOf(JSL!UIMenuDeclaration)) {
return self.eContainer;
}
}
return null;
}
*/

@cached
operation JSL!UIMenuLinkDeclaration getActorDeclaration(): JSL!ActorDeclaration {
var root = self.getRootMenu();
if (root.isDefined()) {
return root.getActorDeclaration();
}
return null;
}
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ operation JSL!TransferDeclaration getAllRelations(): Set {
}
}

for (member in self.members.select(m | m.isKindOf(JSL!ViewPanelDeclaration))) {
for (member in self.members.select(m | m.isKindOf(JSL!UIViewPanelDeclaration))) {
relations.addAll(member.getAllRelations());
}
*/
Expand All @@ -98,28 +98,28 @@ operation JSL!TransferDeclaration getAllRelations(): Set {
operation JSL!TransferDeclaration getDirectRelations(): Set {
var relations = new Set();
relations.addAll(self.members.select(m | m.isKindOf(JSL!TransferRelationDeclaration)));
/*

if (self.isKindOf(JSL!ActorDeclaration)) {
var linkRelations = self.getAllMenuDeclarations();
relations.addAll(linkRelations);
}

for (member in self.members.select(m | m.isKindOf(JSL!ViewPanelDeclaration))) {
for (member in self.members.select(m | m.isKindOf(JSL!UIViewPanelDeclaration))) {
relations.addAll(member.getDirectRelations());
}
*/

return relations;
}

@cached
operation JSL!TransferDeclaration getAllPrimitiveFields(): Set {
var fields = new Set();
fields.addAll(self.members.select(m | m.isKindOf(JSL!TransferFieldDeclaration) and m.referenceType.isDefined() and m.referenceType.`primitive`.isDefined()));
/*
for (member in self.members.select(m | m.isKindOf(JSL!ViewPanelDeclaration))) {

for (member in self.members.select(m | m.isKindOf(JSL!UIViewPanelDeclaration))) {
fields.addAll(member.getAllPrimitiveFields());
}
*/

return fields;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,5 +93,5 @@ operation JSL!TransferFieldDeclaration getTransferFieldDeclarationEquivalent():
if (self.maps()) {
return self.equivalent("CreateMappedTransferAttribute");
}
throw "Could not determinate attribute type: " + s.fqName();
throw "Could not determinate attribute type: " + self.fqName();
}
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,3 @@ operation JSL!TransferRelationDeclaration getContainerEquivalentClassType(): UI!
}
return null;
}

@cached
operation JSL!TransferRelationDeclaration getTransferObjectType(): JSL!TransferDeclaration {
return self.referenceType;
}
Original file line number Diff line number Diff line change
Expand Up @@ -147,11 +147,6 @@ operation JSL!Modifiable getRows(): JSL!Modifier {
return (self.modifiers.selectOne(m | m.type == "rows"));
}

@cached
operation JSL!Modifiable getSelector(): JSL!Modifier {
return (self.modifiers.selectOne(m | m.type == "selector"));
}

@cached
operation JSL!Modifiable getCreateFormModifier(): JSL!Modifier {
return self.modifiers.selectOne(m | m.isTypeOf(JSL!CreateFormModifier));
Expand All @@ -161,3 +156,8 @@ operation JSL!Modifiable getCreateFormModifier(): JSL!Modifier {
operation JSL!Modifiable getUpdateViewModifier(): JSL!Modifier {
return self.modifiers.selectOne(m | m.isTypeOf(JSL!UpdateViewModifier));
}

@cached
operation JSL!Modifiable getSelectorTableModifier(): JSL!Modifier {
return self.modifiers.selectOne(m | m.isTypeOf(JSL!SelectorTableModifier));
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import "menuDeclaration.eol";
import "menuLinkDeclaration.eol";
import "menuTableDeclaration.eol";
import "rowColumnDeclaration.eol";
import "rowLinkDeclaration.eol";
import "rowDeclaration.eol";
import "viewActionDeclaration.eol";
import "viewDeclaration.eol";
import "viewGroupDeclaration.eol";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,20 @@ operation JSL!UIMenuDeclaration getFqName(): String {

@cached
operation JSL!UIMenuDeclaration getRootMenu(): JSL!UIMenuDeclaration {
if (self.eContainer.isDefined()) {
if (self.eContainer.isTypeOf(JSL!ModelDeclaration)) {
return self;
return self;
}

}
// todo handle groups traversing upwards?
return self.getRootMenu();
}
return null;
@cached
operation JSL!UIMenuDeclaration getActorDeclaration(): JSL!ActorDeclaration {
return self.map.actor;
}

@cached
operation JSL!UIMenuDeclaration getExposedVisualElements(): Set {
var ves = new Set();

ves.add(self);

for (link in self.members.select(m | m.isTypeOf(JSL!UIMenuLinkDeclaration)).asSet()) {
ves.add(link);
ves.addAll(link.getExposedVisualElements());
Expand All @@ -38,6 +37,11 @@ operation JSL!UIMenuDeclaration getExposedVisualElements(): Set {
ves.addAll(table.getExposedVisualElements());
}

for (group in self.members.select(m | m.isTypeOf(JSL!UIMenuGroupDeclaration)).asSet()) {
ves.add(group);
ves.addAll(group.getExposedVisualElements());
}

return ves;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,14 @@ operation JSL!UIMenuLinkDeclaration getExposedVisualElements(): Set {
var ves = new Set();
var viewDeclaration = self.referenceType;

for (link in viewDeclaration.members.select(m | m.isTypeOf(JSL!UIMenuLinkDeclaration)).asSet()) {
ves.addAll(link.getExposedVisualElements());
}
ves.add(self);
ves.add(viewDeclaration);
ves.addAll(viewDeclaration.getExposedVisualElements());

for (table in viewDeclaration.members.select(m | m.isTypeOf(JSL!UIMenuTableDeclaration)).asSet()) {
ves.addAll(table.getExposedVisualElements());
if (self.getCreateFormModifier().isDefined()) {
ves.add(self.getCreateFormModifier().form);
ves.addAll(self.getCreateFormModifier().form.getExposedVisualElements());
}

ves.addAll(viewDeclaration.members.select(m | m.isTypeOf(JSL!UIViewWidgetDeclaration)).asSet());

return ves;
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ operation JSL!UIMenuTableDeclaration getExposedVisualElements(): Set {
var ves = new Set();
var rowDeclaration = self.referenceType;

ves.add(self);
ves.add(rowDeclaration);
ves.addAll(rowDeclaration.members.select(m | m.isTypeOf(JSL!UIRowColumnDeclaration)).asSet());

if (self.getCreateFormModifier().isDefined()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ operation JSL!UIRowColumnDeclaration getTransferFieldDeclarationEquivalent(): UI
if (field.maps()) {
return field.equivalent("CreateMappedTransferAttribute");
}
throw "Could not determinate attribute type: " + s.fqName();
throw "Could not determinate attribute type: " + self.fqName();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
@cached
operation JSL!UIRowDeclaration getId(): String {
return (self.eContainer.getId() + "/" + self.name);
}

@cached
operation JSL!UIRowDeclaration getFqName(): String {
if (self.eContainer.isDefined()) {
return self.eContainer.getFqName() + "::" + self.name;
}
return self.name;
}

@cached
operation JSL!UIRowDeclaration getExposedVisualElements(): Set {
var ves = new Set();

ves.add(self);
ves.addAll(self.members.select(m | m.isTypeOf(JSL!UIRowColumnDeclaration)).asSet());

return ves;
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,74 @@ operation JSL!UIViewDeclaration uiContainer() : UI!ui::VisualElement {
operation JSL!UIViewDeclaration getExposedVisualElements(): Set {
var ves = new Set();

for (link in self.members.select(m | m.isTypeOf(JSL!UIMenuLinkDeclaration)).asSet()) {
ves.add(self);
ves.addAll(self.members.select(m | m.isTypeOf(JSL!UIViewWidgetDeclaration)).asSet());

for (link in self.members.select(m | m.isTypeOf(JSL!UIViewLinkDeclaration)).asSet()) {
ves.addAll(link.getExposedVisualElements());
}

for (table in self.members.select(m | m.isTypeOf(JSL!UIMenuTableDeclaration)).asSet()) {
for (table in self.members.select(m | m.isTypeOf(JSL!UIViewTableDeclaration)).asSet()) {
ves.addAll(table.getExposedVisualElements());
}

ves.addAll(self.members.select(m | m.isTypeOf(JSL!UIViewWidgetDeclaration)).asSet());
for (group in self.members.select(m | m.isKindOf(JSL!UIViewGroupDeclaration)).asSet()) {
ves.addAll(group.getExposedVisualElements());
}

for (tab in self.members.select(m | m.isKindOf(JSL!UIViewTabsDeclaration)).asSet()) {
ves.addAll(tab.getExposedVisualElements());
}

return ves;
}

@cached
operation JSL!UIViewDeclaration getAllLinks(): Set {
return self.getExposedVisualElements().select(v | v.isKindOf(JSL!UIViewLinkDeclaration)).asSet();
}

@cached
operation JSL!UIViewDeclaration getOwnLinks(): Set {
var all = self.getExposedVisualElements().select(v | v.isKindOf(JSL!UIViewLinkDeclaration)).asSet();
var res = new Set();

for (link in all) {
var parent: Any = link.eContainer;
while (not parent.isTypeOf(JSL!UIViewDeclaration) and parent.isDefined()) {
if (not parent.isTypeOf(JSL!UIViewDeclaration)) {
parent = parent.eContainer;
}
}
if (parent == self) {
res.add(link);
}
}

return res;
}

@cached
operation JSL!UIViewDeclaration getAllTables(): Set {
return self.getExposedVisualElements().select(v | v.isKindOf(JSL!UIViewTableDeclaration)).asSet();
}

@cached
operation JSL!UIViewDeclaration getOwnTables(): Set {
var all = self.getExposedVisualElements().select(v | v.isKindOf(JSL!UIViewTableDeclaration)).asSet();
var res = new Set();

for (table in all) {
var parent: Any = table.eContainer;
while (not parent.isTypeOf(JSL!UIViewDeclaration) and parent.isDefined()) {
if (not parent.isTypeOf(JSL!UIViewDeclaration)) {
parent = parent.eContainer;
}
}
if (parent == self) {
res.add(table);
}
}

return res;
}
Loading

0 comments on commit d083041

Please sign in to comment.