| /* |
| * Copyright (c) 2010-2012, 2015 Eike Stepper (Berlin, Germany) and others. |
| * 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 |
| * |
| * Contributors: |
| * Martin Fluegge - initial API and implementation |
| */ |
| package org.eclipse.emf.cdo.dawn.ui; |
| |
| import org.eclipse.emf.cdo.CDOObject; |
| import org.eclipse.emf.cdo.dawn.appearance.DawnElementStylizer; |
| import org.eclipse.emf.cdo.dawn.spi.DawnState; |
| import org.eclipse.emf.cdo.dawn.ui.stylizer.DawnElementStylizerRegistry; |
| import org.eclipse.emf.cdo.ui.CDOLabelProvider; |
| import org.eclipse.emf.cdo.util.CDOUtil; |
| import org.eclipse.emf.cdo.view.CDOView; |
| |
| import org.eclipse.emf.common.notify.AdapterFactory; |
| import org.eclipse.emf.ecore.EObject; |
| |
| import org.eclipse.jface.viewers.TreeViewer; |
| import org.eclipse.swt.graphics.Color; |
| import org.eclipse.swt.graphics.Image; |
| |
| /** |
| * @author Martin Fluegge |
| * @since 1.0 |
| */ |
| public class DawnLabelProvider extends CDOLabelProvider |
| { |
| public DawnLabelProvider(AdapterFactory adapterFactory, CDOView view, TreeViewer viewer) |
| { |
| super(adapterFactory, view, viewer); |
| } |
| |
| @Override |
| public Color getForeground(Object object) |
| { |
| // makes sure that the object is adapted |
| Color foreground = super.getForeground(object); |
| |
| DawnElementStylizer stylizer = DawnElementStylizerRegistry.instance.getStylizer(object); |
| |
| CDOObject cdoObject = CDOUtil.getCDOObject((EObject)object); |
| if (cdoObject.cdoWriteLock().isLocked()) |
| { |
| return stylizer.getForegroundColor(cdoObject, DawnState.LOCKED_LOCALLY); |
| } |
| else if (CDOUtil.getCDOObject((EObject)object).cdoWriteLock().isLockedByOthers()) |
| { |
| return stylizer.getForegroundColor(cdoObject, DawnState.LOCKED_REMOTELY); |
| } |
| // Use default |
| return foreground; |
| } |
| |
| @Override |
| public Color getBackground(Object object) |
| { |
| // makes sure that the object is adapted |
| Color background = super.getBackground(object); |
| |
| DawnElementStylizer stylizer = DawnElementStylizerRegistry.instance.getStylizer(object); |
| |
| CDOObject cdoObject = CDOUtil.getCDOObject((EObject)object); |
| if (cdoObject.cdoWriteLock().isLocked()) |
| { |
| return stylizer.getBackgroundColor(cdoObject, DawnState.LOCKED_LOCALLY); |
| } |
| else if (CDOUtil.getCDOObject((EObject)object).cdoWriteLock().isLockedByOthers()) |
| { |
| return stylizer.getBackgroundColor(cdoObject, DawnState.LOCKED_REMOTELY); |
| } |
| // Use default |
| return background; |
| } |
| |
| @Override |
| public Image getImage(Object object) |
| { |
| DawnElementStylizer stylizer = DawnElementStylizerRegistry.instance.getStylizer(object); |
| |
| CDOObject cdoObject = CDOUtil.getCDOObject((EObject)object); |
| if (cdoObject.cdoWriteLock().isLocked()) |
| { |
| return stylizer.getImage(cdoObject, DawnState.LOCKED_LOCALLY); |
| } |
| else if (CDOUtil.getCDOObject((EObject)object).cdoWriteLock().isLockedByOthers()) |
| { |
| return stylizer.getImage(cdoObject, DawnState.LOCKED_REMOTELY); |
| } |
| |
| return super.getImage(object); |
| } |
| } |