Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rc5 #1764

Merged
merged 415 commits into from
Jan 14, 2025
Merged

rc5 #1764

merged 415 commits into from
Jan 14, 2025

Conversation

beto-rodriguez
Copy link
Owner

No description provided.

beto-rodriguez and others added 30 commits November 19, 2024 12:29
Refactored the `CoreSection` class and its usage across the project:
- Removed the generic type parameter `<TDrawingContext>` from `CoreSection` and related classes/interfaces.
- Updated `Sections` property in `CartesianChart.cs` to use `IEnumerable<CoreSection>` instead of `IEnumerable<CoreSection<TDrawingContext>>`.
- Modified `CoreSection` class to be non-generic.
- Updated `ICartesianChartView` interface to reflect the change in `Sections` property type.
- Replaced all instances of `CoreSection<TDrawingContext>` with `CoreSection` in various files.
- Updated `CollectionDeepObserver` instances and properties to use non-generic `CoreSection`.
- Simplified dependency and bindable properties for `Sections` to use `IEnumerable<CoreSection>`.

These changes simplify the type hierarchy and usage of `CoreSection`, making the codebase easier to maintain and understand.
Refactored the codebase to replace the generic type `Chart<TDrawingContext>`
with a non-generic `Chart` class. Updated all relevant references, method
signatures, and property types across multiple files and classes, including
`BarSeries`, `CartesianChart`, `CoreAxis`, and more. Removed the `IChart`
interface and replaced its references with the `Chart` class. Updated XML
documentation comments and event handlers to reflect these changes. This
refactor aims to simplify the codebase and reduce complexity.
This commit simplifies the LiveCharts and LiveChartsCore libraries by removing the generic type parameter `TDrawingContext` from various classes, interfaces, and methods. Key changes include:

- Updated `CartesianChart`, `CoreHeatLandSeries`, `CoreHeatSeries`, `DrawnMap`, `MapLayer`, `GeoMapChart`, and related interfaces to remove `TDrawingContext`.
- Replaced `LiveCharts.DefaultSettings.GetProvider<TDrawingContext>()` with `LiveCharts.DefaultSettings.GetProvider()`.
- Refactored `CoreHeatLandSeries` to implement `IGeoSeries` without `TDrawingContext`.
- Renamed `CoreMap<TDrawingContext>` to `DrawnMap` and `GeoMap<TDrawingContext>` to `GeoMapChart`.
- Updated `LiveChartsSettings` methods `HasProvider` and `GetProvider` to remove `TDrawingContext`.
- Added static methods to `DrawnMap` for map retrieval.
- Simplified `MapLayer`, `MapContext`, `MapShapeContext`, and `Maps` classes by removing `TDrawingContext`.
- Refactored `ChartEngine`, `DataFactory`, `Series`, `PolarChart`, `CartesianChart`, `GeoMap`, `RelativePanel`, `StackPanel`, and `TableLayout` in LiveChartsCore to remove `TDrawingContext`.
- Updated XML documentation comments to reflect these changes.

These changes reduce complexity and improve maintainability by decoupling the code from the specific drawing context.
This commit involves a significant refactor of the `CartesianChart` class and its related components. The generic `CartesianChart<TDrawingContext>` class has been replaced with a non-generic `CartesianChartEngine` class. All references to `CartesianChart<TDrawingContext>` have been updated to `CartesianChartEngine`.

Additionally, the `ICartesianChartView<TDrawingContext>` interface has been replaced with a non-generic `ICartesianChartView` interface. This change affects multiple files, including `BarSeries.cs`, `CartesianChart.cs`, `CartesianSeries.cs`, `CoreAxis.cs`, `CoreBoxSeries.cs`, `CoreColumnSeries.cs`, `CoreFinancialSeries.cs`, `CoreHeatSeries.cs`, `CoreLineSeries.cs`, `CoreRowSeries.cs`, `CoreScatterSeries.cs`, `CoreSection.cs`, `CoreStepLineSeries.cs`, `Extensions.cs`, `ICartesianChartView.cs`, `ICartesianSeries.cs`, `SharedAxes.cs`, and `CoreVisualElement.cs`.

The refactor simplifies the type hierarchy by removing the generic type parameter `TDrawingContext` from the `CartesianChart` class and related interfaces and classes, reducing complexity and improving maintainability. The `TooltipFindingStrategy` property has been marked as obsolete and renamed to `FindingStrategy`.

