1 Ext4.onReady(function() {
16 memoryArray = ['Wired', 'Active', 'Inactive', 'Free'];
17 processArray = ['explorer', 'monitor', 'charts', 'desktop', 'Ext3', 'Ext4'];
18 colors = ['rgb(244, 16, 0)',
23 Ext4.chart.theme.Memory = Ext4.extend(Ext4.chart.theme.Base, {
24 constructor: function(config) {
25 Ext4.chart.theme.Base.prototype.constructor.call(this, Ext4.apply({
31 function generateData(a) {
35 rest = a.length, total = rest, consume;
36 for (i = 0; i < a.length; i++) {
37 consume = Math.floor(Math.random() * rest * 100) / 100 + 2;
38 rest = rest - (consume - 5);
48 memoryStore = Ext4.create('store.json', {
49 fields: ['name', 'memory'],
50 data: generateData(memoryArray)
53 processesMemoryStore = Ext4.create('store.json', {
54 fields: ['name', 'memory'],
55 data: generateData(processArray)
58 cpuLoadStore = Ext4.create('store.json', { fields: ['core1', 'core2'] });
62 function generateCpuLoad() {
63 function generate(factor) {
64 var value = factor + ((Math.floor(Math.random() * 2) % 2) ? -1 : 1) * Math.floor(Math.random() * 9);
66 if (value < 0 || value > 100) {
73 if (data.length === 0) {
80 for (var i = 1; i < 100; i++) {
82 core1: generate(data[i - 1].core1),
83 core2: generate(data[i - 1].core2),
88 cpuLoadStore.loadData(data);
91 cpuLoadStore.data.removeAt(0);
92 cpuLoadStore.data.each(function(item, key) {
96 var lastData = cpuLoadStore.last().data;
97 cpuLoadStore.loadData([{
98 core1: generate(lastData.core1),
99 core2: generate(lastData.core2),
100 time: lastData.time + 1
108 memoryPieChartConfig = {
121 theme: 'Memory:gradients',
131 renderer: function(storeItem, item) {
132 //calculate percentage.
134 memoryStore.each(function(rec) {
135 total += rec.get('memory');
137 this.setTitle(storeItem.get('name') + ': ' + Math.round(storeItem.get('memory') / total * 100) + '%');
161 store: processesMemoryStore,
163 easing: 'ease-in-out',
183 title: 'System Processes',
185 font: 'bold 14px Arial'
196 title: 'Memory Usage',
198 font: 'bold 14px Arial'
214 renderer: function(sprite, record, attr, index, store) {
215 var highColor = Ext4.draw.Color.fromString('#e84b67'),
216 lowColor = Ext4.draw.Color.fromString('#b1da5a'),
217 value = record.get('memory'),
221 color = lowColor.getDarker((value - 5) / 15).toString();
224 color = lowColor.getLighter(((5 - value) / 20)).toString();
231 return Ext.apply(attr, {
238 cpuLoadChartConfig = {
263 title: 'Core 1 (3.4GHz)',
277 cpuLoadChartConfig2 = {
302 title: 'Core 2 (3.4GHz)',
316 win = Ext4.createWidget('window', {
321 title: 'System Statistics',
322 renderTo: Ext4.getBody(),
354 memoryPieChartConfig,
362 function doGenerateCpuLoad() {
363 clearTimeout(cpuLoadTimer);
364 cpuLoadTimer = setTimeout(function() {
365 if (pass % 3 === 0) {
366 memoryStore.loadData(generateData(memoryArray));
369 if (pass % 5 === 0) {
370 processesMemoryStore.loadData(generateData(processArray));
379 Ext.get('chart-win-shortcut').on('click', function() {