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}