connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/internal/ui/mylyn/TaskListImageDescriptor.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 TaskListImageDescriptor 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 overlay;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    27
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    28
	private boolean top;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    29
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    30
	private boolean left;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    31
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    32
	protected Point size;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    33
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    34
	public TaskListImageDescriptor(ImageDescriptor baseDesc, ImageDescriptor overlayDesc, boolean top, boolean left) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    35
		this.base = getImageData(baseDesc);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    36
		this.top = top;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    37
		this.left = left;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    38
		if (overlayDesc != null) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    39
			this.overlay = getImageData(overlayDesc);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    40
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    41
		Point size = new Point(base.width, base.height);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    42
		setImageSize(size);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    43
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    44
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    45
	public TaskListImageDescriptor(ImageDescriptor baseDesc, Point size) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    46
		this.base = getImageData(baseDesc);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    47
		setImageSize(size);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    48
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    49
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    50
	@Override
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    51
	protected void drawCompositeImage(int width, int height) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    52
		drawImage(base, 0, 0);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    53
		int x = 0;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    54
		int y = 0;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    55
		if (!left) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    56
			x = 8;// base.width - overlay.width;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    57
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    58
		if (!top) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    59
			y = 8;// base.height - overlay.height;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    60
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    61
		if (overlay != null) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    62
			drawImage(overlay, x, y);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    63
		}
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
	private ImageData getImageData(ImageDescriptor descriptor) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    67
		ImageData data = descriptor.getImageData();
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    68
		// see bug 51965: getImageData can return null
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    69
		if (data == null) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    70
			data = DEFAULT_IMAGE_DATA;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    71
		}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    72
		return data;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    73
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    74
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    75
	public void setImageSize(Point size) {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    76
		this.size = size;
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    77
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    78
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    79
	@Override
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    80
	protected Point getSize() {
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    81
		return new Point(size.x, size.y);
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    82
	}
e84724c7f393 copy in required mylyn code
dadubrow
parents:
diff changeset
    83
}