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 CREDITS_ENGINE("credits-engine"), 098 CROSS("cross"), 099 CROSSHAIRS("crosshairs"), 100 DATAGRID("datagrid"), 101 DATAPREP("dataprep"), 102 DATASETS("datasets"), 103 DATASTORE("datastore"), 104 DATASTREAMS_COLORED("datastreams-colored"), 105 DATASTREAMS_NEGATIVE("datastreams-negative"), 106 DATASTREAMS_POSITIVE("datastreams-positive"), 107 DATA_FABRIC_COLORED("data-fabric-colored"), 108 DATA_MODELS("data-models"), 109 DB_INPUT("db-input"), 110 DOWNLOAD("download"), 111 DRAG("drag"), 112 DRAG_AND_DROP("drag-and-drop"), 113 ELASTIC("elastic"), 114 ELLIPSIS("ellipsis"), 115 EMPTY_CELL("empty-cell"), 116 EMPTY_CHAR("empty-char"), 117 EMPTY_SPACE("empty-space"), 118 ENVIRONMENT("environment"), 119 EXPANDED("expanded"), 120 EXPORT_HISTORY("export-history"), 121 EYE("eye"), 122 EYE_SLASH("eye-slash"), 123 FIELD_SELECTOR("field-selector"), 124 FILES_O("files-o"), 125 FILE_COG("file-cog"), 126 FILE_COMPRESSED("file-compressed"), 127 FILE_CONNECT_O("file-connect-o"), 128 FILE_CSV_O("file-csv-o"), 129 FILE_DATABASE_O("file-database-o"), 130 FILE_HDFS_O("file-hdfs-o"), 131 FILE_JOB_O("file-job-o"), 132 FILE_JSON_O("file-json-o"), 133 FILE_MOVE("file-move"), 134 FILE_O("file-o"), 135 FILE_S3_O("file-s3-o"), 136 FILE_SALESFORCE("file-salesforce"), 137 FILE_TXT_O("file-txt-o"), 138 FILE_XLSX_O("file-xlsx-o"), 139 FILE_XLS_O("file-xls-o"), 140 FILE_XML_O("file-xml-o"), 141 FILTER("filter"), 142 FILTER_COLUMN("filter-column"), 143 FILTER_ROW("filter-row"), 144 FLINK("flink"), 145 FLINK_O("flink-o"), 146 FLOW("flow"), 147 FLOW_O("flow-o"), 148 FLOW_SOURCE_O("flow-source-o"), 149 FLOW_STEP_O("flow-step-o"), 150 FLOW_TARGET_O("flow-target-o"), 151 FLOW_UNDER_PLAN("flow-under-plan"), 152 FLOW_UNFINISHED("flow-unfinished"), 153 FOLDER("folder"), 154 FOLDER_CLOSED("folder-closed"), 155 FOLDER_SHARED("folder-shared"), 156 FULLSCREEN("fullscreen"), 157 GOOGLE_DATAFLOW("google-dataflow"), 158 GROUP_CIRCLE("group-circle"), 159 HADOOP("hadoop"), 160 HAND_POINTER("hand-pointer"), 161 HIERARCHICAL_VIEW("hierarchical-view"), 162 HOME("home"), 163 INFO_CIRCLE("info-circle"), 164 JMS("jms"), 165 KAFKA("kafka"), 166 LAUNCH("launch"), 167 LAUNCHER("launcher"), 168 LICENSE("license"), 169 LINK("link"), 170 LOCAL_STORAGE("local-storage"), 171 LOCK("lock"), 172 LOCKED("locked"), 173 LOGO("logo"), 174 LOGO_COLORED("logo-colored"), 175 LOGO_SQUARE("logo-square"), 176 MDM_COLORED("mdm-colored"), 177 MDM_NEGATIVE("mdm-negative"), 178 MDM_POSITIVE("mdm-positive"), 179 MINUS_CIRCLE("minus-circle"), 180 MOST_TRUSTED("most-trusted"), 181 NETWORK("network"), 182 NORMALIZE("normalize"), 183 NOTE("note"), 184 OPENER("opener"), 185 OVERVIEW("overview"), 186 PANEL_OPENER_BOTTOM("panel-opener-bottom"), 187 PANEL_OPENER_RIGHT("panel-opener-right"), 188 PENCIL("pencil"), 189 PHONE("phone"), 190 PIE_CHARTS("pie-charts"), 191 PIN("pin"), 192 PLACEHOLDER("placeholder"), 193 PLAY("play"), 194 PLUS("plus"), 195 PLUS_CIRCLE("plus-circle"), 196 POSTGRESQL("postgresql"), 197 POWER_OFF("power-off"), 198 PROJECTS("projects"), 199 PROMOTION_PIPELINES("promotion-pipelines"), 200 PUBSUB("pubsub"), 201 PYTHON("python"), 202 QUESTION_CIRCLE("question-circle"), 203 RAW_DATA("raw-data"), 204 REDO("redo"), 205 REFRESH("refresh"), 206 REMOTE_ENGINE("remote-engine"), 207 REPLICATE("replicate"), 208 ROLES("roles"), 209 SAMPLE("sample"), 210 SCHEDULER("scheduler"), 211 SEARCH("search"), 212 SEMANTIC("semantic"), 213 SHARE_ALT("share-alt"), 214 SHARING_DEFAULT("sharing-default"), 215 SHARING_OWNER("sharing-owner"), 216 SHARING_USER("sharing-user"), 217 SHIELD("shield"), 218 SHOW_UNASSIGNED_TASKS("show_unassigned_tasks"), 219 SLIDERS("sliders"), 220 SMILEY_ANGRY("smiley-angry"), 221 SMILEY_ENTHUSIAST("smiley-enthusiast"), 222 SMILEY_NEUTRAL("smiley-neutral"), 223 SMILEY_SATISFIED("smiley-satisfied"), 224 SMILEY_SLEEP("smiley-sleep"), 225 SMILEY_UNHAPPY("smiley-unhappy"), 226 SORT_19("sort-19"), 227 SORT_91("sort-91"), 228 SORT_ASC("sort-asc"), 229 SORT_AZ("sort-az"), 230 SORT_DESC("sort-desc"), 231 SORT_ZA("sort-za"), 232 SPARK("spark"), 233 STAR("star"), 234 STOP("stop"), 235 STREAMS("streams"), 236 TABLE("table"), 237 TAGS("tags"), 238 TASKS("tasks"), 239 TDC_COLORED("tdc-colored"), 240 TDC_NEGATIVE("tdc-negative"), 241 TDC_POSITIVE("tdc-positive"), 242 TDP_COLORED("tdp-colored"), 243 TDP_NEGATIVE("tdp-negative"), 244 TDP_POSITIVE("tdp-positive"), 245 TDS_COLORED("tds-colored"), 246 TDS_NEGATIVE("tds-negative"), 247 TDS_POSITIVE("tds-positive"), 248 TIC_COLORED("tic-colored"), 249 TIC_NEGATIVE("tic-negative"), 250 TIC_POSITIVE("tic-positive"), 251 TILES("tiles"), 252 TMC_COLORED("tmc-colored"), 253 TMC_NEGATIVE("tmc-negative"), 254 TMC_POSITIVE("tmc-positive"), 255 TRANSFORMER_WINDOW("transformer-window"), 256 TRASH("trash"), 257 TYPE_CONVERTER("type-converter"), 258 UNDO("undo"), 259 UNLOCKED("unlocked"), 260 UPLOAD("upload"), 261 USER_CIRCLE("user-circle"), 262 WARNING("warning"), 263 WEBHOOK("webhook"), 264 WINDOW("window"), 265 WORD("word"), 266 WORKSPACES("workspaces"), 267 WORLD("world"), 268 ZOOMIN("zoomin"), 269 ZOOMOUT("zoomout"), 270 CUSTOM("custom"), 271 DEFAULT("default"); 272 273 @Getter 274 private final String key; 275 } 276}