Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
e2ac4385
Commit
e2ac4385
authored
Aug 12, 2015
by
Collin Jackson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Basic line charts
parent
1597359b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
106 additions
and
4 deletions
+106
-4
playfair.dart
packages/playfair/lib/playfair.dart
+6
-1
base.dart
packages/playfair/lib/src/base.dart
+96
-0
playfair_test.dart
packages/playfair/test/playfair_test.dart
+4
-3
No files found.
packages/playfair/lib/playfair.dart
View file @
e2ac4385
...
...
@@ -4,5 +4,10 @@
library
playfair
;
import
'dart:
math'
as
math
;
import
'dart:
sky'
as
sky
;
import
'package:sky/widgets/framework.dart'
;
import
'package:sky/rendering/box.dart'
;
import
'package:sky/rendering/object.dart'
;
part
'src/base.dart'
;
packages/playfair/lib/src/base.dart
0 → 100644
View file @
e2ac4385
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
playfair
;
class
ChartData
{
const
ChartData
({
this
.
startX
,
this
.
endX
,
this
.
startY
,
this
.
endY
,
this
.
dataSet
});
final
double
startX
;
final
double
endX
;
final
double
startY
;
final
double
endY
;
final
List
<
sky
.
Point
>
dataSet
;
}
class
Chart
extends
LeafRenderObjectWrapper
{
Chart
({
Key
key
,
this
.
data
})
:
super
(
key:
key
);
final
ChartData
data
;
RenderChart
createNode
()
=>
new
RenderChart
(
data:
data
);
RenderChart
get
root
=>
super
.
root
;
void
syncRenderObject
(
Widget
old
)
{
super
.
syncRenderObject
(
old
);
root
.
data
=
data
;
}
}
class
RenderChart
extends
RenderConstrainedBox
{
RenderChart
({
ChartData
data
})
:
_painter
=
new
ChartPainter
(
data
),
super
(
child:
null
,
additionalConstraints:
BoxConstraints
.
expand
);
final
ChartPainter
_painter
;
ChartData
get
data
=>
_painter
.
data
;
void
set
data
(
ChartData
value
)
{
assert
(
value
!=
null
);
if
(
value
==
_painter
.
data
)
return
;
_painter
.
data
=
value
;
markNeedsPaint
();
}
void
paint
(
PaintingCanvas
canvas
,
Offset
offset
)
{
assert
(
size
.
width
!=
null
);
assert
(
size
.
height
!=
null
);
_painter
.
paint
(
canvas
,
offset
&
size
);
super
.
paint
(
canvas
,
offset
);
}
}
class
ChartPainter
{
ChartPainter
(
this
.
data
);
ChartData
data
;
Point
_convertPointToRectSpace
(
sky
.
Point
point
,
Rect
rect
)
{
double
x
=
rect
.
left
+
((
point
.
x
-
data
.
startX
)
/
(
data
.
endX
-
data
.
startX
))
*
rect
.
width
;
double
y
=
rect
.
bottom
-
((
point
.
y
-
data
.
startY
)
/
(
data
.
endY
-
data
.
startY
))
*
rect
.
height
;
return
new
Point
(
x
,
y
);
}
void
_paintChart
(
sky
.
Canvas
canvas
,
Rect
rect
)
{
Paint
paint
=
new
Paint
()
..
strokeWidth
=
2.0
..
color
=
const
Color
(
0xFF000000
);
List
<
sky
.
Point
>
dataSet
=
data
.
dataSet
;
assert
(
dataSet
!=
null
);
assert
(
dataSet
.
length
>
0
);
Path
path
=
new
Path
();
Point
start
=
_convertPointToRectSpace
(
data
.
dataSet
[
0
],
rect
);
path
.
moveTo
(
start
.
x
,
start
.
y
);
for
(
sky
.
Point
point
in
data
.
dataSet
)
{
Point
current
=
_convertPointToRectSpace
(
point
,
rect
);
canvas
.
drawCircle
(
current
,
3.0
,
paint
);
path
.
lineTo
(
current
.
x
,
current
.
y
);
}
paint
.
setStyle
(
sky
.
PaintingStyle
.
stroke
);
canvas
.
drawPath
(
path
,
paint
);
}
void
_paintScale
(
sky
.
Canvas
canvas
,
Rect
rect
)
{
Paint
paint
=
new
Paint
()..
color
=
const
Color
(
0xFF000000
);
canvas
.
drawText
(
"
${data.startY}
"
,
rect
.
bottomRight
,
paint
);
canvas
.
drawText
(
"
${data.endY}
"
,
rect
.
topRight
,
paint
);
}
void
paint
(
sky
.
Canvas
canvas
,
Rect
rect
)
{
_paintChart
(
canvas
,
rect
);
_paintScale
(
canvas
,
rect
);
}
}
packages/playfair/test/playfair_test.dart
View file @
e2ac4385
// Copyright
(c)
2015 The Chromium Authors. All rights reserved.
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library
playfair
.
test
;
import
'package:test/test.dart'
;
//
import 'package:test/test.dart';
import
'package:playfair/playfair.dart'
;
//
import 'package:playfair/playfair.dart';
void
main
(
)
{
// TODO(jackson): Tests
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment