| /******************************************************************************* |
| * Copyright (c) 2015, 2016 EfficiOS Inc., Alexandre Montplaisir |
| * |
| * All rights reserved. This program and the accompanying materials are |
| * made available under the terms of the Eclipse Public License 2.0 which |
| * accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| *******************************************************************************/ |
| |
| package org.eclipse.tracecompass.internal.provisional.analysis.lami.core.module; |
| |
| import java.util.List; |
| |
| import com.google.common.collect.ImmutableList; |
| |
| /** |
| * UI Model of a LAMI chart. This object should contain all the information |
| * needed to create a chart in the GUI, independently of the actual chart |
| * implementation. |
| * |
| * @author Alexandre Montplaisir |
| */ |
| public class LamiChartModel { |
| |
| /** |
| * Supported types of charts |
| */ |
| public enum LamiChartType { |
| /** Bar chart */ |
| BAR_CHART("Bar"), //$NON-NLS-1$ |
| |
| /** XY scatter chart */ |
| XY_SCATTER("Scatter"), //$NON-NLS-1$ |
| |
| /** |
| * Pie chart |
| * FIXME NYI |
| */ |
| PIE_CHART("Pie"); //$NON-NLS-1$ |
| |
| private final String fText; |
| |
| private LamiChartType(final String text) { |
| fText = text; |
| } |
| |
| @Override |
| public String toString() { |
| return fText; |
| } |
| } |
| |
| private final LamiChartType fType; |
| private final String fName; |
| private final List<String> fXSeriesColumns; |
| private final List<String> fYSeriesColumns; |
| private final boolean fXAxisIsLog; |
| private final boolean fYAxisIsLog; |
| |
| |
| /** |
| * Constructor |
| * |
| * @param type |
| * The type of chart |
| * @param name |
| * The name of the chart |
| * @param xSeriesColumn |
| * The title of column used for the X axis |
| * @param ySeriesColumns |
| * The titles of the columns used for the series |
| * @param xAxisIsLog |
| * If the X-axis is log scale or not |
| * @param yAxisIsLog |
| * If the Y-axis is log scale or not |
| */ |
| public LamiChartModel(LamiChartType type, String name, List<String> xSeriesColumn, List<String> ySeriesColumns, |
| boolean xAxisIsLog, boolean yAxisIsLog) { |
| fType = type; |
| fName = name; |
| fXSeriesColumns = ImmutableList.copyOf(xSeriesColumn); |
| fYSeriesColumns = ImmutableList.copyOf(ySeriesColumns); |
| fXAxisIsLog = xAxisIsLog; |
| fYAxisIsLog = yAxisIsLog; |
| } |
| |
| /** |
| * Get the chart type. |
| * |
| * @return The chart type |
| */ |
| public LamiChartType getChartType() { |
| return fType; |
| } |
| |
| /** |
| * Get the chart's name. |
| * |
| * @return The chart name |
| */ |
| public String getName() { |
| return fName; |
| } |
| |
| /** |
| * Get the names of the columns used for the X part of a series. |
| * |
| * @return The columns used for the X-axis |
| */ |
| public List<String> getXSeriesColumns() { |
| return fXSeriesColumns; |
| } |
| |
| /** |
| * Get the names of the columns used for the Y part of a series. |
| * |
| * @return The columns used for the series |
| */ |
| public List<String> getYSeriesColumns() { |
| return fYSeriesColumns; |
| } |
| |
| /** |
| * Return if the X-axis should use a log scale. |
| * |
| * @return If the X-axis is log scale |
| */ |
| public boolean xAxisIsLog() { |
| return fXAxisIsLog; |
| } |
| |
| /** |
| * Return if the Y-axis should use a log scale. |
| * |
| * @return If Y-axis is log scale |
| */ |
| public boolean yAxisIsLog() { |
| return fYAxisIsLog; |
| } |
| |
| } |