Platform for build native single-page application using only Java, HTML, CSS

jNode is a type-safe platform, for rapid creation of web applications.
Type-safe means Java compiler verifies all classes, variable names and types in HTML, server and client Java controllers.
jNode is a framework, web server, IDE plugin, SQL-builder from Java source and Java to JavaScript compiler.

One web page created by jNode have two controllers. One on server side and another on browser(client) side.
The server side controller is written in Java and can generate understandable HTML for search engine optimization (SEO).
If you have to minimize CPU usage of server you can use jNode client side controller.
jNode client side controller also is written in Java.
jNode have Java to JavaScript incremental compiler to translate Java classes to JavaScript classes.
The compiler is fast. Usual time for compilation is 2 seconds.
Using Java as language from server and client side allow you to make shared classes between server and client controller.
Shared classes means that you will write your code just one time.
jNode synchronize the two controllers fields and classes, which allow you to think about two controllers like one.

The main strength of jNode is encapsulation of web pages.
Every web page has a lot of dependency (*.css, *.html, (client side)*.java, (server side)*.java, *.jpg).
jNode packs all these files into one root folder for every web page.

jNode maintenance injection of one web page(child) into another web page(parent).
jNode frees you from thinking about dependencies. Just call the daughter page and submit parameters as well.
During injection child will come into parent web page with all of its dependencies (*.css, *.html, (client side)*.java, (server side)*.java, *.jpg).

jNode support inheritance! One web page can inherit another.
You can change HTML tags, attributes and styles.
You can override methods of Java classes (controllers in client or server side).
During the inheritance, you do not think of dependence again. It just works!

jNode has built-in multilingual support.
It is not necessary to think about translation of HTML page during creation.
It is not needed to create separate web page for every language.
You just create external translation file (*.tr) file in the package and write translation.

Enjoy of jNode...

To play video, you have need of browser supported HTML5 (version after 2014).
It is best seen on a PC.
Use ARROWS to skip +/- 5 sec. Use SPACE to play/pause.

Grid component overview

This example show using master-detail grids in single-page application.
The grid support inline and popup edting, sorting, show linked tables in comboboxes,
auto formating by column type, allow customizing editor by column type and etc.

Video created on 2018-07-19.

Cancel Send

Generates Java code from your database and lets you build type safe SQL queries through its clear API.

Video created on 2018-07-19.

Cancel Send
Synchronize variables

jNode synchronize variables (jVar) into HTML-dom tree, controller-classes fields at client and server side.

Video created on 2018-07-19.

Cancel Send

You need of browser (version after 2014) supported HTML 5 to play video. The best is Firefox.

Input/output variable

Simple example how to pass variables (jVar) to a child web page.
You have to know that child a variables (jVar) are like URL parameters.
We can uses them like input/output variable from parent web page.
Example how jNode synchronized jVar between parent and child web page.

Video created on 2018-07-19.

Cancel Send
Single page application. Dynamic injection of webpages by the client.

jNode can make dynamic web-page injections, using ClassLoaderJS. ClassLoaderJS is a part of
jNode ecosytem and know which web pages are currently loaded into a browser. If any class is not loaded
ClassLoaderJS bring the class and its dependency (including the sub classes) from the server.
You should know that the classes of the web pages and the controller are the same.
as well as the path of the Java classpath and the URL of the web pages.

Video created on 2018-07-19.

Cancel Send
jNode web pages are out of the box. Dynamic replace of HTML code

How can replace HTML content of child jNode web page.

Video created on 2018-07-19.

Cancel Send
jVar-variables are shared between client and server controllers.

jVar-variables can be declared only by the client, by the server or by both parties.
jVar-variables support primitive types like 'String','Double','Money','Integer','Long','Date','Time','DateTime' ...

Video created on 2018-07-19.

Cancel Send
jVar-variable 'String' type support HTML tags.

jVar in client and server side supports converting a simple text into a HTML.
To convert text into HTML just have to start width '<!DOCTYPE html>'.
Additional feature of jVar in server side support HTML page injection by the <jpage> tag.
Lets see what exactly means that.

Video created on 2018-07-19.

Cancel Send
Also you can see RegModel library, modern way to parse any text.

Copyright 2018, Mladen Mitev - FullSoft Ltd.