/*******************************************************************************
* Copyright (C) 2010, Dariusz Luksza <dariusz@luksza.org>
*
* 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 org.eclipse.egit.ui.internal.synchronize.mapping;
import org.eclipse.egit.ui.internal.synchronize.model.GitModelObject;
import org.eclipse.egit.ui.internal.synchronize.model.GitModelRepository;
import org.eclipse.egit.ui.internal.synchronize.model.GitModelRoot;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.model.IWorkbenchAdapter;
/**
* Adapts Git ChangeSet model into workbench
*/
public class GitModelWorkbenchAdapter implements IWorkbenchAdapter {
private GitChangeSetLabelProvider gitLabelProvider;
@Override
public Object[] getChildren(Object o) {
if (o instanceof GitModelObject)
return ((GitModelObject) o).getChildren();
if (o instanceof GitModelRoot)
return ((GitModelRoot) o).getChildren();
return null;
}
@Override
public ImageDescriptor getImageDescriptor(Object object) {
if (gitLabelProvider == null)
gitLabelProvider = new GitChangeSetLabelProvider();
Image image = gitLabelProvider.getImage(object);
return ImageDescriptor.createFromImage(image);
}
@Override
public String getLabel(Object o) {
if (o instanceof GitModelObject)
return ((GitModelObject) o).getName();
return null;
}
@Override
public Object getParent(Object o) {
if (o instanceof GitModelRepository)
return null; // repository node has no parent
if (o instanceof GitModelObject)
return ((GitModelObject) o).getParent();
return null;
}
}