This is an automated email from the ASF dual-hosted git repository.

jsorel pushed a commit to branch feat/fontgis
in repository https://gitbox.apache.org/repos/asf/sis.git

commit e85ba72967830790e75b337bbbb922b515ad4d67
Author: jsorel <johann.so...@geomatys.com>
AuthorDate: Fri Mar 8 12:30:40 2024 +0100

    Add javafx Glyph and FontGIS dependency
---
 optional/build.gradle.kts                          |  13 +
 .../main/org/apache/sis/gui/Glyph.java             | 426 +++++++++++++++++++++
 2 files changed, 439 insertions(+)

diff --git a/optional/build.gradle.kts b/optional/build.gradle.kts
index 3f3e90f4eb..8ca6663c0f 100644
--- a/optional/build.gradle.kts
+++ b/optional/build.gradle.kts
@@ -129,6 +129,18 @@ fun patchForTests(args : MutableList<String>) {
     addExport(args, "org.apache.sis.util", "org.apache.sis.test", 
"org.apache.sis.gui")
 }
 
+fun downloadFontGIS() {
+    val archiveFolder = File("fontgis")
+    val archiveFile = File("fontgis/fontgis.tgz")
+    val archiveUrl = "https://registry.npmjs.org/font-gis/-/font-gis-1.0.5.tgz";
+    val ttfArchiveFile = File("fontgis/package/fonts/font-gis.ttf")
+    val ttfSourceFile = 
File("src/org.apache.sis.gui/main/org/apache/sis/gui/font-gis.ttf")
+    ant.invokeMethod("mkdir", mapOf("dir" to archiveFolder))
+    ant.invokeMethod("get", mapOf("src" to archiveUrl, "dest" to archiveFile))
+    ant.invokeMethod("untar", mapOf("src" to archiveFile, "dest" to 
archiveFolder, "compression" to "gzip"))
+    ant.invokeMethod("copy", mapOf("file" to ttfArchiveFile, "tofile" to 
ttfSourceFile))
+}
+
 /*
  * Discover and execute JUnit-based tests.
  */
