UNPKG

shubhadownloader

Version:

There is large amount of information available in market place. The markets are always in sync. In today's world investors find it very difficult to make effective use of information available to them. Shubha Downloader is great tool which resolves this problem and helps investor to increase his productivity and stay focused on decision making. Shubha Downloader enable end user to download market data from available sources and organize it. Shubha Downloader is Open source & FREE utility for end users. Shubha Downloader have main features as follows End of the day market data from web to your favorite charting application . Fundamental market data from web to your favorite charting application. Market reports from web to your favorite charting application.

103 lines (90 loc) 3.76 kB
/* * This is a simple in-memory store implementation that is ONLY intended for use with * calendar samples running locally in the browser with no external data source. Under * normal circumstances, stores that use a MemoryProxy are read-only and intended only * for displaying data read from memory. In the case of the calendar, it's still quite * useful to be able to deal with in-memory data for sample purposes (as many people * may not have PHP set up to run locally), but by default, updates will not work since the * calendar fully expects all CRUD operations to be supported by the store (and in fact * will break, for example, if phantom records are not removed properly). This simple * class gives us a convenient way of loading and updating calendar event data in memory, * but should NOT be used outside of the local samples. */ Ext.define('Ext.calendar.data.MemoryEventStore', { extend: 'Ext.data.Store', model: 'Ext.calendar.data.EventModel', requires: [ 'Ext.data.proxy.Memory', 'Ext.data.reader.Json', 'Ext.data.writer.Json', 'Ext.calendar.data.EventModel', 'Ext.calendar.data.EventMappings' ], proxy: { type: 'memory', reader: { type: 'json', root: 'evts' }, writer: { type: 'json' } }, // private constructor: function(config){ this.callParent(arguments); this.sorters = this.sorters || [{ property: Ext.calendar.data.EventMappings.StartDate.name, direction: 'ASC' }]; this.idProperty = this.idProperty || Ext.calendar.data.EventMappings.EventId.mapping || 'id'; this.fields = Ext.calendar.data.EventModel.prototype.fields.getRange(); this.onCreateRecords = Ext.Function.createInterceptor(this.onCreateRecords, this.interceptCreateRecords); this.initRecs(); }, // private - override to make sure that any records added in-memory // still get a unique PK assigned at the data level interceptCreateRecords: function(records, operation, success) { if (success) { var i = 0, rec, len = records.length; for (; i < len; i++) { records[i].data[Ext.calendar.data.EventMappings.EventId.name] = records[i].id; } } }, // If the store started with preloaded inline data, we have to make sure the records are set up // properly as valid "saved" records otherwise they may get "added" on initial edit. initRecs: function(){ this.each(function(rec){ rec.store = this; rec.phantom = false; }, this); }, // private - override the default logic for memory storage onProxyLoad: function(operation) { var me = this, records; if (me.data && me.data.length > 0) { // this store has already been initially loaded, so do not reload // and lose updates to the store, just use store's latest data me.totalCount = me.data.length; records = me.data.items; } else { // this is the initial load, so defer to the proxy's result var resultSet = operation.getResultSet(), successful = operation.wasSuccessful(); records = operation.getRecords(); if (resultSet) { me.totalCount = resultSet.total; } if (successful) { me.loadRecords(records, operation); } } me.loading = false; me.fireEvent('load', me, records, successful); } });