Skip to content

Commit 6f5cf2b

Browse files
committed
- introduced react4j-core-ui module
- introduced ListView - introduced MasterDetails
1 parent da467c7 commit 6f5cf2b

File tree

3,390 files changed

+38419
-177
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,390 files changed

+38419
-177
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,6 @@ react4j-modules/react4j-app-modules/target/
6565
react4j-modules/react4j-app-modules/react4j-app-starter-parent/target/
6666
*.versionsBackup
6767
react4j-modules/react4j-app-modules/react4j-ui-test/content-configuration.json
68+
react4j-modules/react4j-core-ui/src/main/react/node_modules/
69+
react4j-modules/react4j-core-ui/target/
70+
react4j-modules/react4j-core-ui/src/main/react/build/
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT

react4j-modules/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<module>react4j-i18n</module>
2121
<module>react4j-i18n-deepl</module>
2222
<module>react4j-app-modules</module>
23+
<module>react4j-core-ui</module>
2324
</modules>
2425

2526
<parent>

react4j-modules/react4j-app-modules/react4j-ui-test/src/main/java/org/omnaest/react4j/MockUI.java

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.LinkedHashMap;
1919
import java.util.stream.Collectors;
2020
import java.util.stream.IntStream;
21+
import java.util.stream.Stream;
2122

