| /******************************************************************************* |
| * Copyright (c) 2016 EclipseSource and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Ralf Sternberg - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.rap.addons.chart.basic; |
| |
| import static org.eclipse.rap.addons.chart.internal.ColorUtil.toHtmlString; |
| |
| import org.eclipse.rap.json.JsonArray; |
| import org.eclipse.rap.json.JsonObject; |
| import org.eclipse.swt.graphics.RGB; |
| |
| |
| /** |
| * Represents a line in a line chart. |
| * |
| * @see LineChart |
| */ |
| public class LineItem { |
| |
| protected final DataPoint[] points; |
| protected final String text; |
| protected final RGB color; |
| |
| /** |
| * Creates a line with the given data points and text. Later changes to the data points won't be |
| * reflected in the chart. |
| * |
| * @param points the data point that form the line |
| * @param text the label text for the line, or <code>null</code> to omit the label |
| */ |
| public LineItem( DataPoint[] points, String text ) { |
| this( points, text, null ); |
| } |
| |
| /** |
| * Creates a line with the given data points, text, and color. Later changes to the data points |
| * won't be reflected in the chart. |
| * |
| * @param points the data point that form the line |
| * @param text the label text for the line, or <code>null</code> to omit the label |
| * @param color the color of this line, or <code>null</code> to use the default color |
| */ |
| public LineItem( DataPoint[] points, String text, RGB color ) { |
| this.points = points; |
| this.text = text; |
| this.color = color; |
| } |
| |
| protected JsonObject toJson() { |
| JsonArray values = new JsonArray(); |
| for( DataPoint point : points ) { |
| values.add( point.toJson() ); |
| } |
| JsonObject json = new JsonObject().add( "values", values ); |
| if( text != null ) { |
| json.add( "key", text ); |
| } |
| if( color != null ) { |
| json.add( "color", toHtmlString( color ) ); |
| } |
| return json; |
| } |
| |
| } |