001/** 002 * Copyright (C) 2006-2018 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 CUSTOM. 050 */ 051 @RequiredArgsConstructor 052 enum IconType { 053 ACTIVEMQ("activemq"), 054 ACTIVITY("activity"), 055 AGGREGATE("aggregate"), 056 APACHE("apache"), 057 API_DESIGNER_COLORED("api-designer-colored"), 058 API_DESIGNER_NEGATIVE("api-designer-negative"), 059 API_DESIGNER_POSITIVE("api-designer-positive"), 060 API_TESTER_COLORED("api-tester-colored"), 061 API_TESTER_NEGATIVE("api-tester-negative"), 062 API_TESTER_POSITIVE("api-tester-positive"), 063 ARROW_LEFT("arrow-left"), 064 ARROW_RIGHT("arrow-right"), 065 AWS_KINESIS("aws-kinesis"), 066 BADGE("badge"), 067 BADGE_OUTLINE("badge-outline"), 068 BEAM("beam"), 069 BELL("bell"), 070 BELL_NOTIFICATION("bell-notification"), 071 BIGQUERY("bigquery"), 072 BLOCK("block"), 073 BOARD("board"), 074 BUBBLES("bubbles"), 075 BURGER("burger"), 076 CAMPAIGNS("campaigns"), 077 CARET_DOWN("caret-down"), 078 CARRIAGE_RETURN("carriage-return"), 079 CASSANDRA("cassandra"), 080 CHAIN("chain"), 081 CHARACTER("character"), 082 CHARTS("charts"), 083 CHECK("check"), 084 CHECK_CIRCLE("check-circle"), 085 CHECK_PLUS("check-plus"), 086 CHEVRON_END("chevron-end"), 087 CHEVRON_LEFT("chevron-left"), 088 CLOCK("clock"), 089 CLOUD_ENGINE("cloud-engine"), 090 CLOUD_UPGRADE("cloud-upgrade"), 091 CLUSTER("cluster"), 092 COG("cog"), 093 COLUMN_CHOOSER("column-chooser"), 094 COMPONENT_KIT_NEGATIVE("component-kit-negative"), 095 COMPONENT_KIT_POSITIVE("component-kit-positive"), 096 CONNECTIONS("connections"), 097 CONTAINS("contains"), 098 CREDITS_ENGINE("credits-engine"), 099 CROSS("cross"), 100 CROSSHAIRS("crosshairs"), 101 DATAGRID("datagrid"), 102 DATAPREP("dataprep"), 103 DATASETS("datasets"), 104 DATASTORE("datastore"), 105 DATASTREAMS_COLORED("datastreams-colored"), 106 DATASTREAMS_NEGATIVE("datastreams-negative"), 107 DATASTREAMS_POSITIVE("datastreams-positive"), 108 DATA_FABRIC_COLORED("data-fabric-colored"), 109 DATA_MODELS("data-models"), 110 DB_INPUT("db-input"), 111 DOWNLOAD("download"), 112 DRAG("drag"), 113 DRAG_AND_DROP("drag-and-drop"), 114 ELASTIC("elastic"), 115 ELLIPSIS("ellipsis"), 116 EMPTY_CALENDAR("empty-calendar"), 117 EMPTY_CELL("empty-cell"), 118 EMPTY_CHAR("empty-char"), 119 EMPTY_SPACE("empty-space"), 120 ENVIRONMENT("environment"), 121 EQUAL("equal"), 122 EXPANDED("expanded"), 123 EXPORT_HISTORY("export-history"), 124 EYE("eye"), 125 EYE_SLASH("eye-slash"), 126 FIELDGLASS("fieldglass"), 127 FIELD_SELECTOR("field-selector"), 128 FILES_O("files-o"), 129 FILE_COG("file-cog"), 130 FILE_COMPRESSED("file-compressed"), 131 FILE_CONNECT_O("file-connect-o"), 132 FILE_CSV_O("file-csv-o"), 133 FILE_DATABASE_O("file-database-o"), 134 FILE_HDFS_O("file-hdfs-o"), 135 FILE_JOB_O("file-job-o"), 136 FILE_JSON_O("file-json-o"), 137 FILE_MOVE("file-move"), 138 FILE_O("file-o"), 139 FILE_S3_O("file-s3-o"), 140 FILE_SALESFORCE("file-salesforce"), 141 FILE_TXT_O("file-txt-o"), 142 FILE_XLSX_O("file-xlsx-o"), 143 FILE_XLS_O("file-xls-o"), 144 FILE_XML_O("file-xml-o"), 145 FILTER("filter"), 146 FILTER_COLUMN("filter-column"), 147 FILTER_ROW("filter-row"), 148 FLINK("flink"), 149 FLINK_O("flink-o"), 150 FLOW("flow"), 151 FLOW_O("flow-o"), 152 FLOW_SOURCE_O("flow-source-o"), 153 FLOW_STEP_O("flow-step-o"), 154 FLOW_TARGET_O("flow-target-o"), 155 FLOW_UNDER_PLAN("flow-under-plan"), 156 FLOW_UNFINISHED("flow-unfinished"), 157 FOLDER("folder"), 158 FOLDER_CLOSED("folder-closed"), 159 FOLDER_SHARED("folder-shared"), 160 FOLDER_SHARED_OWNER("folder-shared-owner"), 161 FOLDER_SHARED_USER("folder-shared-user"), 162 FULLSCREEN("fullscreen"), 163 GOOGLE_DATAFLOW("google-dataflow"), 164 GROUP_CIRCLE("group-circle"), 165 HADOOP("hadoop"), 166 HAND_POINTER("hand-pointer"), 167 HIERARCHICAL_VIEW("hierarchical-view"), 168 HOME("home"), 169 INFO_CIRCLE("info-circle"), 170 JMS("jms"), 171 KAFKA("kafka"), 172 LAUNCH("launch"), 173 LAUNCHER("launcher"), 174 LESS_THAN("less-than"), 175 LESS_THAN_EQUAL("less-than-equal"), 176 LICENSE("license"), 177 LINK("link"), 178 LOCAL_STORAGE("local-storage"), 179 LOCK("lock"), 180 LOCKED("locked"), 181 LOGO("logo"), 182 LOGO_COLORED("logo-colored"), 183 LOGO_SQUARE("logo-square"), 184 MARKETO("marketo"), 185 MDM_COLORED("mdm-colored"), 186 MDM_NEGATIVE("mdm-negative"), 187 MDM_POSITIVE("mdm-positive"), 188 MINUS_CIRCLE("minus-circle"), 189 MORE_THAN("more-than"), 190 MORE_THAN_EQUAL("more-than-equal"), 191 MOST_TRUSTED("most-trusted"), 192 NETSUITE("netsuite"), 193 NETWORK("network"), 194 NORMALIZE("normalize"), 195 NOTE("note"), 196 NOT_EQUAL("not-equal"), 197 OPENER("opener"), 198 OVERVIEW("overview"), 199 PANEL_OPENER_BOTTOM("panel-opener-bottom"), 200 PANEL_OPENER_RIGHT("panel-opener-right"), 201 PENCIL("pencil"), 202 PHONE("phone"), 203 PIE_CHARTS("pie-charts"), 204 PIN("pin"), 205 PLACEHOLDER("placeholder"), 206 PLAY("play"), 207 PLUS("plus"), 208 PLUS_CIRCLE("plus-circle"), 209 POSTGRESQL("postgresql"), 210 POWER_OFF("power-off"), 211 PROJECTS("projects"), 212 PROMOTION_PIPELINES("promotion-pipelines"), 213 PUBSUB("pubsub"), 214 PYTHON("python"), 215 QUESTION_CIRCLE("question-circle"), 216 QUOTES("quotes"), 217 RAW_DATA("raw-data"), 218 REDO("redo"), 219 REFRESH("refresh"), 220 REMOTE_ENGINE("remote-engine"), 221 REPLICATE("replicate"), 222 ROLES("roles"), 223 SAMPLE("sample"), 224 SCHEDULER("scheduler"), 225 SEARCH("search"), 226 SEMANTIC("semantic"), 227 SEND("send"), 228 SHARE_ALT("share-alt"), 229 SHARING_DEFAULT("sharing-default"), 230 SHARING_OWNER("sharing-owner"), 231 SHARING_USER("sharing-user"), 232 SHIELD("shield"), 233 SHOW_UNASSIGNED_TASKS("show_unassigned_tasks"), 234 SLIDERS("sliders"), 235 SMILEY_ANGRY("smiley-angry"), 236 SMILEY_ENTHUSIAST("smiley-enthusiast"), 237 SMILEY_NEUTRAL("smiley-neutral"), 238 SMILEY_SATISFIED("smiley-satisfied"), 239 SMILEY_SLEEP("smiley-sleep"), 240 SMILEY_UNHAPPY("smiley-unhappy"), 241 SORT_19("sort-19"), 242 SORT_91("sort-91"), 243 SORT_ASC("sort-asc"), 244 SORT_AZ("sort-az"), 245 SORT_DESC("sort-desc"), 246 SORT_ZA("sort-za"), 247 SPARK("spark"), 248 STAR("star"), 249 STOP("stop"), 250 STREAMS("streams"), 251 TABLE("table"), 252 TAGS("tags"), 253 TASKS("tasks"), 254 TDC_COLORED("tdc-colored"), 255 TDC_NEGATIVE("tdc-negative"), 256 TDC_POSITIVE("tdc-positive"), 257 TDP_COLORED("tdp-colored"), 258 TDP_NEGATIVE("tdp-negative"), 259 TDP_POSITIVE("tdp-positive"), 260 TDS_COLORED("tds-colored"), 261 TDS_NEGATIVE("tds-negative"), 262 TDS_POSITIVE("tds-positive"), 263 TIC_COLORED("tic-colored"), 264 TIC_NEGATIVE("tic-negative"), 265 TIC_POSITIVE("tic-positive"), 266 TILES("tiles"), 267 TMC_COLORED("tmc-colored"), 268 TMC_NEGATIVE("tmc-negative"), 269 TMC_POSITIVE("tmc-positive"), 270 TRANSFORMER_WINDOW("transformer-window"), 271 TRASH("trash"), 272 TYPE_CONVERTER("type-converter"), 273 UNDO("undo"), 274 UNION("union"), 275 UNLOCKED("unlocked"), 276 UPLOAD("upload"), 277 USER_CIRCLE("user-circle"), 278 VERSIONING("versioning"), 279 WARNING("warning"), 280 WEBHOOK("webhook"), 281 WINDOW("window"), 282 WORD("word"), 283 WORKSPACES("workspaces"), 284 WORLD("world"), 285 ZOOMIN("zoomin"), 286 ZOOMOUT("zoomout"), 287 CUSTOM("custom"), 288 DEFAULT("default"); 289 290 @Getter 291 private final String key; 292 } 293}