Skip to content

Commit

Permalink
migrate Chart v3 code in master to swift 2.3 syntax (#1387)
Browse files Browse the repository at this point in the history
migrate Chart v3 code in master to swift 2.3 syntax (#1387)

* upgrade carthage to 0.17.1

* use master commit for iso-snapshot-test-case for now. once the fix is tagged we could change to the new version

* change Rakefile, comment out tvOS because no FBSnapshotTestCase

* Add missing imports for iOS 7 support

* Update ChartSelectionDetail.swift

* BUGFIX: fix infinite recursive call of getXIndex(_:)

* for #1208, seems drawBarShadowEnabled should be false by default

* 1. update ios-snapshot-test-case to 2.1.2
2. remove brew upgrade carthage, because travis saying

* improve descriptions to warn users how to use setVisibleRange APIs

* Typo fix

* upgrade Realm to 1.0.2

* update Realm pod spec to 1.0.2

* fix pod spec typo

* Work on x-values instead of x-indices (free for all :-)

* Improvement for pie slice spacing calculation

* Example improvements

* Docs improvements

* Major work on highlights

* ChartMarker is now a protocol, and we have ChartMarkerView/Image helpers

* Improvements regarding irrelevant inherited methods

* Added feature to change color of "no data" text

* More work on highlights

* Viewport enhancements for better horizontal bar support

* X-axis renderer enhancements for better horizontal bar support

* Minor improvement to valueFormatter

* Completed copy routine for scatter dataset

* Pie: Renamed `drawSliceTextEnabled` to `drawEntryLabelsEnabled`

* Pie: Added feature to offset center text

* Pie: Separate color/font for entry labels (defaults to value color/font)

* Minor improvements to demo

* Minor refactoring of variable names

* Example cleanup

* Refactored scatter shape rendering into interface and renderers

* Improved docs

* Removed deprecated --var / var--

* Update README.md

* Dropped iOS 7.0 support from README (Closes #601)

* Fixed a RadarChart bug where value labels were misplaced

* Realm fixes

* Improvements to zoom methods

* Legend improvements

* DRYed some code

* Adjusted maxHighlightDistance defaults

* Removed NaN check for highlight.

* Cleanup these comments

* `drawBarShadowEnabled` is working again

* Do not invalidate here by default, like other zoom methods

* Simplified scatter shape enum model

* These return a single pixel (x/y), for values (x value and y value)

* Renamed x-pos to x-value where appropriate

* Renamed ChartMarker -> IChartMarker

* Namespace `Marker` names only for Objc (Swift 2.2)

The Charts v3 changes are a chance to do this,
  as it's a breaking change anyway.

* Do not force unwrap here

* Fix for comments

* More improvements to Markers, default behaviour constraint to view size

* Docs

* The highlight breaking changes are a chance to use @objc(name) feature

* Use @objc(name) feature for rarely used classes (by users)

* Improved entryIndex rounding method

* Fixed drawing bounds for some of the charts

* Removed unused yValueForXValue / yValuesForXValue

* Set a default shape renderer

* Take the correct barData object here

* Fixed combined chart highlight with bar data

* Minor refactoring

* Removed the extra offset that messed up legend location

* Cache XBounds object

* Breaking change: `valueFormatter` now accepts an IValueFormatter

This allows for formatting depending on viewport state etc.

* Avoid x values in Pie's calcMinMax

* This workaround is not required in the newer compilers

* Renamed formatter interfaces

FillFormatter -> IFillFormatter
ValueFormatter -> IValueFormatter
AxisValueFormatter -> IAxisValueFormatter

* Avoid truncating using Int(...), it overflows

* Corrected formula for 29-feb :-)

* Some minor bug fixes for formatters

* Polished demos

* More improvements to examples

* These should be internal

* Fixed xAxis min/max calculation typo

* Added helper to generate a fill formatter with a closure (block)

* Added more samples

* Updated tests

* Set default barWidth to match old default behaviour

* Renamed axisMinValue/axisMaxValue to axisMinimum/axisMaximum

* Cleaned up header comments

(I know that most of these files were created by me, I don't need that
 in the headers...)

* Removed deprecated startAtZero properties

* When only one of scaleXEnabled or scaleYEnabled is effective

* Docs

* Cleanup

* Use EPSILON instead of an arbitrary value (Fixes #1239)

* Fix dataset update in Dual line chart demo (Fixes #1250)

* Add half line width to clipping rect of grid/limit lines (Fixes #1204)

* Simplified legend entries configuration. Option to style dataset form.

(Closes #1282)

* Added feature for dashing legend line forms

* Change default formLineWidth to match the default on MPAndroidChart

* neededWidth should be enough here. formSize has no meaning globally.

If more offset is needed - use extraOffsets, or adjust the maxSizePercent).

* Renamed those classes too. Cleaner now. Should be too breaking...

As with swift's minimal syntax - the chance of anyone referencing
  those by name is very low.
On ObjC, the names stayed the same, for namespacing.

* Take care of edge cases when calculating intervals (labelCount == 0)

* autoScaleMinMax is working again (Fixes #1209)

* Minor refactoring (Closes #1187)

Sorry, un-mergable to `master`...

* Fixed reversed condition from cbd7bf7

* It's clearer this way

* Fill before stroke - because the fill may cover half of a thick stroke

(Closes #982)

* Added those new classes to tvOS/macOS targets

* Migrated viewFromXib to macOS

* Call `print` under `Swift` namespace, due to Cocoa ambiguity in NSView

* Migrated macOS demos to Charts 3.0

* Use an optional for _displayLink (Fixes #1336)

_displayLink might not have been created, i.e. in Interface Builder context.

* Corrected LineChartRenderer cubicFill x range

* Fixed horizontal cubic calculation bug introduced when removing x-index

* Avoid using deprecated property in demo

* Updated test screenshots

* Animating the wrong axis for the starting point

* migrate Chart v3 code in master to swift 2.3 syntax
  • Loading branch information
liuxuan30 committed Sep 1, 2016
1 parent 2b58abe commit 129aab6
Show file tree
Hide file tree
Showing 429 changed files with 50,602 additions and 36,716 deletions.
2 changes: 1 addition & 1 deletion Charts.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ Pod::Spec.new do |s|
s.subspec "Realm" do |ss|
ss.source_files = "ChartsRealm/Classes/**/*.swift"
ss.dependency "Charts/Core"
ss.dependency "RealmSwift", "~> 0.97"
ss.dependency "RealmSwift", "~> 1.0.2"
end
end
2 changes: 1 addition & 1 deletion Charts/Cartfile.private
Original file line number Diff line number Diff line change
@@ -1 +1 @@
github "facebook/ios-snapshot-test-case" ~> 2.1
github "facebook/ios-snapshot-test-case" ~> 2.1.2
2 changes: 1 addition & 1 deletion Charts/Cartfile.resolved
Original file line number Diff line number Diff line change
@@ -1 +1 @@
github "facebook/ios-snapshot-test-case" "2.1.1"
github "facebook/ios-snapshot-test-case" "2.1.2"
768 changes: 464 additions & 304 deletions Charts/Charts.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
LastUpgradeVersion = "0800"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
15 changes: 8 additions & 7 deletions Charts/ChartsTests/BarChartTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,21 @@ class BarChartTests: FBSnapshotTestCase
99, 14, 84, 48, 40, 71, 106, 41, 45, 61]

var entries: [ChartDataEntry] = Array()
var xValues: [String] = Array()

for (i, value) in values.enumerate()
{
entries.append(BarChartDataEntry.init(value: value, xIndex: i))
xValues.append("\(i)")
entries.append(BarChartDataEntry(x: Double(i), y: value))
}

dataSet = BarChartDataSet(yVals: entries, label: "Bar chart unit test data")
dataSet = BarChartDataSet(values: entries, label: "Bar chart unit test data")

let data = BarChartData(dataSet: dataSet)
data.barWidth = 0.85;

chart = BarChartView(frame: CGRectMake(0, 0, 480, 350))
chart.leftAxis.axisMinValue = 0.0
chart.rightAxis.axisMinValue = 0.0
chart.data = BarChartData(xVals: xValues, dataSet: dataSet)
chart.leftAxis.axisMinimum = 0.0
chart.rightAxis.axisMinimum = 0.0
chart.data = data
}

override func tearDown()
Expand Down
12 changes: 5 additions & 7 deletions Charts/ChartsTests/LineChartTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,18 @@ class LineChartTests: FBSnapshotTestCase
99, 14, 84, 48, 40, 71, 106, 41, 45, 61]

var entries: [ChartDataEntry] = Array()
var xValues: [String] = Array()

for (i, value) in values.enumerate()
{
entries.append(ChartDataEntry.init(value: value, xIndex: i))
xValues.append("\(i)")
entries.append(ChartDataEntry(x: Double(i), y: value))
}

dataSet = LineChartDataSet(yVals: entries, label: "First unit test data")
dataSet = LineChartDataSet(values: entries, label: "First unit test data")

chart = LineChartView(frame: CGRectMake(0, 0, 480, 350))
chart.leftAxis.axisMinValue = 0.0
chart.rightAxis.axisMinValue = 0.0
chart.data = LineChartData(xVals: xValues, dataSet: dataSet)
chart.leftAxis.axisMinimum = 0.0
chart.rightAxis.axisMinimum = 0.0
chart.data = LineChartData(dataSet: dataSet)
}

override func tearDown()
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
//
// ChartAnimator.swift
// Animator.swift
// Charts
//
// Created by Daniel Cohen Gindi on 3/3/15.
//
// Copyright 2015 Daniel Cohen Gindi & Philipp Jahoda
// A port of MPAndroidChart for iOS
// Licensed under Apache License 2.0
Expand All @@ -18,31 +16,32 @@ import CoreGraphics
import UIKit
#endif

@objc
public protocol ChartAnimatorDelegate
@objc(ChartAnimatorDelegate)
public protocol AnimatorDelegate
{
/// Called when the Animator has stepped.
func chartAnimatorUpdated(chartAnimator: ChartAnimator)
func animatorUpdated(chartAnimator: Animator)

/// Called when the Animator has stopped.
func chartAnimatorStopped(chartAnimator: ChartAnimator)
func animatorStopped(chartAnimator: Animator)
}

public class ChartAnimator: NSObject
@objc(ChartAnimator)
public class Animator: NSObject
{
public weak var delegate: ChartAnimatorDelegate?
public weak var delegate: AnimatorDelegate?
public var updateBlock: (() -> Void)?
public var stopBlock: (() -> Void)?

/// the phase that is animated and influences the drawn values on the x-axis
public var phaseX: CGFloat = 1.0
public var phaseX: Double = 1.0

/// the phase that is animated and influences the drawn values on the y-axis
public var phaseY: CGFloat = 1.0
public var phaseY: Double = 1.0

private var _startTimeX: NSTimeInterval = 0.0
private var _startTimeY: NSTimeInterval = 0.0
private var _displayLink: NSUIDisplayLink!
private var _displayLink: NSUIDisplayLink?

private var _durationX: NSTimeInterval = 0.0
private var _durationY: NSTimeInterval = 0.0
Expand All @@ -69,9 +68,9 @@ public class ChartAnimator: NSObject

public func stop()
{
if (_displayLink != nil)
if _displayLink != nil
{
_displayLink.removeFromRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
_displayLink?.removeFromRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
_displayLink = nil

_enabledX = false
Expand All @@ -85,7 +84,7 @@ public class ChartAnimator: NSObject

if (delegate != nil)
{
delegate!.chartAnimatorUpdated(self)
delegate!.animatorUpdated(self)
}
if (updateBlock != nil)
{
Expand All @@ -95,7 +94,7 @@ public class ChartAnimator: NSObject

if (delegate != nil)
{
delegate!.chartAnimatorStopped(self)
delegate!.animatorStopped(self)
}
if (stopBlock != nil)
{
Expand All @@ -122,7 +121,7 @@ public class ChartAnimator: NSObject
}
else
{
phaseX = CGFloat(elapsed / duration)
phaseX = Double(elapsed / duration)
}
}
if (_enabledY)
Expand All @@ -141,7 +140,7 @@ public class ChartAnimator: NSObject
}
else
{
phaseY = CGFloat(elapsed / duration)
phaseY = Double(elapsed / duration)
}
}
}
Expand All @@ -154,7 +153,7 @@ public class ChartAnimator: NSObject

if (delegate != nil)
{
delegate!.chartAnimatorUpdated(self)
delegate!.animatorUpdated(self)
}
if (updateBlock != nil)
{
Expand Down Expand Up @@ -193,10 +192,10 @@ public class ChartAnimator: NSObject
// Take care of the first frame if rendering is already scheduled...
updateAnimationPhases(_startTimeX)

if (_enabledX || _enabledY)
if _enabledX || _enabledY
{
_displayLink = NSUIDisplayLink(target: self, selector: #selector(ChartAnimator.animationLoop))
_displayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
_displayLink = NSUIDisplayLink(target: self, selector: #selector(animationLoop))
_displayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
}
}

Expand Down Expand Up @@ -259,10 +258,10 @@ public class ChartAnimator: NSObject

if (_enabledX || _enabledY)
{
if _displayLink === nil
if _displayLink == nil
{
_displayLink = NSUIDisplayLink(target: self, selector: #selector(ChartAnimator.animationLoop))
_displayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
_displayLink = NSUIDisplayLink(target: self, selector: #selector(animationLoop))
_displayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
}
}
}
Expand Down Expand Up @@ -303,10 +302,10 @@ public class ChartAnimator: NSObject

if (_enabledX || _enabledY)
{
if _displayLink === nil
if _displayLink == nil
{
_displayLink = NSUIDisplayLink(target: self, selector: #selector(ChartAnimator.animationLoop))
_displayLink.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
_displayLink = NSUIDisplayLink(target: self, selector: #selector(animationLoop))
_displayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
}
}
}
Expand Down
Loading

0 comments on commit 129aab6

Please sign in to comment.