View Javadoc

1   /*
2    * This file is a part of CAST project.
3    * (c) Copyright 2007, AGH University of Science & Technology
4    * https://caribou.iisg.agh.edu.pl/trac/cast
5    *
6    * Licensed under the Eclipse Public License, Version 1.0 (the "License").
7    * You may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    * http://www.eclipse.org/legal/epl-v10.html
10   */
11  /*
12   * File: NodeIcon.java
13   * Created: 2008-11-11
14   * Author: tmilos
15   * $Id: NodeIcon.java 3054 2009-07-27 10:23:07Z kpietak $
16   */
17  
18  package pl.edu.agh.cast.backward.figure.icons;
19  
20  import org.eclipse.jface.resource.ImageDescriptor;
21  
22  /**
23   * Representation of diagram icon specific for given node type. For each node type there may be only one default
24   * NodeIcon.
25   *
26   * @author AGH CAST Team
27   */
28  public final class NodeIcon {
29  
30  	/**
31  	 * Node type - should be globally unique.
32  	 */
33  	private String nodeType;
34  
35  	/**
36  	 * Icon group this icon belongs to. May be related to domain.
37  	 */
38  	private String group;
39  
40  	/**
41  	 * Display (user friendly) name.
42  	 */
43  	private String name;
44  
45  	/**
46  	 * Large icon descriptor.
47  	 */
48  	private ImageDescriptor iconDescriptor;
49  
50  	/**
51  	 * Small icon descriptor.
52  	 */
53  	private ImageDescriptor smallIconDescriptor;
54  
55  	/**
56  	 * Large icon unique ID. Used as a key in ImageRegistry.
57  	 */
58  	private String iconId;
59  
60  	/**
61  	 * Small icon unique ID. Used as a key in ImageRegistry.
62  	 */
63  	private String smallIconId;
64  
65  	/**
66  	 * Constructor.
67  	 *
68  	 * @param nodeType
69  	 *            type of node this icon is for (by default). Should be unique for each NodeIcon.
70  	 * @param name
71  	 *            localized icon display name
72  	 * @param icon
73  	 *            descriptor of icon's large image
74  	 * @param smallIcon
75  	 *            descriptor of icon's small image
76  	 * @param group
77  	 *            localized name of the group this icon is in (ex. Billing)
78  	 */
79  	public NodeIcon(String nodeType, String name, ImageDescriptor icon, ImageDescriptor smallIcon, String group) {
80  		this.nodeType = nodeType;
81  		this.name = name;
82  		this.iconDescriptor = icon;
83  		this.smallIconDescriptor = smallIcon;
84  		this.group = group;
85  
86  		// if multiple icons for single node type are to be allowed
87  		// the following icon IDs should be generated in a different way
88  		iconId = String.format("%s:large", nodeType); //$NON-NLS-1$
89  		smallIconId = String.format("%s:small", nodeType); //$NON-NLS-1$
90  	}
91  
92  	/**
93  	 * Returns icon's display name.
94  	 *
95  	 * @return the name
96  	 */
97  	public String getName() {
98  		return name;
99  	}
100 
101 	/**
102 	 * Returns the type of node this icon is for (by default).
103 	 *
104 	 * @return the nodeType
105 	 */
106 	public String getNodeType() {
107 		return nodeType;
108 	}
109 
110 	/**
111 	 * Returns the large icon descriptor.
112 	 *
113 	 * @return the iconDescriptor
114 	 */
115 	public ImageDescriptor getIconDescriptor() {
116 		return iconDescriptor;
117 	}
118 
119 	/**
120 	 * Returns the small icon descriptor.
121 	 *
122 	 * @return the smallIconDescriptor
123 	 */
124 	public ImageDescriptor getSmallIconDescriptor() {
125 		return smallIconDescriptor;
126 	}
127 
128 	/**
129 	 * Returns the large icon unique ID. This ID may be used as a key in ImageRegistry.
130 	 *
131 	 * @return the iconId
132 	 */
133 	public String getIconId() {
134 		return iconId;
135 	}
136 
137 	/**
138 	 * Returns the small icon unique ID. This ID may be used as a key in ImageRegistry.
139 	 *
140 	 * @return the smallIconId
141 	 */
142 	public String getSmallIconId() {
143 		return smallIconId;
144 	}
145 
146 	/**
147 	 * Returns the name of the group this icon belongs to. This may be used for palette grouping.
148 	 *
149 	 * @return the group
150 	 */
151 	public String getGroup() {
152 		return group;
153 	}
154 
155 }