connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/internal/ui/mylyn/CompositeElementImageDescriptor.java
author dadubrow
Fri, 12 Mar 2010 14:47:52 -0600
changeset 1104 e84724c7f393
permissions -rw-r--r--
copy in required mylyn code
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1104
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     1
/*******************************************************************************
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     3
 * All rights reserved. This program and the accompanying materials
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     4
 * are made available under the terms of the Eclipse Public License v1.0
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     5
 * which accompanies this distribution, and is available at
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     6
 * http://www.eclipse.org/legal/epl-v10.html
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     7
 *
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     8
 * Contributors:
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
     9
 *     Tasktop Technologies - initial API and implementation
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    10
 *******************************************************************************/
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    11
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    12
package com.nokia.carbide.remoteconnections.internal.ui.mylyn;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    13
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    14
import org.eclipse.jface.resource.CompositeImageDescriptor;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    15
import org.eclipse.jface.resource.ImageDescriptor;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    16
import org.eclipse.swt.graphics.ImageData;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    17
import org.eclipse.swt.graphics.Point;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    18
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    19
/**
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    20
 * @author Mik Kersten
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    21
 */
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    22
public class CompositeElementImageDescriptor extends CompositeImageDescriptor {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    23
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    24
	private final ImageData base;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    25
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    26
	private ImageData kind;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    27
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    28
	protected Point size;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    29
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    30
	public static final int OFFSET_DECORATION = 6;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    31
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    32
	static final int WIDTH_ICON = 16;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    33
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    34
	private int offset = 0;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    35
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    36
	public CompositeElementImageDescriptor(ImageDescriptor icon, ImageDescriptor overlayKind, boolean wide) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    37
		this.base = getImageData(icon);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    38
		if (overlayKind != null) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    39
			this.kind = getImageData(overlayKind);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    40
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    41
		int width = WIDTH_ICON;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    42
		if (wide) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    43
			width += OFFSET_DECORATION;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    44
			offset = OFFSET_DECORATION;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    45
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    46
		this.size = new Point(width, base.height);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    47
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    48
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    49
	@Override
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    50
	protected void drawCompositeImage(int width, int height) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    51
		drawImage(base, offset, 1);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    52
		if (kind != null) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    53
			drawImage(kind, offset + 5, 6);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    54
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    55
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    56
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    57
	private ImageData getImageData(ImageDescriptor descriptor) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    58
		ImageData data = descriptor.getImageData();
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    59
		// see bug 51965: getImageData can return null
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    60
		if (data == null) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    61
			data = DEFAULT_IMAGE_DATA;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    62
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    63
		return data;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    64
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    65
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    66
	@Override
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    67
	protected Point getSize() {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    68
		return new Point(size.x, size.y);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    69
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    70
}