8
Classes, SysUtils, FileUtil, TAGraph, DateTimePicker, Forms, Controls,
9
Graphics, Dialogs, ComCtrls, ExtCtrls, StdCtrls, Grids, FileInfo, Clipbrd,
10
LCLIntf, Menus, PPAModel;
8
Classes, SysUtils, FileUtil, TAGraph, TASeries, TAIntervalSources,
9
DateTimePicker, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
10
StdCtrls, Grids, FileInfo, Clipbrd, LCLIntf, Menus, DateUtils, PPAModel;
136
147
procedure TForm1.btUpdateCountClick(Sender: TObject);
149
package: TPPAPackage;
151
node, node_main: TTreeNode;
139
154
enableControls(False);
141
156
StatusBar1.SimpleText := 'Receiving count data from site';
157
ProgressBar1.Visible := True;
142
158
Application.ProcessMessages;
144
ppa.autoUpdateCount(ppa.user);
160
ppa.autoUpdateCount(ppa.user, ProgressBar1);
161
ppa.saveToXML(modelFile);
163
tvSummary.Items.Clear;
164
node_main := tvSummary.Items.Add(nil, ppa.user.Name + ': ' + ppa.user.display_name);
166
for package in ppa.user.packages do
168
node := tvSummary.Items.AddChild(node_main, package.Name + ' [' +
169
IntToStr(package.downloads) + ' download(s)]');
170
for binary in package.binaries do
172
tvSummary.Items.AddChild(node, binary.Name + ' ' + binary.version +
173
' [' + IntToStr(binary.downloads) + ' download(s)]');
177
node_main.Expand(False);
179
tvSummary.SaveToFile(summaryFile);
146
181
enableControls(True);
148
183
StatusBar1.SimpleText := 'Ready';
184
ProgressBar1.Visible := False;
149
185
Application.ProcessMessages;
197
233
package: TPPAPackage;
198
234
binary: TPPABinary;
199
235
history: TPPABinaryHistory;
236
barSerie: TBarSeries;
203
243
enableControls(False);
205
245
StatusBar1.SimpleText := 'Receiving detail data from site';
246
ProgressBar1.Visible := True;
206
247
Application.ProcessMessages;
208
249
sgDetail.RowCount := 1;
211
251
// detail capture
213
ppa.autoFillHistories(ppa.user, dtFrom.Date, dtTo.Date);
253
ppa.autoFillHistories(ppa.user, dtFrom.Date, dtTo.Date, ProgressBar1);
215
255
// detail refresh
257
Chart1.Title.Text.Clear;
258
Chart1.Title.Text.Add('Packages Downloads');
259
Chart1.Title.Text.Add('Time Series');
260
Chart1.LeftAxis.Title.Caption := 'Downloads';
261
Chart1.BottomAxis.Title.Caption := 'Timeline';
217
264
sgDetail.RowCount := 1;
266
if ppa.user.packages.Count > 0 then
268
i := ppa.user.packages.Count;
270
o := - trunc(i * w / 2) ;
219
273
for package in ppa.user.packages do
275
barSerie := TBarSeries.Create(Self);
276
barSerie.Title := package.Name;
277
barSerie.BarBrush.Color:=rgb(random(255), random(255), random(255));
278
barSerie.BarPen.Color:=clBlack;
279
barSerie.BarWidthStyle:=bwPercentMin;
280
barSerie.BarWidthPercent:=w;
281
//barSerie.BarOffsetPercent:=o;
221
285
for binary in package.binaries do
223
287
for history in binary.histories do
230
294
sgDetail.Cells[4, i] := binary.version;
231
295
sgDetail.Cells[5, i] := history.day;
232
296
sgDetail.Cells[6, i] := IntToStr(history.downloads);
297
x := ScanDateTime('yyyy-mm-dd', history.day);
298
y := history.downloads;
300
for k := 0 to barSerie.Count - 1 do
302
if barSerie.GetXValue(k) = x then
304
barSerie.SetYValue(k, barSerie.GetYValue(k) + y);
310
barSerie.AddXY(x, y);
314
Chart1.AddSeries(barSerie);
317
sgDetail.AutoAdjustColumns;
241
sgDetail.AutoAdjustColumns;
243
321
StatusBar1.SimpleText := 'Ready';
322
ProgressBar1.Visible := False;
244
323
Application.ProcessMessages;
246
325
enableControls(True);
284
tvSummary.Items.Clear;
285
node_main := tvSummary.Items.Add(nil, ppa.user.Name + ': ' + ppa.user.display_name);
287
359
StatusBar1.SimpleText := 'Receiving summary data from site: packages';
288
360
Application.ProcessMessages;
290
362
ppa.autoFillUser(ppa.user);
292
for package in ppa.user.packages do
294
node := tvSummary.Items.AddChild(node_main, package.Name + ' [' +
295
IntToStr(package.downloads) + ' download(s)]');
296
for binary in package.binaries do
298
tvSummary.Items.AddChild(node, binary.Name + ' ' + binary.version +
299
' [' + IntToStr(binary.downloads) + ' download(s)]');
303
node_main.Expand(False);
305
363
ppa.saveToXML(modelFile);
306
tvSummary.SaveToFile(summaryFile);
308
367
StatusBar1.SimpleText := 'Ready';
309
368
Application.ProcessMessages;