@@ -153,6 +165,7 @@ tasks.test {
  * Other attributes are hard-coded in `../buildSrc`.
  */
 tasks.jar {
+    downloadFontGIS();
     manifest {
         attributes["Main-Class"] = "org.apache.sis.gui.DataViewer"
     }
diff --git a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/Glyph.java 
b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/Glyph.java
new file mode 100644
index 0000000000..dcaa728426
--- /dev/null
+++ b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/Glyph.java
@@ -0,0 +1,426 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.gui;
+
+import javafx.scene.control.Label;
+import javafx.scene.text.Font;
+
+/**
+ *
+ * @author Johann Sorel (Geomatys)
+ */
+public final class Glyph extends Label {
+
+    /**
+     * Create a new Glyph label.
+     *
+     * @param font Font to use
+     * @param glyphs label text
+     */
+    public Glyph(Font font, char ... glyphs) {
+        this(font, new String(glyphs));
+    }
+
+    /**
+     * Create a new Glyph label.
+     *
+     * @param font Font to use
+     * @param glyphs label text
+     */
+    public Glyph(Font font, String glyphs) {
+        this(font, glyphs, 1.0);
+    }
+
+    /**
+     * Create a new Glyph label.
+     *
+     * @param font Font to use
+     * @param glyphs label text
+     * @param scale scaling factor for the font
+     */
+    public Glyph(Font font, String glyphs, double scale) {
+        if (scale != 1.0) {
+            setFont(Font.font(font.getName(),font.getSize() * scale));
+        } else {
+            setFont(font);
+        }
+        setText(glyphs);
+    }
+
+    public static final class FontGIS {
+
+        public static final Font FONT;
+        static {
+            
Font.loadFont(Glyph.class.getResource("font-gis.ttf").toExternalForm(), 0);
+            FONT = Font.font("font-gis");
+        }
+
+        public static Glyph glyph(char code) {
+            return glyph(code, 1.0);
+        }
+
+        public static Glyph glyph(char code, double scale) {
+            return new Glyph(FONT, new String(new char[]{code}), scale);
+        }
+
+        public static final char NORTH_ARROW = 60043;
+        public static final char NORTH_ARROW_N = 60044;
+        public static final char COMPASS = 60048;
+        public static final char COMPASS_NEEDLE = 60049;
+        public static final char COMPASS_ROSE = 60050;
+        public static final char COMPASS_ROSE_N = 60051;
+        public static final char COMPASS_ALT = 60166;
+        public static final char COMPASS_ALT_O = 60167;
+        public static final char ARROW_O = 59962;
+        public static final char ARROW = 59963;
+        public static final char MODIFY_LINE = 59964;
+        public static final char MODIFY_POLY = 59965;
+        public static final char MODIFY_POLY_O = 59968;
+        public static final char COPY_POINT = 59983;
+        public static final char COPY_LINE = 59984;
+        public static final char COPY_POLY = 59985;
+        public static final char BUFFER = 60014;
+        public static final char DIFFERENCE = 60015;
+        public static final char INTERSECTION = 60016;
+        public static final char UNION = 60017;
+        public static final char SYM_DIFFERENCE = 60018;
+        public static final char MOVE = 60019;
+        public static final char MOVE_ALT = 60020;
+        public static final char OFFSET = 60021;
+        public static final char SNAP = 60022;
+        public static final char SPLIT = 60023;
+        public static final char SPLIT_LINE = 60024;
+        public static final char SPLIT_POLYGON = 60025;
+        public static final char CONVEX_HULL = 60072;
+        public static final char SELECT_EXTENT = 60077;
+        public static final char SNAP_ORTHO = 60078;
+        public static final char COLOR = 60079;
+        public static final char ROTATE = 60131;
+        public static final char FLIP_H = 60132;
+        public static final char FLIP_V = 60133;
+        public static final char SIMPLIFY = 60134;
+        public static final char PROJ_POINT = 60135;
+        public static final char SCALE_POLY = 60136;
+        public static final char SKELETONIZE = 60183;
+        public static final char DILATATION = 60184;
+        public static final char EROSION = 60185;
+        public static final char TRANSLATE = 60198;
+        public static final char TRANSLATE_X = 60199;
+        public static final char TRANSLATE_Y = 60200;
+        public static final char GPX_FILE = 60057;
+        public static final char GEOJSON_FILE = 60058;
+        public static final char KML_FILE = 60059;
+        public static final char WMS = 60060;
+        public static final char WMTS = 60061;
+        public static final char WFS = 60062;
+        public static final char WFS_T = 60063;
+        public static final char MVT = 60064;
+        public static final char XYZ = 60065;
+        public static final char SHAPE_FILE = 60066;
+        public static final char ESRI_JSON_FILE = 60067;
+        public static final char TOPOJSON_FILE = 60068;
+        public static final char FOLDER_MAP = 60207;
+        public static final char WORLD_FOLDER_O = 60208;
+        public static final char WORLD_FOLDER = 60209;
+        public static final char FOLDER_GLOBE = 60210;
+        public static final char FOLDER_GLOBE_O = 60211;
+        public static final char FOLDER_MAPS = 60212;
+        public static final char FOLDER_POI = 60213;
+        public static final char FOLDER_POI_O = 60214;
+        public static final char FOLDER_POIS = 60215;
+        public static final char EARTH_NET = 60216;
+        public static final char EARTH_NET_O = 60217;
+        public static final char WCS = 60249;
+        public static final char POINT = 59905;
+        public static final char POLYLINE_PT = 59906;
+        public static final char POLYGON_PT = 59907;
+        public static final char POLYGON_HOLE_PT = 59908;
+        public static final char RECTANGLE_PT = 59909;
+        public static final char SQUARE_PT = 59910;
+        public static final char CIRCLE_O = 59911;
+        public static final char POLYLINE = 59913;
+        public static final char POLYGON_O = 59914;
+        public static final char POLYGON_HOLE_O = 59915;
+        public static final char RECTANGLE_O = 59916;
+        public static final char SQUARE_O = 59917;
+        public static final char POLYGON_HOLE = 59918;
+        public static final char POLYGON = 59919;
+        public static final char RECTANGLE = 59920;
+        public static final char SQUARE = 59921;
+        public static final char CIRCLE = 59922;
+        public static final char MULTIPOINT = 59986;
+        public static final char BBOX_ALT = 60073;
+        public static final char EXTENT_ALT = 60074;
+        public static final char BBOX = 60075;
+        public static final char EXTENT = 60076;
+        public static final char MAP_EXTENT = 60080;
+        public static final char REGULAR_SHAPE_PT = 60139;
+        public static final char REGULAR_SHAPE_O = 60140;
+        public static final char REGULAR_SHAPE = 60141;
+        public static final char LAYER = 59969;
+        public static final char LAYER_O = 59970;
+        public static final char LAYERS = 59971;
+        public static final char LAYERS_O = 59972;
+        public static final char LAYER_UP = 59973;
+        public static final char LAYER_DOWN = 59974;
+        public static final char LAYER_ALT = 59975;
+        public static final char LAYER_ALT_O = 59976;
+        public static final char LAYER_STACK = 59977;
+        public static final char LAYER_STACK_O = 59978;
+        public static final char LAYER_ADD = 59979;
+        public static final char LAYER_ADD_O = 59980;
+        public static final char LAYER_RM = 59981;
+        public static final char LAYER_RM_O = 59982;
+        public static final char LAYER_POI = 60010;
+        public static final char LAYER_DOWNLOAD = 60055;
+        public static final char LAYER_UPLOAD = 60056;
+        public static final char LAYER_ROAD = 60144;
+        public static final char LAYER_HYDRO = 60145;
+        public static final char LAYER_LANDCOVER = 60146;
+        public static final char LAYER_CONTOUR = 60147;
+        public static final char LAYER_STAT = 60148;
+        public static final char LAYER_STAT_ALT = 60201;
+        public static final char LAYER_EDIT = 60205;
+        public static final char LAYER_ALT_EDIT = 60206;
+        public static final char LAYER_HEIGHT = 60225;
+        public static final char LAYER_2_ADD_O = 60230;
+        public static final char LAYER_2_RM_O = 60231;
+        public static final char LAYER_ALT_ADD_O = 60232;
+        public static final char LAYER_ALT_RM_O = 60233;
+        public static final char LAYER_ALT_X_O = 60234;
+        public static final char LAYERS_POI = 60239;
+        public static final char LAYER_ALT_POI = 60240;
+        public static final char EARTH = 59938;
+        public static final char EARTH_EURO_AFRICA = 59939;
+        public static final char EARTH_ATLANTIC = 59940;
+        public static final char EARTH_AMERICA = 59941;
+        public static final char EARTH_PACIFIC = 59942;
+        public static final char EARTH_AUSTRALIA = 59943;
+        public static final char EARTH_ASIA = 59944;
+        public static final char EARTH_NORTH = 59945;
+        public static final char EARTH_SOUTH = 59946;
+        public static final char EARTH_O = 59947;
+        public static final char EARTH_EURO_AFRICA_O = 59948;
+        public static final char EARTH_ATLANTIC_O = 59949;
+        public static final char EARTH_AMERICA_O = 59950;
+        public static final char EARTH_PACIFIC_O = 59951;
+        public static final char EARTH_AUSTRALIA_O = 59952;
+        public static final char EARTH_ASIA_O = 59953;
+        public static final char EARTH_NORTH_O = 59954;
+        public static final char EARTH_SOUTH_O = 59955;
+        public static final char GLOBE = 59958;
+        public static final char GLOBE_O = 59959;
+        public static final char GLOBE_ALT = 59960;
+        public static final char GLOBE_ALT_O = 59961;
+        public static final char GLOBE_POI = 60034;
+        public static final char NETWORK = 60091;
+        public static final char NETWORK_O = 60092;
+        public static final char TAG = 60097;
+        public static final char TAG_O = 60098;
+        public static final char TAGS = 60099;
+        public static final char TAGS_O = 60100;
+        public static final char EARTH_GEAR = 60117;
+        public static final char GLOBE_EARTH = 60152;
+        public static final char GLOBE_EARTH_ALT = 60153;
+        public static final char GLOBE_FAVORITE = 60155;
+        public static final char GLOBE_OPTIONS = 60156;
+        public static final char GLOBE_SHARE = 60157;
+        public static final char GLOBE_STAR = 60158;
+        public static final char GLOBE_SMILEY = 60159;
+        public static final char GLOBE_USER = 60172;
+        public static final char GLOBE_USERS = 60173;
+        public static final char GLOBE_SHIELD = 60174;
+        public static final char EARTH_NETWORK = 60175;
+        public static final char EARTH_NETWORK_O = 60176;
+        public static final char GLOBE_GEAR = 60177;
+        public static final char MAP = 59987;
+        public static final char MAP_O = 59988;
+        public static final char MAP_POI = 59989;
+        public static final char WORLD_MAP_ALT = 59990;
+        public static final char MAP_ROUTE = 59991;
+        public static final char ROAD_MAP = 59992;
+        public static final char CADASTRE_MAP = 59993;
+        public static final char LANDCOVER_MAP = 59994;
+        public static final char BUS_MAP = 59995;
+        public static final char CONTOUR_MAP = 59996;
+        public static final char HYDRO_MAP = 59997;
+        public static final char WORLD_MAP = 60008;
+        public static final char PIRATE_MAP = 60011;
+        public static final char STORY_MAP = 60013;
+        public static final char MAP_BOOK = 60026;
+        public static final char MAP_LEGEND = 60037;
+        public static final char MAP_LEGEND_O = 60038;
+        public static final char MAP_OPTIONS = 60052;
+        public static final char MAP_OPTIONS_ALT = 60053;
+        public static final char MAP_PRINT = 60054;
+        public static final char WORLD_MAP_ALT_O = 60081;
+        public static final char FLOW_MAP = 60082;
+        public static final char MAP_STAT = 60083;
+        public static final char STATISTIC_MAP = 60084;
+        public static final char VORONOI_MAP = 60087;
+        public static final char TRIANGLE_MAP = 60088;
+        public static final char PHONE_MAP = 60089;
+        public static final char HEX_MAP = 60090;
+        public static final char MAP_BOOKMARK = 60093;
+        public static final char MAP_TAG = 60095;
+        public static final char MAP_TAGS = 60096;
+        public static final char COMPARE_MAP = 60120;
+        public static final char SWIPE_MAP_V = 60121;
+        public static final char SWIPE_MAP_H = 60122;
+        public static final char MAGNIFY_MAP = 60123;
+        public static final char MAP_SHARE = 60128;
+        public static final char MAP_SEND = 60129;
+        public static final char MAP_SHARE_ALT = 60130;
+        public static final char MAP_ADD = 60137;
+        public static final char MAP_RM = 60138;
+        public static final char MAP_TIME = 60142;
+        public static final char TIME_MAP = 60143;
+        public static final char MAP_PLAY = 60149;
+        public static final char MAP_STAR = 60150;
+        public static final char MAP_FAVORITE = 60151;
+        public static final char MAP_SMILEY = 60160;
+        public static final char MAP_CONTROL = 60162;
+        public static final char MAP_LOCK = 60164;
+        public static final char MAP_UNLOCK = 60165;
+        public static final char WEATHER_MAP = 60171;
+        public static final char STORY_MAP_O = 60202;
+        public static final char STORY_MAPS = 60203;
+        public static final char MAP_EDIT = 60204;
+        public static final char HEIGHT_MAP = 60224;
+        public static final char MAP_USER = 60235;
+        public static final char MAP_USERS = 60236;
+        public static final char MEASURE = 59912;
+        public static final char MEASURE_LINE = 59923;
+        public static final char MEASURE_AREA = 59924;
+        public static final char MEASURE_AREA_ALT = 59925;
+        public static final char SCALE = 60161;
+        public static final char AZIMUTH = 60243;
+        public static final char HELP_LARROW = 59966;
+        public static final char HELP_RARROW = 59967;
+        public static final char HOME = 60180;
+        public static final char SATELLITE = 60218;
+        public static final char SATELLITE_EARTH = 60219;
+        public static final char DRONE = 60223;
+        public static final char POI = 59926;
+        public static final char POI_O = 59927;
+        public static final char POI_ALT = 59928;
+        public static final char POI_ALT_O = 59929;
+        public static final char PIN = 59930;
+        public static final char PUSHPIN = 59931;
+        public static final char POIS = 59932;
+        public static final char POIS_O = 59933;
+        public static final char POI_FAVORITE = 59934;
+        public static final char POI_FAVORITE_O = 59935;
+        public static final char POI_HOME = 59936;
+        public static final char POI_HOME_O = 59937;
+        public static final char POI_EARTH = 59956;
+        public static final char PIN_EARTH = 59957;
+        public static final char PIRATE_POI = 60012;
+        public static final char LOCATION_POI = 60035;
+        public static final char LOCATION_POI_O = 60036;
+        public static final char BOOKMARK_POI = 60094;
+        public static final char BOOKMARK_POI_B = 60111;
+        public static final char POI_MAP = 60118;
+        public static final char POI_MAP_O = 60119;
+        public static final char LOCATION_MAN = 60181;
+        public static final char LOCATION_MAN_ALT = 60182;
+        public static final char POI_INFO = 60188;
+        public static final char POI_INFO_O = 60189;
+        public static final char POSITION = 60194;
+        public static final char POSITION_O = 60195;
+        public static final char POSITION_MAN = 60196;
+        public static final char POI_SLASH = 60237;
+        public static final char POI_SLASH_O = 60238;
+        public static final char ROUTE = 60027;
+        public static final char ROUTE_START = 60028;
+        public static final char ROUTE_END = 60029;
+        public static final char CAR = 60030;
+        public static final char BICYCLE = 60031;
+        public static final char PEDESTRIAN = 60032;
+        public static final char HIKER = 60033;
+        public static final char LOCATION_ARROW = 60039;
+        public static final char LOCATION_ARROW_O = 60040;
+        public static final char LOCATION = 60041;
+        public static final char LOCATION_ON = 60042;
+        public static final char DIRECT = 60045;
+        public static final char REVERS = 60046;
+        public static final char TIMER = 60047;
+        public static final char SIGNPOST = 60085;
+        public static final char DIRECTION = 60086;
+        public static final char FLAG = 60101;
+        public static final char FLAG_O = 60102;
+        public static final char FLAG_START = 60103;
+        public static final char FLAG_START_O = 60104;
+        public static final char FLAG_FINISH = 60105;
+        public static final char FLAG_B = 60106;
+        public static final char FLAB_B_O = 60107;
+        public static final char FLAG_START_B = 60108;
+        public static final char FLAG_START_B_O = 60109;
+        public static final char FLAG_FINISH_B_O = 60110;
+        public static final char START = 60112;
+        public static final char START_O = 60113;
+        public static final char STEP = 60114;
+        public static final char STEP_O = 60115;
+        public static final char FINISH = 60116;
+        public static final char DIRECTIONS = 60163;
+        public static final char PHONE_ROUTE = 60168;
+        public static final char PHONE_ROUTE_ALT = 60169;
+        public static final char PHONE_ROUTE_ALT_R = 60170;
+        public static final char MAP_SEARCH = 59998;
+        public static final char SEARCH_MAP = 59999;
+        public static final char SEARCH_POI = 60000;
+        public static final char SEARCH_GLOBE = 60001;
+        public static final char SEARCH_HOME = 60002;
+        public static final char SEARCH_ADDRESS = 60003;
+        public static final char SEARCH_ATTRIBTUES = 60004;
+        public static final char SEARCH_PROPERTIE = 60005;
+        public static final char SEARCH_FEATURE = 60006;
+        public static final char SEARCH_LAYER = 60007;
+        public static final char SEARCH_COUNTRY = 60009;
+        public static final char SEARCH_GLOBE_ALT = 60154;
+        public static final char SEARCH_COORD = 60178;
+        public static final char SEARCH_DATA = 60179;
+        public static final char ZOOM_IN = 60069;
+        public static final char ZOOM_OUT = 60070;
+        public static final char FULL_SCREEN = 60071;
+        public static final char SCREEN_DUB = 60124;
+        public static final char SCREEN_SPLIT_H = 60125;
+        public static final char SCREEN_SPLIT_V = 60126;
+        public static final char SCREEN_MAG = 60127;
+        public static final char COORD_SYSTEM = 60186;
+        public static final char COORD_SYSTEM_3D = 60187;
+        public static final char COORD_SYSTEM_ALT = 60190;
+        public static final char COORD_SYSTEM_3D_ALT = 60191;
+        public static final char GRID = 60192;
+        public static final char CUBE_3D = 60193;
+        public static final char COORD_GRID = 60197;
+        public static final char PHOTOGRAMMETRY = 60220;
+        public static final char D360 = 60221;
+        public static final char TOPOGRAPHY = 60222;
+        public static final char GNSS = 60226;
+        public static final char GNSS_ANTENNA = 60227;
+        public static final char TACHEOMETER = 60228;
+        public static final char THEODOLITE = 60229;
+        public static final char PROFILE = 60241;
+        public static final char PROFILE_O = 60242;
+        public static final char SCREEN_DUB1 = 60244;
+        public static final char SCREEN_DUB2 = 60245;
+        public static final char SCREEN_DUB_O = 60246;
+        public static final char SCREEN_MAG_O = 60247;
+        public static final char SCREEN_MAG_ALT = 60248;
+    }
+}

Reply via email to