Академический Документы
Профессиональный Документы
Культура Документы
JET Routing
View
System
jQuery UI hammer.js Sass
RequireJS
knockout.js ViewModel
" Data
APEX JET
JET Routing
System
jQuery UI hammer.js Sass
RequireJS
knockout.js
modules
Config
requirejs.config(
{
baseUrl: 'js',
paths:
{
'knockout' : 'libs/knockout/knockout-3.4.0.debug',
'jquery' : 'libs/jquery/jquery-3.1.1',
'jqueryui-amd' : 'libs/jquery/jqueryui-amd-1.12.0',
'promise' : 'libs/es6-promise/es6-promise',
'hammerjs' : 'libs/hammer/hammer-2.0.8',
'ojdnd' : 'libs/dnd-polyfill/dnd-polyfill-1.0.0',
'ojs' : 'libs/oj/v4.0.0/debug',
'ojL10n' : 'libs/oj/v4.0.0/ojL10n',
'ojtranslations': 'libs/oj/v4.0.0/resources',
'text' : 'libs/require/text',
'signals' : 'libs/js-signals/signals',
'customElements': 'libs/webcomponents/custom-elements.min',
'proj4' : 'libs/proj4js/dist/proj4-src',
'css' : 'libs/require-css/css',
}
});
Config
requirejs.config(
{
baseUrl: 'js',
paths:
{
'knockout' : 'libs/knockout/knockout-3.4.0.debug',
'jquery' : 'libs/jquery/jquery-3.1.1',
'jqueryui-amd' : 'libs/jquery/jqueryui-amd-1.12.0',
'promise' : 'libs/es6-promise/es6-promise',
'hammerjs' : 'libs/hammer/hammer-2.0.8',
'ojdnd' : 'libs/dnd-polyfill/dnd-polyfill-1.0.0',
'ojs' : 'libs/oj/v4.0.0/debug',
'ojL10n' : 'libs/oj/v4.0.0/ojL10n',
'ojtranslations': 'libs/oj/v4.0.0/resources',
'text' : 'libs/require/text',
'signals' : 'libs/js-signals/signals',
'customElements': 'libs/webcomponents/custom-elements.min',
'proj4' : 'libs/proj4js/dist/proj4-src',
'css' : 'libs/require-css/css',
}
});
Config
requirejs.config(
{
baseUrl: 'js',
paths:
{
'knockout' : 'libs/knockout/knockout-3.4.0.debug',
'jquery' : 'libs/jquery/jquery-3.1.1',
'jqueryui-amd' : 'libs/jquery/jqueryui-amd-1.12.0',
'promise' : 'libs/es6-promise/es6-promise',
'hammerjs' : 'libs/hammer/hammer-2.0.8',
'ojdnd' : 'libs/dnd-polyfill/dnd-polyfill-1.0.0',
'ojs' : 'libs/oj/v4.0.0/debug',
'ojL10n' : 'libs/oj/v4.0.0/ojL10n',
'ojtranslations': 'libs/oj/v4.0.0/resources',
'text' : 'libs/require/text',
'signals' : 'libs/js-signals/signals',
'customElements': 'libs/webcomponents/custom-elements.min',
'proj4' : 'libs/proj4js/dist/proj4-src',
'css' : 'libs/require-css/css',
}
});
Config
requirejs.config(
{
baseUrl: 'js',
paths:
{
'knockout' : 'libs/knockout/knockout-3.4.0.debug',
'jquery' : 'libs/jquery/jquery-3.1.1',
'jqueryui-amd' : 'libs/jquery/jqueryui-amd-1.12.0',
'promise' : 'libs/es6-promise/es6-promise',
'hammerjs' : 'libs/hammer/hammer-2.0.8',
'ojdnd' : 'libs/dnd-polyfill/dnd-polyfill-1.0.0',
'ojs' : 'libs/oj/v4.0.0/debug',
'ojL10n' : 'libs/oj/v4.0.0/ojL10n',
'ojtranslations': 'libs/oj/v4.0.0/resources',
'text' : 'libs/require/text',
'signals' : 'libs/js-signals/signals',
'customElements': 'libs/webcomponents/custom-elements.min',
'proj4' : 'libs/proj4js/dist/proj4-src',
'css' : 'libs/require-css/css',
}
});
Config
requirejs.config(
{
baseUrl: 'js',
paths:
{
'knockout' : 'libs/knockout/knockout-3.4.0.debug',
'jquery' : 'libs/jquery/jquery-3.1.1',
'jqueryui-amd' : 'libs/jquery/jqueryui-amd-1.12.0',
'promise' : 'libs/es6-promise/es6-promise',
'hammerjs' : 'libs/hammer/hammer-2.0.8',
'ojdnd' : 'libs/dnd-polyfill/dnd-polyfill-1.0.0',
'ojs' : 'libs/oj/v4.0.0/debug',
'ojL10n' : 'libs/oj/v4.0.0/ojL10n',
'ojtranslations': 'libs/oj/v4.0.0/resources',
'text' : 'libs/require/text',
'signals' : 'libs/js-signals/signals',
'customElements': 'libs/webcomponents/custom-elements.min',
'proj4' : 'libs/proj4js/dist/proj4-src',
'css' : 'libs/require-css/css',
}
});
Initialization
JavaScript Array
['ojs/ojcore', 'knockout', 'appController', 'ojs/ojknockout',
'ojs/ojmodule', 'ojs/ojrouter', 'ojs/ojnavigationlist',
'ojs/ojbutton', 'ojs/ojtoolbar' ]
Initialization
JavaScript Array
['ojs/ojcore', 'knockout', 'jQuery', 'ojs/ojknockout' ]
Modules
data-main="scripts/main"
[require jet]/myjs/main.js
[require requirejs]/myjs/main.js
<script type="text/javascript"
src="/i/libraries/oraclejet/2.0.2/js/libs/require/require.js?v=5.1.3.00.05">
</script>
<script type="text/javascript"
src="/i/libraries/oraclejet/2.0.2/js/libs/require/require.js?v=5.1.3.00.05">
</script>
<script type="text/javascript"
src="/i/libraries/apex/minified/requirejs.jetConfig.js?v=5.1.3.00.05">
</script>
browser console:
> require.s.contexts._.config
{waitSeconds: 7, baseUrl: "/i18100032/libraries/", paths: {…}, bundles: {…}, pkgs: {…}, …}
baseUrl: "/i18100032/libraries/"
bundles: {}
config: {ojL10n: {…}}
paths:
css : "./oraclejet/4.2.0/js/libs/require-css/css.min"
customElements: "./oraclejet/4.2.0/js/libs/webcomponents/custom-elements.min"
hammerjs : "./hammer/2.0.8/hammer-2.0.8.min"
jquery : "./jquery/3.1.1/jquery-3.1.1.min"
jqueryui-amd : "./oraclejet/4.2.0/js/libs/jquery/jqueryui-amd-1.12.0.min"
ojL10n : "./oraclejet/4.2.0/js/libs/oj/v4.2.0/ojL10n"
ojdnd : "./oraclejet/4.2.0/js/libs/dnd-polyfill/dnd-polyfill-1.0.0.min"
ojs : "./oraclejet/4.2.0/js/libs/oj/v4.2.0/min"
ojtranslations: "./oraclejet/4.2.0/js/libs/oj/v4.2.0/resources"
proj4 : "./oraclejet/4.2.0/js/libs/proj4js/dist/proj4"
promise : "./oraclejet/4.2.0/js/libs/es6-promise/es6-promise.min"
signals : "./oraclejet/4.2.0/js/libs/js-signals/signals.min"
text : "./oraclejet/4.2.0/js/libs/require/text"
Config
requirejs.config({
Cons
• Side affects of JET CSS
• Does only work when APEX Item has
the same base structure as the JET Element
pros & cons
Pros
• Very Fast
• Lots of new features
• Minimal effort in APEX
Cons
• Side affects of JET CSS
• Does only work when APEX Item has
the same base structure as the JET Element
Knockout
page designer static files
main.js
Cons
• Side affects of JET CSS
• Every item is a APEX Region
pros & cons
Pros
• Fast
• Flexible
• Lots of new features
Cons
• Side affects of JET CSS
• Every item is a APEX Region
Does only work when APEX Item has
the same base structure as the JET Element
Cons
• Side affects of JET CSS
• Does only work when APEX Item has
the same base structure as the JET Element
page designer static files
main.js
data-bind="ojComponent:
$('#P1_SELECT_JET').ojSelect();
{component: 'ojSelect'}"
Data Attribute
(with regions)
page designer static files
main.js
2.0.2
5.1.4.00.08
2.0.2 4.2.0
upgrade to JET 4.2.0
oraclejet.zip
&IMAGE_PREFIX. apex_img_dir
Config
url:
https://apexea.oracle.com/i18100032/libraries/apex/requirejs.jetConfig.js
browser console:
> require.s.contexts._.config
{waitSeconds: 7, baseUrl: "/i18100032/libraries/", paths: {…}, bundles: {…}, pkgs: {…}, …}
baseUrl: "/i18100032/libraries/"
bundles: {}
config: {ojL10n: {…}}
paths:
css : "./oraclejet/4.2.0/js/libs/require-css/css.min"
customElements: "./oraclejet/4.2.0/js/libs/webcomponents/custom-elements.min"
hammerjs : "./hammer/2.0.8/hammer-2.0.8.min"
jquery : "./jquery/3.1.1/jquery-3.1.1.min"
jqueryui-amd : "./oraclejet/4.2.0/js/libs/jquery/jqueryui-amd-1.12.0.min"
ojL10n : "./oraclejet/4.2.0/js/libs/oj/v4.2.0/ojL10n"
ojdnd : "./oraclejet/4.2.0/js/libs/dnd-polyfill/dnd-polyfill-1.0.0.min"
ojs : "./oraclejet/4.2.0/js/libs/oj/v4.2.0/min"
ojtranslations: "./oraclejet/4.2.0/js/libs/oj/v4.2.0/resources"
proj4 : "./oraclejet/4.2.0/js/libs/proj4js/dist/proj4"
promise : "./oraclejet/4.2.0/js/libs/es6-promise/es6-promise.min"
signals : "./oraclejet/4.2.0/js/libs/js-signals/signals.min"
text : "./oraclejet/4.2.0/js/libs/require/text"
Content Delivery Network (CDN)
Base url:
https://static.oracle.com/cdn/jet/v4.2.0/3rdparty/
DEM !
BE CAREFUL
charts regions
&
interactive grid
charts
might not work
BE CAREFUL
JET 2.0.2
&
lower version
JQuery
18.1.0.00.32
4.2.0
Composite Component
Architecture
(CCA)
JET Composite Component Architecture (CCA)
Metadata
HTML
JET Custom DOM Composite
Application Element Binding
JS
CSS
JET Composite Component Architecture (CCA)
Metadata
<my-composite-component attribute1="value1"
HTML
JET Custom DOM attribute2="value2"
Composite
Application Element attribute3="value3">
Binding
</my-composite> JS
CSS
JET Composite Component Architecture (CCA)
Metadata
<my-composite-component attribute1="value1"
HTML
JET Custom DOM attribute2="[[value2]]"
Composite
Composite
Application Element attribute3="{{value3}}">
Binding
Binding
</my-composite> JS
CSS
JET Composite Component Architecture (CCA)
HTML
JET Custom DOM Composite
Application Element Binding
JS
CSS
CCA heaven
page designer static files
main.js
apex.server.plugin (lAjaxIdentifier,
{ x01 : "test",
pageItems: "#P1_DEPTNO,#P1_EMPNO"},
{ refreshObject : "#P1_MY_LIST",
loadingIndicator: "#P1_MY_LIST",
success: function( pData ) {
// do something here
}
});
summery
[require jet]/myjs/main.js
<my-composite-component attribute1="value1"
attribute2="value2"
attribute2="[[value2]]"
attribute3="value3">
attribute3="{{value3}}">
</my-composite>
expand your APEX application with lots of new features instead of migrating to JET
!
www.database-consultancy.nl
Alan Arentsen
alan.arentsen@database-consultancy.nl
alanarentsen.blogspot.com
www.database-consultancy.nl