/*
* Copyright (c) 2013, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.dart.tools.ui.internal;
import com.google.dart.engine.element.Element;
import com.google.dart.tools.ui.DartElementLabels;
import com.google.dart.tools.ui.NewDartElementLabels;
import com.google.dart.tools.ui.StandardDartElementContentProvider;
import com.google.dart.tools.ui.internal.viewsupport.DartElementImageProvider;
import com.google.dart.tools.ui.internal.viewsupport.NewDartElementImageProvider;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.model.IWorkbenchAdapter;
/**
* A {@link IWorkbenchAdapter} for Dart {@link Element}s.
*/
public class NewDartWorkbenchAdapter implements IWorkbenchAdapter {
private final NewDartElementImageProvider imageProvider;
private final StandardDartElementContentProvider contentProvider;
public NewDartWorkbenchAdapter() {
imageProvider = new NewDartElementImageProvider();
contentProvider = new StandardDartElementContentProvider(true);
}
@Override
public Object[] getChildren(Object element) {
return contentProvider.getChildren(element);
}
@Override
public ImageDescriptor getImageDescriptor(Object element) {
Element de = getDartElement(element);
if (de != null) {
return imageProvider.getDartImageDescriptor(de, DartElementImageProvider.OVERLAY_ICONS
| DartElementImageProvider.SMALL_ICONS);
}
return null;
}
@Override
public String getLabel(Object element) {
return NewDartElementLabels.getTextLabel(getDartElement(element), DartElementLabels.ALL_DEFAULT);
}
@Override
public Object getParent(Object element) {
return contentProvider.getParent(element);
}
private Element getDartElement(Object element) {
if (element instanceof Element) {
return (Element) element;
}
return null;
}
}