2223
import org.apache.commons.lang3.StringUtils;
2324
import org.omnaest.react4j.component.form.Form;
@@ -46,12 +47,39 @@ public void init()
4647
{
4748
this.uiService.getOrCreateDefaultRoot(reactUI ->
4849
{
50+
reactUI.addNewComponent(factory ->
51+
{
52+
return factory.newMasterDetails()
53+
.withMasterContainer((container, uiContext) ->
54+
{
55+
container.withColumnSpan(5)
56+
.withContent(factory.newCard()
57+
.withContent(factory.newListView()
58+
.withUIContext((listView, uiContext2) ->
59+
{
60+
Field titleField = uiContext2.getField("title");
61+
listView.withSource((pageIndex,
62+
pageContent) -> Stream.of("Title 1", "Title 2")
63+
.forEach(title -> pageContent.addNewElementAndGet(title.toLowerCase())
64+
.add(titleField,
65+
title)))
66+
.withElement(element -> element.withContent(factory.newCard()
67+
.withTitle(titleField)
68+
.withContent(factory.newButton()
69+
.withName("Button"))));
70+
})));
71+
})
72+
.withDetailsContainer((container, uiContext) -> container.withColumnSpan(7)
73+
.withContent(factory.newCard()
74+
// .withTitle("Form")
75+
// .withSubTitle("Subtitle")
76+
.withContent(factory.newForm()
77+
.withUIContext(this.newForm()))));
4978

50-
reactUI.addNewComponent(factory -> factory.newCard()
51-
.withTitle("Form")
52-
.withSubTitle("Subtitle")
53-
.withContent(factory.newForm()
54-
.withUIContext(this.newForm())));
79+
});
80+
// .addNewComponent(factory -> factory.newButton()
81+
// .withName("Button")
82+
// .withStyle(Style.DANGER))
5583
// .withNavigationBar(navigationBar -> navigationBar.addEntry(entry -> entry.withText("News")
5684
// .withLinkedLocator("news")))
5785
// .addNewComponent(factory -> factory.newParagraph()

react4j-modules/react4j-core-components/src/main/java/org/omnaest/react4j/component/anker/internal/AnkerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import org.omnaest.react4j.component.anker.Anker;
1919
import org.omnaest.react4j.component.anker.internal.data.AnkerData.AnkerDataBuilder;
20-
import org.omnaest.react4j.component.anker.internal.renderer.AnkerRendererImpl;
20+
import org.omnaest.react4j.component.anker.internal.renderer.AnkerRenderer;
2121
import org.omnaest.react4j.domain.i18n.I18nText;
2222
import org.omnaest.react4j.domain.rendering.UIComponentRenderer;
2323
import org.omnaest.react4j.domain.support.UIComponentProvider;
@@ -42,7 +42,7 @@ public AnkerImpl(ComponentContext context, AnkerDataBuilder ankerData)
4242
@Override
4343
public UIComponentRenderer asRenderer()
4444
{
45-
return new AnkerRendererImpl(this.getTextResolver(), this.data.build(), this::getId);
45+
return new AnkerRenderer(this.getTextResolver(), this.data.build(), this::getId);
4646
}
4747

4848
@Override

react4j-modules/react4j-core-components/src/main/java/org/omnaest/react4j/component/anker/internal/data/AnkerData.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
import lombok.Builder;
66
import lombok.Builder.Default;
7+
import lombok.Data;
78

8-
@lombok.Data
9+
@Data
910
@Builder
1011
public class AnkerData
1112
{
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.util.stream.Stream;
55

66
import org.omnaest.react4j.component.anker.internal.data.AnkerData;
7+
import org.omnaest.react4j.component.anker.internal.renderer.node.AnkerNode;
8+
import org.omnaest.react4j.component.anker.internal.renderer.node.AnkerNode.Page;
79
import org.omnaest.react4j.domain.Location;
810
import org.omnaest.react4j.domain.context.data.Data;
911
import org.omnaest.react4j.domain.raw.Node;
@@ -14,16 +16,14 @@
1416
import org.omnaest.react4j.domain.rendering.node.NodeRenderer;
1517
import org.omnaest.react4j.domain.rendering.node.NodeRendererRegistry;
1618
import org.omnaest.react4j.domain.rendering.node.NodeRenderingProcessor;
17-
import org.omnaest.react4j.service.internal.nodes.AnkerNode;
18-
import org.omnaest.react4j.service.internal.nodes.AnkerNode.Page;
1919
import org.omnaest.react4j.service.internal.service.LocalizedTextResolverService;
2020
import org.omnaest.utils.functional.Provider;
2121
import org.omnaest.utils.template.TemplateUtils;
2222

2323
import lombok.RequiredArgsConstructor;
2424

2525
@RequiredArgsConstructor
26-
public class AnkerRendererImpl implements UIComponentRenderer
26+
public class AnkerRenderer implements UIComponentRenderer
2727
{
2828
private final LocalizedTextResolverService textResolver;
2929
private final AnkerData ankerData;

react4j-modules/react4j-core-components/src/main/java/org/omnaest/react4j/service/internal/nodes/AnkerNode.java renamed to react4j-modules/react4j-core-components/src/main/java/org/omnaest/react4j/component/anker/internal/renderer/node/AnkerNode.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@
1313
* License for the specific language governing permissions and limitations under
1414
* the License.
1515
******************************************************************************/
16-
package org.omnaest.react4j.service.internal.nodes;
16+
package org.omnaest.react4j.component.anker.internal.renderer.node;
1717

1818
import org.omnaest.react4j.domain.raw.Node;
19+
import org.omnaest.react4j.service.internal.nodes.AbstractNode;
1920
import org.omnaest.react4j.service.internal.nodes.i18n.I18nTextValue;
2021

2122
import com.fasterxml.jackson.annotation.JsonProperty;

react4j-modules/react4j-core-components/src/main/java/org/omnaest/react4j/component/ankerbutton/internal/AnkerButtonImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import org.omnaest.react4j.component.ankerbutton.AnkerButton;
1919
import org.omnaest.react4j.component.ankerbutton.internal.data.AnkerButtonData;
20-
import org.omnaest.react4j.component.ankerbutton.internal.renderer.UIComponentRendererImpl;
20+
import org.omnaest.react4j.component.ankerbutton.internal.renderer.AnkerButtonRenderer;
2121
import org.omnaest.react4j.domain.Button.Style;
2222
import org.omnaest.react4j.domain.i18n.I18nText;
2323
import org.omnaest.react4j.domain.rendering.UIComponentRenderer;
@@ -43,7 +43,7 @@ public AnkerButtonImpl(ComponentContext context, AnkerButtonData.AnkerButtonData
4343
@Override
4444
public UIComponentRenderer asRenderer()
4545
{
46-
return new UIComponentRendererImpl(this.data.build(), AnkerButtonImpl.this.getTextResolver(), this::getId);
46+
return new AnkerButtonRenderer(this.data.build(), AnkerButtonImpl.this.getTextResolver(), this::getId);
4747
}
4848

4949
@Override

0 commit comments

Comments
 (0)