Skip to content

Commit aa46d7a

Browse files
committed
grid.Container: create a new example containing a massive amount of rows & columns #6188 WIP
1 parent a9a0581 commit aa46d7a

8 files changed

Lines changed: 257 additions & 1 deletion

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import BaseGridContainer from '../../../src/grid/Container.mjs';
2+
import MainStore from './MainStore.mjs';
3+
4+
/**
5+
* @class Neo.examples.grid.bigData.GridContainer
6+
* @extends Neo.grid.Container
7+
*/
8+
class GridContainer extends BaseGridContainer {
9+
static config = {
10+
/**
11+
* @member {String} className='Neo.examples.grid.bigData.GridContainer'
12+
* @protected
13+
*/
14+
className: 'Neo.examples.grid.bigData.GridContainer',
15+
/**
16+
* Default configs for each column
17+
* @member {Object} columnDefaults
18+
*/
19+
columnDefaults: {
20+
cellAlign : 'right',
21+
defaultSortDirection: 'DESC',
22+
width : 100
23+
},
24+
/**
25+
* @member {Object[]} columns
26+
*/
27+
columns: [
28+
{cls: ['neo-index-column'], dataField: 'id', text: '#', width: 60},
29+
{cellAlign: 'left', dataField: 'firstname', defaultSortDirection: 'ASC', text: 'Firstname', width: 150},
30+
{cellAlign: 'left', dataField: 'lastname', defaultSortDirection: 'ASC', text: 'Lastname', width: 150},
31+
{dataField: 'number1', text: 'Number 1'},
32+
{dataField: 'number2', text: 'Number 2'},
33+
{dataField: 'number3', text: 'Number 3'},
34+
{dataField: 'number4', text: 'Number 4'},
35+
{dataField: 'number5', text: 'Number 5'},
36+
{dataField: 'number6', text: 'Number 6'},
37+
{dataField: 'number7', text: 'Number 7'},
38+
{dataField: 'number8', text: 'Number 8'},
39+
{dataField: 'number9', text: 'Number 9'},
40+
{dataField: 'number10', text: 'Number 10'},
41+
{dataField: 'number11', text: 'Number 11'},
42+
{dataField: 'number12', text: 'Number 12'},
43+
{dataField: 'number13', text: 'Number 13'},
44+
{dataField: 'number14', text: 'Number 14'},
45+
{dataField: 'number15', text: 'Number 15'},
46+
{dataField: 'number16', text: 'Number 16'},
47+
{dataField: 'number17', text: 'Number 17'},
48+
{dataField: 'number18', text: 'Number 18'},
49+
{dataField: 'number19', text: 'Number 19'},
50+
{dataField: 'number20', text: 'Number 20'},
51+
{dataField: 'number21', text: 'Number 21'},
52+
{dataField: 'number22', text: 'Number 22'},
53+
{dataField: 'number23', text: 'Number 23'},
54+
{dataField: 'number24', text: 'Number 24'},
55+
{dataField: 'number25', text: 'Number 25'},
56+
{dataField: 'number26', text: 'Number 26'},
57+
{dataField: 'number27', text: 'Number 27'},
58+
{dataField: 'number28', text: 'Number 28'},
59+
{dataField: 'number29', text: 'Number 29'},
60+
{dataField: 'number30', text: 'Number 30'},
61+
{dataField: 'number31', text: 'Number 31'},
62+
{dataField: 'number32', text: 'Number 32'},
63+
{dataField: 'number33', text: 'Number 33'},
64+
{dataField: 'number34', text: 'Number 34'},
65+
{dataField: 'number35', text: 'Number 35'},
66+
{dataField: 'number36', text: 'Number 36'},
67+
{dataField: 'number37', text: 'Number 37'},
68+
{dataField: 'number38', text: 'Number 38'},
69+
{dataField: 'number39', text: 'Number 39'},
70+
{dataField: 'number40', text: 'Number 40'},
71+
{dataField: 'number41', text: 'Number 41'},
72+
{dataField: 'number42', text: 'Number 42'},
73+
{dataField: 'number43', text: 'Number 43'},
74+
{dataField: 'number44', text: 'Number 44'},
75+
{dataField: 'number45', text: 'Number 45'},
76+
{dataField: 'number46', text: 'Number 46'},
77+
{dataField: 'number47', text: 'Number 47'}
78+
],
79+
/**
80+
* @member {Object[]} store=MainStore
81+
*/
82+
store: MainStore
83+
}
84+
}
85+
86+
export default Neo.setupClass(GridContainer);
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import GridContainer from './GridContainer.mjs';
2+
import Viewport from '../../../src/container/Viewport.mjs';
3+
4+
/**
5+
* @class Neo.examples.grid.bigData.MainContainer
6+
* @extends Neo.container.Viewport
7+
*/
8+
class MainContainer extends Viewport {
9+
static config = {
10+
/**
11+
* @member {String} className='Neo.examples.grid.bigData.MainContainer'
12+
* @protected
13+
*/
14+
className: 'Neo.examples.grid.bigData.MainContainer',
15+
/**
16+
* @member {Object[]} items=[GridContainer]
17+
*/
18+
items: [GridContainer],
19+
/**
20+
* @member {Object} layout={ntype:'fit'}
21+
*/
22+
layout: {ntype: 'fit'},
23+
/**
24+
* @member {Object} style={padding:'20px'}
25+
*/
26+
style: {padding: '20px'}
27+
}
28+
}
29+
30+
export default Neo.setupClass(MainContainer);
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import Model from '../../../src/data/Model.mjs';
2+
3+
/**
4+
* @class Neo.examples.grid.bigData.MainModel
5+
* @extends Neo.data.Model
6+
*/
7+
class MainModel extends Model {
8+
static config = {
9+
className: 'Neo.examples.grid.bigData.MainModel',
10+
11+
fields: [
12+
{name: 'id', type: 'Int'},
13+
{name: 'index', type: 'Int'},
14+
{name: 'firstname', type: 'String'},
15+
{name: 'lastname', type: 'String'},
16+
{name: 'number1', type: 'Int'},
17+
{name: 'number2', type: 'Int'},
18+
{name: 'number3', type: 'Int'},
19+
{name: 'number4', type: 'Int'},
20+
{name: 'number5', type: 'Int'},
21+
{name: 'number6', type: 'Int'},
22+
{name: 'number7', type: 'Int'},
23+
{name: 'number8', type: 'Int'},
24+
{name: 'number9', type: 'Int'},
25+
{name: 'number10', type: 'Int'},
26+
{name: 'number11', type: 'Int'},
27+
{name: 'number12', type: 'Int'},
28+
{name: 'number13', type: 'Int'},
29+
{name: 'number14', type: 'Int'},
30+
{name: 'number15', type: 'Int'},
31+
{name: 'number16', type: 'Int'},
32+
{name: 'number17', type: 'Int'},
33+
{name: 'number18', type: 'Int'},
34+
{name: 'number19', type: 'Int'},
35+
{name: 'number20', type: 'Int'},
36+
{name: 'number21', type: 'Int'},
37+
{name: 'number22', type: 'Int'},
38+
{name: 'number23', type: 'Int'},
39+
{name: 'number24', type: 'Int'},
40+
{name: 'number25', type: 'Int'},
41+
{name: 'number26', type: 'Int'},
42+
{name: 'number27', type: 'Int'},
43+
{name: 'number28', type: 'Int'},
44+
{name: 'number29', type: 'Int'},
45+
{name: 'number30', type: 'Int'},
46+
{name: 'number31', type: 'Int'},
47+
{name: 'number32', type: 'Int'},
48+
{name: 'number33', type: 'Int'},
49+
{name: 'number34', type: 'Int'},
50+
{name: 'number35', type: 'Int'},
51+
{name: 'number36', type: 'Int'},
52+
{name: 'number37', type: 'Int'},
53+
{name: 'number38', type: 'Int'},
54+
{name: 'number39', type: 'Int'},
55+
{name: 'number40', type: 'Int'},
56+
{name: 'number41', type: 'Int'},
57+
{name: 'number42', type: 'Int'},
58+
{name: 'number43', type: 'Int'},
59+
{name: 'number44', type: 'Int'},
60+
{name: 'number45', type: 'Int'},
61+
{name: 'number46', type: 'Int'},
62+
{name: 'number47', type: 'Int'}
63+
]
64+
}
65+
}
66+
67+
export default Neo.setupClass(MainModel);
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import Model from './MainModel.mjs';
2+
import Store from '../../../src/data/Store.mjs';
3+
4+
/**
5+
* @class Neo.examples.grid.bigData.MainStore
6+
* @extends Neo.data.Store
7+
*/
8+
class MainStore extends Store {
9+
static config = {
10+
className: 'Neo.examples.grid.bigData.MainStore',
11+
model : Model
12+
}
13+
14+
/**
15+
* @param {Object} config
16+
*/
17+
construct(config) {
18+
super.construct(config);
19+
this.data = this.generateData(50000);
20+
console.log(this);
21+
}
22+
23+
/**
24+
* @param {Number} countRows
25+
* @returns {Object[]}
26+
*/
27+
generateData(countRows) {
28+
let countColumns = 48,
29+
records = [],
30+
row = 0,
31+
column, record;
32+
33+
for (; row < countRows; row++) {
34+
column = 1;
35+
record = {id: row + 1, firstname: 'Tobias', lastname: 'Uhlig'};
36+
37+
for (; column < countColumns; column++) {
38+
record['number' + column] = Math.round(Math.random() * 10000)
39+
}
40+
41+
records.push(record)
42+
}
43+
44+
return records
45+
}
46+
}
47+
48+
export default Neo.setupClass(MainStore);

