/**
*
*/
package org.nightlabs.jfire.reporting.admin.ui.oda.jfs.client.ui;
import java.util.List;
import org.eclipse.birt.report.designer.ui.dialogs.IExpressionProvider;
import org.eclipse.birt.report.designer.ui.dialogs.Operator;
import org.eclipse.core.runtime.IAdapterFactory;
import org.eclipse.swt.graphics.Image;
import org.nightlabs.jfire.reporting.admin.ui.oda.jfs.client.ui.JFireReportingExpressionProviderRegistry.ItemCarrier;
/**
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*
*/
public class JFireReportingExpressionProvider implements IExpressionProvider {
public static class Factory implements IAdapterFactory {
public Factory() {
System.err.println(Factory.class.getName() + " instantiated"); //$NON-NLS-1$
}
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (IExpressionProvider.class.isAssignableFrom(adapterType)) {
return new JFireReportingExpressionProvider();
}
return null;
}
public Class[] getAdapterList() {
return null;
}
}
/**
*
*/
public JFireReportingExpressionProvider() {
}
public Object[] getCategory() {
List<ItemCarrier> topLevelCarriers = JFireReportingExpressionProviderRegistry.sharedInstance().getSubItemsForParentId(null);
if (topLevelCarriers != null)
return topLevelCarriers.toArray();
else
return new Object[0];
}
public Object[] getChildren(Object parent) {
if (parent instanceof ItemCarrier) {
String parentId = ((ItemCarrier) parent).getItemId();
List<ItemCarrier> children = JFireReportingExpressionProviderRegistry.sharedInstance().getSubItemsForParentId(parentId);
if (children != null)
return children.toArray();
}
return new Object[0];
}
public String getDisplayText(Object element) {
if (element instanceof ItemCarrier)
return ((ItemCarrier) element).getDisplayText();
return null;
}
public String getInsertText(Object element) {
if (element instanceof ItemCarrier)
return ((ItemCarrier) element).getInsertText();
return null;
}
public Image getImage(Object element) {
return null;
}
public Operator[] getOperators() {
return null;
}
public String getTooltipText(Object element) {
if (element instanceof ItemCarrier) {
return ((ItemCarrier) element).getTooltipText();
}
return null;
}
public boolean hasChildren(Object element) {
return true;
}
public Object getAdapter(Class adapter) {
return null;
}
}