These changes ensure that the code is more flexible and easier to maintain by using a single `CartesianChartEngine` class instead of multiple generic instantiations.
removed dupe `=` from `ISeries[]` example
Refactored the `PieChart` class and related interfaces to use the new `PieChartEngine` class instead of the generic `PieChart<TDrawingContext>`. Updated the `IPieChartView<TDrawingContext>` interface to a non-generic `IPieChartView` interface. Modified all references from `PieChart<TDrawingContext>` to `PieChartEngine` and updated the `Core` property in `IPieChartView` to return `PieChartEngine`.

Updated constructors and methods in `PieChart` and `SKPieChart` classes to work with `PieChartEngine`. Applied changes across various platforms including Blazor, Eto, Maui, and WinUI. Updated documentation comments to reflect these changes, ensuring the codebase now relies on `PieChartEngine` for pie chart functionality.
Refactored PolarChart and related classes to remove the generic
type parameter TDrawingContext, simplifying the type system.
Renamed PolarChart<TDrawingContext> to PolarChartEngine and
updated all references accordingly. Replaced IPolarChartView<TDrawingContext>
with a non-generic IPolarChartView interface. Updated method
signatures, type casts, and documentation comments to reflect
these changes. Ensured consistency across the codebase, including
updates to SKPolarChart and PolarChart.razor.cs. These changes
aim to simplify the code and improve maintainability.
Simplify AngularTicksVisual by removing the TDrawingContext
generic parameter from the class definition, OnInvalidated,
and ApplyTheme methods. Update ThemesExtensions to reflect
this change by removing TDrawingContext from HasRuleFor
method calls. Remove unnecessary using directive for
LiveChartsCore.SkiaSharpView.Drawing.
Refactored the `BaseGeometryVisual` class by removing the generic type parameter `TDrawingContext`, making it a non-generic class. Updated derived classes `GeometryVisual`, `LineVisual`, and `VariableGeometryVisual` to inherit from the non-generic `BaseGeometryVisual`. Removed private fields `_width`, `_height`, `_fill`, and `_stroke` from `BaseGeometryVisual`. Eliminated the SkiaSharp-specific `BaseGeometryVisual` class, simplifying the class hierarchy. Removed copyright notice and license information from `BaseGeometryVisual.cs`.
The changes involve modifying the `GeometryVisual` class and its usage across various series classes in the codebase. Specifically, the `TDrawingContext` type parameter has been removed from the `GeometryVisual` class and its instantiations.

In `GeometryVisual.cs`, the class definition has been updated to remove the `TDrawingContext` type parameter:
- public class GeometryVisual<TGeometry, TLabelGeometry, TDrawingContext> : BaseGeometryVisual
+ public class GeometryVisual<TGeometry, TLabelGeometry> : BaseGeometryVisual

Correspondingly, the `GeometryVisual` class in the `LiveChartsCore.SkiaSharpView.VisualElements` namespace has also been updated to remove the `TDrawingContext` type parameter:
- /// <inheritdoc cref="GeometryVisual{TGeometry, TLabelGeometry, TDrawingContext}"/>
- public class GeometryVisual<TGeometry> : GeometryVisual<TGeometry, LabelGeometry, SkiaSharpDrawingContext>
+ /// <inheritdoc cref="GeometryVisual{TGeometry, TLabelGeometry}"/>
+ public class GeometryVisual<TGeometry> : GeometryVisual<TGeometry, LabelGeometry>

The instantiations of `GeometryVisual` in various series classes (`BarSeries`, `CoreBoxSeries`, `CoreFinancialSeries`, `CoreHeatSeries`, `CoreLineSeries`, `CorePieSeries`, `CorePolarLineSeries`, `CoreScatterSeries`, `CoreStepLineSeries`) have been updated to reflect this change by removing the `TDrawingContext` type parameter:
- return new GeometryVisual<TVisual, TLabel, TDrawingContext>
+ return new GeometryVisual<TVisual, TLabel>

These changes simplify the `GeometryVisual` class by removing the dependency on the `TDrawingContext` type parameter, which likely reduces complexity and potential coupling with the drawing context.
Refactored the `LabelVisual` class to remove the generic type parameter `TDrawingContext`, now using only `TLabelGeometry` which implements `ILabelGeometry` and has a parameterless constructor. Updated the `ApplyTheme` method call within `Measure` to reflect this change. Modified `ThemesExtensions` to use `LabelVisual<LabelGeometry>` instead of `LabelVisual<LabelGeometry, SkiaSharpDrawingContext>`. Updated `LabelVisual` in `LiveChartsCore.SkiaSharpView.VisualElements` to inherit from the new `LabelVisual<LabelGeometry>`.
Updated CoreLineSeries, CorePolarLineSeries, and CoreStepLineSeries to instantiate LineVisual without TDrawingContext. Simplified LineVisual class definition in LineVisual.cs by removing TDrawingContext generic parameter and its constraints.
The NeedleVisual class has been simplified by removing the TDrawingContext generic parameter, making the class easier to use and understand. The class now only takes two generic parameters: TGeometry and TLabelGeometry.