examples/grid/bigData/app.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import MainContainer from './MainContainer.mjs';
2+
3+
export const onStart = () => Neo.app({
4+
mainView: MainContainer,
5+
name : 'Neo.examples.grid.bigData'
6+
});

examples/grid/bigData/index.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<meta name="viewport" content="width=device-width, initial-scale=1">
5+
<meta charset="UTF-8">
6+
<title>Neo GridContainer - Big Data</title>
7+
</head>
8+
<body>
9+
<script src="../../../src/MicroLoader.mjs" type="module"></script>
10+
</body>
11+
</html>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"appPath" : "examples/grid/bigData/app.mjs",
3+
"basePath" : "../../../",
4+
"environment" : "development",
5+
"mainPath" : "./Main.mjs",
6+
"mainThreadAddons": ["DragDrop", "Navigator", "ResizeObserver", "Stylesheet"],
7+
"themes" : ["neo-theme-dark"]
8+
}

examples/grid/covid/neo-config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
"environment" : "development",
55
"mainPath" : "./Main.mjs",
66
"mainThreadAddons": ["DragDrop", "Navigator", "ResizeObserver", "Stylesheet"],
7-
"themes" : ["neo-theme-dark", "neo-theme-light"]
7+
"themes" : ["neo-theme-dark"]
88
}

0 commit comments

Comments
 (0)