/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
This program 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. See the Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
/**
*
*/
package com.mobilesorcery.sdk.ui;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import com.mobilesorcery.sdk.profiles.IProfile;
import com.mobilesorcery.sdk.profiles.ITargetProfileProvider;
import com.mobilesorcery.sdk.profiles.IVendor;
public class ProfileLabelProvider extends LabelProvider {
private ITargetProfileProvider targetProfileProvider;
private final int style;
private Point imageSize = new Point(16, 16);
public static final int NO_IMAGES = 1;
public ProfileLabelProvider(int style) {
this.style = style;
}
public void setImageSize(Point size) {
this.imageSize = size;
}
public void setTargetProfileProvider(
ITargetProfileProvider targetProfileProvider) {
this.targetProfileProvider = targetProfileProvider;
}
private boolean isFlat() {
return (style & SWT.FLAT) != 0;
}
@Override
public String getText(Object element) {
if (element instanceof IProfile) {
return ((IProfile) element).getName();
} else if (element instanceof IVendor) {
return ((IVendor) element).getName();
} else {
return "?";
}
}
@Override
public Image getImage(Object element) {
if (style == NO_IMAGES) {
return null;
}
if (element instanceof IProfile && !isFlat()) {
if (targetProfileProvider != null
&& targetProfileProvider.getTargetProfile() != null
&& targetProfileProvider.getTargetProfile().equals(element)) {
return MosyncUIPlugin.getDefault().getImageRegistry()
.get(MosyncUIPlugin.TARGET_PHONE_IMAGE);
} else {
return MosyncUIPlugin.getDefault().getImageRegistry()
.get(MosyncUIPlugin.PHONE_IMAGE);
}
} else if (element instanceof IVendor) {
return MosyncUIPlugin.getDefault().getPlatformImage(
(IVendor) element, imageSize);
} else {
return null;
}
}
}