/* * Copyright (c) 2011, 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.debug.ui.internal.preferences; import com.google.dart.tools.debug.core.ChromeBrowserConfig; import com.google.dart.tools.debug.ui.internal.DartDebugUIPlugin; import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StyledString; import org.eclipse.swt.graphics.Image; /** * A label provider for the ChromeBrowserConfig class. * * @see ChromeBrowserConfig */ class BrowsersLabelProvider extends DelegatingStyledCellLabelProvider implements ILabelProvider { private static class StyledLabelProvider extends LabelProvider implements DelegatingStyledCellLabelProvider.IStyledLabelProvider { public StyledLabelProvider() { } @Override public Image getImage(Object element) { if (element instanceof ChromeBrowserConfig) { return DartDebugUIPlugin.getImage("chromium_16.png"); } return super.getImage(element); } @Override public StyledString getStyledText(Object element) { String mainText = getMainText(element); String secondaryText = getSecondaryText(element); StyledString str = new StyledString(); str.append(mainText); if (secondaryText != null) { str.append(secondaryText, StyledString.DECORATIONS_STYLER); } return str; } private String getMainText(Object element) { if (element instanceof ChromeBrowserConfig) { ChromeBrowserConfig browser = (ChromeBrowserConfig) element; return browser.getName(); } return super.getText(element); } private String getSecondaryText(Object element) { if (element instanceof ChromeBrowserConfig) { ChromeBrowserConfig browser = (ChromeBrowserConfig) element; return " - " + browser.getPath(); } return null; } } /** * Create a new ChromeBrowserConfig. */ public BrowsersLabelProvider() { super(new StyledLabelProvider()); } @Override public Image getImage(Object element) { StyledLabelProvider styledProvider = (StyledLabelProvider) getStyledStringProvider(); return styledProvider.getImage(element); } @Override public String getText(Object element) { StyledLabelProvider styledProvider = (StyledLabelProvider) getStyledStringProvider(); return styledProvider.getMainText(element); } }