001/**
002 * Copyright (C) 2006-2019 Talend Inc. - www.talend.com
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.talend.sdk.component.api.component;
017
018import static java.lang.annotation.ElementType.PACKAGE;
019import static java.lang.annotation.ElementType.TYPE;
020import static java.lang.annotation.RetentionPolicy.RUNTIME;
021
022import java.lang.annotation.Retention;
023import java.lang.annotation.Target;
024
025import org.talend.sdk.component.api.meta.Documentation;
026
027import lombok.Getter;
028import lombok.RequiredArgsConstructor;
029
030@Documentation("Associate an icon to a component, only supported on `@PartitionMapper`, `@Processor` and `@Emitter` classes.")
031@Target({ TYPE, PACKAGE })
032@Retention(RUNTIME)
033public @interface Icon {
034
035    /**
036     * @return the icon to associate to the component.
037     */
038    IconType value();
039
040    /**
041     * @return the custom icon key (not in {@link IconType}) to use if {@link Icon#value()} is {@link IconType#CUSTOM}.
042     */
043    String custom() default "";
044
045    /**
046     * See http://talend.surge.sh/icons/
047     * generated with
048     * {@code var a = document.getElementsByTagName("li");for (i = 0; i < a.length; i++) {var id = a[i].querySelector('svg').id;
049     * console.log(id.toUpperCase().replace(/-/g, '_') + '("' + id + "\"),");}} and with appending of DEFAULT and
050     * CUSTOM.
051     */
052    @RequiredArgsConstructor
053    enum IconType {
054        ACTIVEMQ("activemq"),
055        ACTIVITY("activity"),
056        AGGREGATE("aggregate"),
057        APACHE("apache"),
058        API_DESIGNER_COLORED("api-designer-colored"),
059        API_DESIGNER_NEGATIVE("api-designer-negative"),
060        API_DESIGNER_POSITIVE("api-designer-positive"),
061        API_TESTER_COLORED("api-tester-colored"),
062        API_TESTER_NEGATIVE("api-tester-negative"),
063        API_TESTER_POSITIVE("api-tester-positive"),
064        ARROW_LEFT("arrow-left"),
065        ARROW_RIGHT("arrow-right"),
066        AWS_KINESIS("aws-kinesis"),
067        AZURE_EVENT_HUBS("azure-event-hubs"),
068        BADGE("badge"),
069        BADGE_OUTLINE("badge-outline"),
070        BEAM("beam"),
071        BELL("bell"),
072        BELL_NOTIFICATION("bell-notification"),
073        BIGQUERY("bigquery"),
074        BLOCK("block"),
075        BOARD("board"),
076        BUBBLES("bubbles"),
077        BURGER("burger"),
078        CALENDAR_MOVE("calendar-move"),
079        CAMPAIGNS("campaigns"),
080        CARET_DOWN("caret-down"),
081        CARRIAGE_RETURN("carriage-return"),
082        CASSANDRA("cassandra"),
083        CHAIN("chain"),
084        CHARACTER("character"),
085        CHARTS("charts"),
086        CHECK("check"),
087        CHECK_CIRCLE("check-circle"),
088        CHECK_PLUS("check-plus"),
089        CHEVRON_END("chevron-end"),
090        CHEVRON_LEFT("chevron-left"),
091        CLOCK("clock"),
092        CLOUD_ENGINE("cloud-engine"),
093        CLOUD_UPGRADE("cloud-upgrade"),
094        CLUSTER("cluster"),
095        COG("cog"),
096        COLUMN_CHOOSER("column-chooser"),
097        COMPONENT_KIT_NEGATIVE("component-kit-negative"),
098        COMPONENT_KIT_POSITIVE("component-kit-positive"),
099        COMPONENT_NEGATIVE("component-negative"),
100        COMPONENT_POSITIVE("component-positive"),
101        CONNECTIONS("connections"),
102        CONTAINS("contains"),
103        COUCHBASE("couchbase"),
104        CREDITS_ENGINE("credits-engine"),
105        CROSS("cross"),
106        CROSSHAIRS("crosshairs"),
107        DATAGRID("datagrid"),
108        DATAPREP("dataprep"),
109        DATASETS("datasets"),
110        DATASTORE("datastore"),
111        DATASTREAMS_COLORED("datastreams-colored"),
112        DATASTREAMS_NEGATIVE("datastreams-negative"),
113        DATASTREAMS_POSITIVE("datastreams-positive"),
114        DATA_FABRIC_COLORED("data-fabric-colored"),
115        DATA_MODELS("data-models"),
116        DB_INPUT("db-input"),
117        DOWNLOAD("download"),
118        DRAG("drag"),
119        DRAG_AND_DROP("drag-and-drop"),
120        DROPPER("dropper"),
121        ELASTIC("elastic"),
122        ELLIPSIS("ellipsis"),
123        EMPTY_CALENDAR("empty-calendar"),
124        EMPTY_CELL("empty-cell"),
125        EMPTY_CHAR("empty-char"),
126        EMPTY_SPACE("empty-space"),
127        ENVIRONMENT("environment"),
128        EQUAL("equal"),
129        EXPANDED("expanded"),
130        EXPORT_HISTORY("export-history"),
131        EYE("eye"),
132        EYE_SLASH("eye-slash"),
133        FIELDGLASS("fieldglass"),
134        FIELD_SELECTOR("field-selector"),
135        FILES_O("files-o"),
136        FILE_COG("file-cog"),
137        FILE_COMPRESSED("file-compressed"),
138        FILE_CONNECT_O("file-connect-o"),
139        FILE_CSV_O("file-csv-o"),
140        FILE_DATABASE_O("file-database-o"),
141        FILE_HDFS_O("file-hdfs-o"),
142        FILE_JOB_O("file-job-o"),
143        FILE_JSON_O("file-json-o"),
144        FILE_MOVE("file-move"),
145        FILE_O("file-o"),
146        FILE_S3_O("file-s3-o"),
147        FILE_SALESFORCE("file-salesforce"),
148        FILE_TXT_O("file-txt-o"),
149        FILE_XLSX_O("file-xlsx-o"),
150        FILE_XLS_O("file-xls-o"),
151        FILE_XML_O("file-xml-o"),
152        FILTER("filter"),
153        FILTER_COLUMN("filter-column"),
154        FILTER_ROW("filter-row"),
155        FLINK("flink"),
156        FLINK_O("flink-o"),
157        FLOW("flow"),
158        FLOW_O("flow-o"),
159        FLOW_SOURCE_O("flow-source-o"),
160        FLOW_STEP_O("flow-step-o"),
161        FLOW_TARGET_O("flow-target-o"),
162        FLOW_UNDER_PLAN("flow-under-plan"),
163        FLOW_UNFINISHED("flow-unfinished"),
164        FOLDER("folder"),
165        FOLDER_CLOSED("folder-closed"),
166        FOLDER_SHARED("folder-shared"),
167        FOLDER_SHARED_OWNER("folder-shared-owner"),
168        FOLDER_SHARED_USER("folder-shared-user"),
169        FULLSCREEN("fullscreen"),
170        GOOGLE_DATAFLOW("google-dataflow"),
171        GROUP_CIRCLE("group-circle"),
172        HADOOP("hadoop"),
173        HAND_POINTER("hand-pointer"),
174        HIERARCHICAL_VIEW("hierarchical-view"),
175        HOME("home"),
176        INFO_CIRCLE("info-circle"),
177        JMS("jms"),
178        KAFKA("kafka"),
179        LAUNCH("launch"),
180        LAUNCHER("launcher"),
181        LESS_THAN("less-than"),
182        LESS_THAN_EQUAL("less-than-equal"),
183        LICENSE("license"),
184        LINK("link"),
185        LOCAL_STORAGE("local-storage"),
186        LOCK("lock"),
187        LOCKED("locked"),
188        LOGO("logo"),
189        LOGO_COLORED("logo-colored"),
190        LOGO_SQUARE("logo-square"),
191        MARKETO("marketo"),
192        MDM_COLORED("mdm-colored"),
193        MDM_NEGATIVE("mdm-negative"),
194        MDM_POSITIVE("mdm-positive"),
195        MINUS_CIRCLE("minus-circle"),
196        MONGODB("mongodb"),
197        MORE_THAN("more-than"),
198        MORE_THAN_EQUAL("more-than-equal"),
199        MOST_TRUSTED("most-trusted"),
200        NETSUITE("netsuite"),
201        NETWORK("network"),
202        NORMALIZE("normalize"),
203        NOTE("note"),
204        NOT_EQUAL("not-equal"),
205        OPENER("opener"),
206        OVERVIEW("overview"),
207        PANEL_OPENER_BOTTOM("panel-opener-bottom"),
208        PANEL_OPENER_RIGHT("panel-opener-right"),
209        PENCIL("pencil"),
210        PHONE("phone"),
211        PIE_CHARTS("pie-charts"),
212        PIN("pin"),
213        PLACEHOLDER("placeholder"),
214        PLAY("play"),
215        PLUS("plus"),
216        PLUS_CIRCLE("plus-circle"),
217        POSTGRESQL("postgresql"),
218        POWER_OFF("power-off"),
219        PROJECTS("projects"),
220        PROMOTION_PIPELINES("promotion-pipelines"),
221        PUBSUB("pubsub"),
222        PYTHON("python"),
223        QUESTION_CIRCLE("question-circle"),
224        QUOTES("quotes"),
225        RAW_DATA("raw-data"),
226        REDO("redo"),
227        REFRESH("refresh"),
228        REMOTE_ENGINE("remote-engine"),
229        REPLICATE("replicate"),
230        REST("rest"),
231        ROLES("roles"),
232        SAMPLE("sample"),
233        SCHEDULER("scheduler"),
234        SEARCH("search"),
235        SEMANTIC("semantic"),
236        SEND("send"),
237        SHARE_ALT("share-alt"),
238        SHARING_DEFAULT("sharing-default"),
239        SHARING_OWNER("sharing-owner"),
240        SHARING_USER("sharing-user"),
241        SHIELD("shield"),
242        SHIELD_FULL("shield-full"),
243        SHIELD_FULL_CHECK("shield-full-check"),
244        SHOW_UNASSIGNED_TASKS("show_unassigned_tasks"),
245        SLIDERS("sliders"),
246        SMILEY_ANGRY("smiley-angry"),
247        SMILEY_ENTHUSIAST("smiley-enthusiast"),
248        SMILEY_NEUTRAL("smiley-neutral"),
249        SMILEY_SATISFIED("smiley-satisfied"),
250        SMILEY_SLEEP("smiley-sleep"),
251        SMILEY_UNHAPPY("smiley-unhappy"),
252        SORT("sort"),
253        SORT_19("sort-19"),
254        SORT_91("sort-91"),
255        SORT_ASC("sort-asc"),
256        SORT_AZ("sort-az"),
257        SORT_DESC("sort-desc"),
258        SORT_ZA("sort-za"),
259        SPARK("spark"),
260        STAR("star"),
261        STOP("stop"),
262        STREAMS("streams"),
263        TABLE("table"),
264        TAGS("tags"),
265        TASKS("tasks"),
266        TDC_COLORED("tdc-colored"),
267        TDC_NEGATIVE("tdc-negative"),
268        TDC_POSITIVE("tdc-positive"),
269        TDP_COLORED("tdp-colored"),
270        TDP_NEGATIVE("tdp-negative"),
271        TDP_POSITIVE("tdp-positive"),
272        TDS_COLORED("tds-colored"),
273        TDS_NEGATIVE("tds-negative"),
274        TDS_POSITIVE("tds-positive"),
275        TIC_COLORED("tic-colored"),
276        TIC_NEGATIVE("tic-negative"),
277        TIC_POSITIVE("tic-positive"),
278        TILES("tiles"),
279        TMC_COLORED("tmc-colored"),
280        TMC_NEGATIVE("tmc-negative"),
281        TMC_POSITIVE("tmc-positive"),
282        TRANSFORMER_WINDOW("transformer-window"),
283        TRASH("trash"),
284        TYPE_CONVERTER("type-converter"),
285        UNDO("undo"),
286        UNION("union"),
287        UNLOCKED("unlocked"),
288        UPLOAD("upload"),
289        USER_CIRCLE("user-circle"),
290        VERSIONING("versioning"),
291        WARNING("warning"),
292        WEBHOOK("webhook"),
293        WINDOW("window"),
294        WORD("word"),
295        WORKSPACES("workspaces"),
296        WORLD("world"),
297        ZOOMIN("zoomin"),
298        ZOOMOUT("zoomout"),
299        CUSTOM("custom"),
300        DEFAULT("default");
301
302        @Getter
303        private final String key;
304    }
305}