/*****************************************************************************
* Limpet - the Lightweight InforMation ProcEssing Toolkit
* http://limpet.info
*
* (C) 2015-2016, Deep Blue C Technologies Ltd
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Eclipse Public License v1.0
* (http://www.eclipse.org/legal/epl-v10.html)
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************/
package info.limpet.ui.editors;
import info.limpet.ICollection;
import info.limpet.ICommand;
import info.limpet.IQuantityCollection;
import info.limpet.IStoreGroup;
import info.limpet.IStoreItem;
import info.limpet.data.impl.ObjectCollection;
import info.limpet.data.impl.samples.StockTypes.NonTemporal;
import info.limpet.data.impl.samples.StockTypes.Temporal.AcousticStrength;
import info.limpet.data.impl.samples.TemporalLocation;
import info.limpet.ui.Activator;
import info.limpet.ui.data_provider.data.DataModel;
import info.limpet.ui.data_provider.data.LimpetWrapper;
import info.limpet.ui.data_provider.data.NamedList;
import javax.measure.quantity.Angle;
import javax.measure.quantity.Dimensionless;
import javax.measure.unit.Dimension;
import javax.measure.unit.SI;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
public class LimpetLabelProvider extends LabelProvider
{
public ImageDescriptor getImageDescriptor(Object obj2)
{
ImageDescriptor res = null;
IStoreItem item = null;
if (obj2 instanceof LimpetWrapper)
{
LimpetWrapper wrapper = (LimpetWrapper) obj2;
Object obj = wrapper.getSubject();
if (obj instanceof IStoreItem)
{
item = (IStoreItem) obj;
}
else if (obj instanceof NamedList)
{
// is it just one, or multiple?
res = Activator.getImageDescriptor("icons/folder.png");
}
}
else if (obj2 instanceof IStoreItem)
{
item = (IStoreItem) obj2;
}
if (item != null)
{
if (item instanceof IStoreGroup)
{
// is it just one, or multiple?
res = Activator.getImageDescriptor("icons/folder.png");
}
if (item instanceof ICollection)
{
// is it just one, or multiple?
ICollection coll = (ICollection) item;
if (coll.isQuantity())
{
IQuantityCollection<?> q = (IQuantityCollection<?>) coll;
Dimension dim = q.getUnits().getDimension();
if (dim.equals(Dimension.LENGTH))
{
res = Activator.getImageDescriptor("icons/measure.png");
}
else if (dim.equals(Angle.UNIT.getDimension()))
{
res = Activator.getImageDescriptor("icons/angle.png");
}
else if (dim.equals(Dimension.MASS))
{
res = Activator.getImageDescriptor("icons/weight.png");
}
else if (q instanceof AcousticStrength)
{
res = Activator.getImageDescriptor("icons/volume.png");
}
else if (dim.equals(Dimension.LENGTH.times(Dimension.LENGTH)
.times(Dimension.LENGTH).divide(Dimension.MASS)))
{
res = Activator.getImageDescriptor("icons/density.png");
}
else if (dim.equals(Dimension.TIME))
{
res = Activator.getImageDescriptor("icons/time.png");
}
else if (dim.equals(Dimensionless.UNIT.getDimension()))
{
res = Activator.getImageDescriptor("icons/numbers.png");
}
else if (dim.equals(SI.HERTZ.getDimension()))
{
res = Activator.getImageDescriptor("icons/frequency.png");
}
else if (dim.equals(Dimension.LENGTH.divide(Dimension.TIME)))
{
res = Activator.getImageDescriptor("icons/speed.png");
}
}
else if (coll instanceof TemporalLocation
|| coll instanceof NonTemporal.Location)
{
res = Activator.getImageDescriptor("icons/location.png");
}
else if (coll instanceof ObjectCollection)
{
res = Activator.getImageDescriptor("icons/string.png");
}
}
else if (item instanceof ICommand<?>)
{
res = Activator.getImageDescriptor("icons/interpolate.png");
}
else if (obj2 instanceof NamedList)
{
NamedList nl = (NamedList) obj2;
String name = nl.toString();
if (name.equals(DataModel.PRECEDENTS))
{
res = Activator.getImageDescriptor("icons/l_arrow.png");
}
else if (name.equals(DataModel.DEPENDENTS))
{
res = Activator.getImageDescriptor("icons/r_arrow.png");
}
}
}
return res;
}
@Override
public Image getImage(Object obj)
{
Image res = null;
ImageDescriptor desc = getImageDescriptor(obj);
if (desc != null)
{
res = Activator.getImageFromRegistry(desc);
}
return res;
}
}