// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dataprofiler.common.ui.editor.preview;
import java.util.List;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.talend.dataprofiler.service.ITOPChartService;
import org.talend.dq.helper.AbstractOSGIServiceUtils;
/**
* created by yyin on 2014-12-15 Detailled comment
*
*/
public class TOPChartUtil extends AbstractOSGIServiceUtils {
private static TOPChartUtil instance;
private ITOPChartService chartService;
public static TOPChartUtil getInstance() {
if (instance == null) {
instance = new TOPChartUtil();
}
return instance;
}
@Override
public boolean isServiceInstalled() {
initService(true);
return this.chartService != null;
}
@Override
public String getPluginName() {
return ITOPChartService.PLUGIN_NAME;
}
@Override
public String getServiceName() {
return ITOPChartService.class.getName();
}
@Override
protected String getMissingMessageName() {
return "TOPChartUtil.missingTopChart"; //$NON-NLS-1$
}
@Override
protected String getRestartMessageName() {
return "TOPChartUtil.restartToLoadTopChart"; //$NON-NLS-1$
}
@Override
protected void setService(BundleContext context, ServiceReference serviceReference) {
if (serviceReference != null) {
Object obj = context.getService(serviceReference);
if (obj != null) {
this.chartService = (ITOPChartService) obj;
}
}
}
// No need to download,only for check
public boolean isTOPChartInstalled() {
initService(false);
return this.chartService != null;
}
public Object createDefaultCategoryDataset() {
if (isTOPChartInstalled()) {
return chartService.createDefaultCategoryDataset();
}
return null;
}
public void addValueToCategoryDataset(Object dataset, double value, String labelX, String labelY) {
if (isTOPChartInstalled()) {
chartService.addValueToCategoryDataset(dataset, value, labelX, labelY);
}
}
public int getRowCount(Object dataset) {
if (isTOPChartInstalled()) {
return chartService.getRowCount(dataset);
}
return Integer.MIN_VALUE;
}
public int getColumnCount(Object dataset) {
if (isTOPChartInstalled()) {
return chartService.getColumnCount(dataset);
}
return Integer.MIN_VALUE;
}
public Number getValue(Object dataset, int row, int column) {
if (isTOPChartInstalled()) {
return chartService.getValue(dataset, row, column);
}
return Integer.MIN_VALUE;
}
public Comparable getRowKey(Object dataset, int row) {
if (isTOPChartInstalled()) {
return chartService.getRowKey(dataset, row);
}
return Integer.MIN_VALUE;
}
public int getRowIndex(Object dataset, Comparable key) {
if (isTOPChartInstalled()) {
return chartService.getRowIndex(dataset, key);
}
return Integer.MIN_VALUE;
}
public List getRowKeys(Object dataset) {
if (isTOPChartInstalled()) {
return chartService.getRowKeys(dataset);
}
return null;
}
public Comparable getColumnKey(Object dataset, int column) {
if (isTOPChartInstalled()) {
return chartService.getColumnKey(dataset, column);
}
return Integer.MIN_VALUE;
}
public int getColumnIndex(Object dataset, Comparable key) {
if (isTOPChartInstalled()) {
return chartService.getColumnIndex(dataset, key);
}
return Integer.MIN_VALUE;
}
public List getColumnKeys(Object dataset) {
if (isTOPChartInstalled()) {
return chartService.getColumnKeys(dataset);
}
return null;
}
public Number getValue(Object dataset, Comparable rowKey, Comparable columnKey) {
if (isTOPChartInstalled()) {
return chartService.getValue(dataset, rowKey, columnKey);
}
return Integer.MIN_VALUE;
}
public void clearDataset(Object dataset) {
if (isTOPChartInstalled()) {
chartService.clearDataset(dataset);
}
}
}