Java tutorial
/** * 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 ""; } } }