- Updated NeedleVisual class definition to reflect this change.
- Removed constraint on TDrawingContext.
- Updated OnInvalidated method to use the new class definition.
- Adjusted ThemesExtensions class to align with the new NeedleVisual definition.
- Updated NeedleVisual in LiveChartsCore.SkiaSharpView.VisualElements namespace to inherit from the new class definition.
- Cleaned up unnecessary using directives in NeedleVisual.cs.
The changes involve removing the generic type parameter `TDrawingContext` from the `RelativePanel` class and its related usages. This simplifies the class definition and its instantiation by only requiring the `TBackgroundGeometry` type parameter.

- Updated `RelativePanel.cs` to use `RelativePanel<TBackgroundGeometry>`.
- Modified `VisualElementsExtensions.cs` to use the new `RelativePanel<RectangleGeometry>` class definition.
- Adjusted `RelativePanelTest.cs` and `VisualElementsTests.cs` to instantiate `RelativePanel` with the new class definition.

These changes reduce complexity and improve maintainability.
Simplified StackPanel class by removing the TDrawingContext type parameter. Updated StackPanel instantiations in SKDefaultLegend.cs, SKDefaultTooltip.cs, StackPanelTest.cs, and VisualElementsTests.cs to use specific geometry types. This change reduces complexity and improves code maintainability.
The `TableLayout` class has been simplified by removing the `TDrawingContext` generic type parameter, leaving only `TBackgroundGeometry`. This change affects the class definition, constructor, and XML documentation comments. The `SKDefaultTooltip` class has been updated to reflect this change, ensuring compatibility. Additionally, unnecessary `using` directives have been removed from `SKDefaultTooltip.cs`, keeping the codebase clean.
The changes remove the generic type parameter `TDrawingContext` from several classes and interfaces related to axis visual separators in the LiveChartsCore library. This includes the `CoreAxis`, `CorePolarAxis`, `AxisVisualSeprator`, `IVisualSeparator`, and `RadialAxisVisualSeparator` classes.

The `TDrawingContext` type parameter and its constraints are removed from the `CoreAxis` and `CorePolarAxis` classes, simplifying their definitions. The `AxisVisualSeprator` class is updated to no longer be generic, and the `TDrawingContext` type parameter is removed from its definition and usage. The `IVisualSeparator` interface is also updated to remove the `TDrawingContext` type parameter. The `RadialAxisVisualSeparator` class is updated to implement the non-generic `IVisualSeparator` interface.

Additionally, the `Axis` class in the `LiveChartsCore.SkiaSharpView` namespace is updated to remove the `TDrawingContext` type parameter from its base class `CoreAxis`.

These changes simplify the type hierarchy and reduce the complexity of the code by removing the need to specify a drawing context type parameter in these classes and interfaces.
This commit removes the generic type parameter `TDrawingContext` from the `CorePolarAxis` and `RadialAxisVisualSeparator` classes. The changes include:
- Removing the `TDrawingContext` type parameter and constraint from the `CorePolarAxis` class definition.
- Updating instances of `RadialAxisVisualSeparator<TDrawingContext>` to `RadialAxisVisualSeparator`.
- Removing the `TDrawingContext` type parameter and constraint from the `RadialAxisVisualSeparator` class definition.
- Removing the `using LiveChartsCore.SkiaSharpView.Drawing;` statement from `PolarAxis.cs`.
- Updating the `PolarAxis` class to remove the `SkiaSharpDrawingContext` type parameter.
Simplified CoreSection by removing the TDrawingContext generic type parameter. Updated RectangularSection to align with the new CoreSection definition, now only specifying TSizedGeometry and TLabelGeometry type parameters.
Updated XML documentation in FinancialPointI.cs to correct the reference to CoreAxis class. Modified IPathGeometry.cs to remove TDrawingContext type parameter and updated Obsolete attribute message. Adjusted HeatPathShape.cs to reflect changes in IPathGeometry interface, updating PathGeometry class implementation and marking it as Obsolete.
allow  the user to turn off webgl
This function matches the screen-data ratio bor bboth axes,
resulting in both axes taking the same scape on the screen per data unit.
fixes a wrong comit... restores back all the samples
This method is necessary now, fixes a new introduced bug where
changing legend visibility to hidden was not clearing the legend.
@beto-rodriguez beto-rodriguez merged commit 6fcb17f into master Jan 14, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants