gov.redhawk.bulkio.ui.internal.SriDataViewLabelProvider.java Source code

Java tutorial

Introduction

Here is the source code for gov.redhawk.bulkio.ui.internal.SriDataViewLabelProvider.java

Source

/**
 * This file is protected by Copyright. 
 * Please refer to the COPYRIGHT file distributed with this source distribution.
 * 
 * This file is part of REDHAWK IDE.
 * 
 * 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.
 *
 */
package gov.redhawk.bulkio.ui.internal;

import gov.redhawk.bulkio.ui.BulkIOUIActivator;

import java.util.Arrays;
import java.util.Date;

import mil.jpeojtrs.sca.util.AnyUtils;
import nxm.sys.lib.DataFile;

import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import CF.DataType;

public class SriDataViewLabelProvider implements ITableLabelProvider {

    @Override
    public void addListener(ILabelProviderListener listener) {
    }

    @Override
    public void dispose() {
    }

    @Override
    public boolean isLabelProperty(Object element, String property) {
        return false;
    }

    @Override
    public void removeListener(ILabelProviderListener listener) {
    }

    @Override
    @Nullable
    public Image getColumnImage(Object element, int columnIndex) {
        Image image;
        if (columnIndex == 0) {
            if (element instanceof SriDataTypeWrapper) {
                DataType dt = ((SriDataTypeWrapper) element).getDataType();
                Object value = AnyUtils.convertAny(dt.value);
                if (value instanceof Object[]) {
                    if (value instanceof DataType[]) {
                        image = AbstractUIPlugin
                                .imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID, "icons/Struct.gif")
                                .createImage();
                        return image;
                    } else {
                        Object[] values = (Object[]) value;
                        if (values.length > 0 && values[0] instanceof DataType[]) {
                            image = AbstractUIPlugin.imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID,
                                    "icons/StructSequence.gif").createImage();
                            return image;
                        } else {
                            image = AbstractUIPlugin.imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID,
                                    "icons/SimpleSequence.gif").createImage();
                            return image;
                        }
                    }
                } else {
                    image = AbstractUIPlugin
                            .imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID, "icons/Simple.gif")
                            .createImage();
                    return image;
                }
            }
            if (element instanceof StructSequenceHelper) {
                StructSequenceHelper helper = (StructSequenceHelper) element;
                if (helper.isArray()) {
                    image = AbstractUIPlugin
                            .imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID, "icons/Struct.gif")
                            .createImage();
                } else {
                    image = AbstractUIPlugin
                            .imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID, "icons/Simple.gif")
                            .createImage();
                }
                return image;
            }
            if (element instanceof DataType) {
                image = AbstractUIPlugin.imageDescriptorFromPlugin(BulkIOUIActivator.PLUGIN_ID, "icons/Simple.gif")
                        .createImage();
                return image;
            }
        }
        return null;
    }

    @Override
    @NonNull
    public String getColumnText(Object element, int columnIndex) {
        if (element instanceof SriBuilder) {
            SriBuilder sri = (SriBuilder) element;
            switch (columnIndex) {
            case 0:
                return sri.getName();
            case 1:
                if ("keywords: ".equals(sri.getName())) {
                    return "";
                } else if ("mode: ".equals(sri.getName())) {
                    Short value = (Short) sri.getValue();
                    if (value == 0) {
                        return "[" + value + "] scalar";
                    } else if (value == 1) {
                        return "[" + value + "] complex";
                    }
                } else if ("xunits: ".equals(sri.getName()) || "yunits: ".equals(sri.getName())) {
                    Short value = (Short) sri.getValue();
                    String unitsName = DataFile.getUnitsName(value);
                    if (unitsName != null) {
                        return "[" + value + "] " + unitsName;
                    } else {
                        return value.toString();
                    }
                } else { // Default behavior for populated rows
                    Object value = sri.getValue();
                    if (value != null) {
                        if (value instanceof Date) {
                            return BulkIOUIActivator.toISO8601TimeStr((Date) sri.getValue());
                        } else {
                            return value.toString();
                        }
                    } else {
                        return "";
                    }
                }
            default:
                return "";
            }
        } else if (element instanceof SriDataTypeWrapper) {
            DataType dt = ((SriDataTypeWrapper) element).getDataType();
            switch (columnIndex) {
            case 0:
                return dt.id;
            case 1:
                Object value = AnyUtils.convertAny(dt.value);
                if (value instanceof Object[]) {
                    if (value instanceof DataType[]) {
                        return "";
                    } else {
                        Object[] values = (Object[]) value;
                        if (values.length > 0 && values[0] instanceof DataType[]) {
                            return "";
                        } else {
                            return Arrays.toString(values);
                        }
                    }
                } else {
                    return String.valueOf(value);
                }
            default:
                return "";
            }
        } else if (element instanceof StructSequenceHelper) {
            StructSequenceHelper helper = (StructSequenceHelper) element;
            switch (columnIndex) {
            case 0:
                return helper.getId();
            case 1:
                if (helper.isArray()) {
                    return "";
                }
                return String.valueOf(helper.getValue());
            default:
                return "";
            }
        } else if (element instanceof DataType) {
            DataType dt = (DataType) element;
            switch (columnIndex) {
            case 0:
                return dt.id;
            case 1:
                return String.valueOf(dt.value);
            default:
                return "";
            }
        } else {
            return "";
        }
    }
}