/****************************************************************************** * Copyright (c) 2008 g-Eclipse consortium * 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 * * Initial development of the original code was made for * project g-Eclipse founded by European Union * project number: FP6-IST-034327 http://www.geclipse.eu/ * * Contributor(s): * UCY (http://www.ucy.cs.ac.cy) * - Nicholas Loulloudes (loulloudes.n@cs.ucy.ac.cy) * *****************************************************************************/ package eu.geclipse.batch.ui.internal.providers; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import eu.geclipse.batch.IBatchService; import eu.geclipse.batch.ui.BatchServiceManager; /** * @author nloulloud * * * The Batch Service Selection Tree Content Provider. */ public class BatchServiceTreeContentProvider implements IStructuredContentProvider, ITreeContentProvider { private static Object[] EMPTY_ARRAY = new Object[0]; /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements( final Object inputElement ) { return getChildren( inputElement ); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public void inputChanged( final Viewer viewer, final Object oldInput, final Object newInput ) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */ @SuppressWarnings("unchecked") public Object[] getChildren( final Object parentElement ) { Object[] ret = null; List<IBatchService> servicesList = null; if (parentElement instanceof ArrayList) { List<String> registeredServices = new ArrayList<String>(); registeredServices = (ArrayList<String>)parentElement; String[] serviceArray = registeredServices.toArray( new String[ registeredServices.size() ] ); ret = serviceArray; } else if (parentElement instanceof String) { servicesList = BatchServiceManager.getManager().getServices((String) parentElement); Object[] serviceArray = servicesList.toArray( new Object[ servicesList.size() ] ); ret = serviceArray; } else{ ret = EMPTY_ARRAY; } return ret; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */ public Object getParent( final Object element ) { Object ret = null; if(element instanceof IBatchService) { ret = ((IBatchService)element).getDescription().getServiceTypeName(); } return ret; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */ public boolean hasChildren( final Object element ) { boolean ret = false; if (getChildren( element ) != EMPTY_ARRAY ){ ret = true; } return ret; } }