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