{"id":11947,"date":"2022-03-12T05:48:15","date_gmt":"2022-03-11T20:48:15","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=11947"},"modified":"2023-08-27T13:18:38","modified_gmt":"2023-08-27T04:18:38","slug":"gwc-ui-library-popupmenu","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=11947","title":{"rendered":"#GWC UI Library : PopupMenu"},"content":{"rendered":"<p>\uc6f9 UI \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 GWC\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 PopupMenu \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \ub300\ud55c \uc608\uc81c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<p>\ud070 \uc758\ubbf8\ub294 \uc5c6\uc73c\ub098 DOM \uad6c\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">\r\n<div class=\"center\">\r\n    <gwc-button id=\"button1\" title=\"\ub4e4\ub7ec\ub9ac \ubc84\ud2bc1\"><\/gwc-button>\r\n    <gwc-button id=\"button2\" title=\"\ub4e4\ub7ec\ub9ac \ubc84\ud2bc2\"><\/gwc-button>\r\n    <gwc-button id=\"button3\" title=\"\ub4e4\ub7ec\ub9ac \ubc84\ud2bc3\"><\/gwc-button>\r\n<\/div>\r\n<\/pre>\n<p>\uadf8\ub9ac\uace0 CSS \uad6c\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uad6c\uc694.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"css\">\r\n.center {\r\n    display: flex;\r\n    width: 100%;\r\n    height: 100%;\r\n    justify-content: center;\r\n    align-items: center;\r\n    gap: 1em;\r\n}\r\n<\/pre>\n<p>js \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nwindow.onload = () => {\r\n    const popupMenu = gwcCreatePopupMenu();\r\n\r\n    popupMenu.addMenuItem(\"menu1\", {\r\n        text: \"\ub179\uc74c \uc2dc\uc791\",\r\n        icon: \"images\/icon1.png\",\r\n        onClick: (menuId) => { \r\n            gwcMessage(`\ub179\uc74c \uc2dc\uc791 \ud074\ub9ad(${menuId})`);\r\n            popupMenu.hide();                \r\n        }\r\n    });\r\n\r\n    popupMenu.addMenuItem(\"menu2\", {\r\n        text: \"WiFi \ud65c\uc131\ud654\",\r\n        icon: \"images\/icon2.png\",\r\n        checked: false,\r\n        onClick: (menuId) => { \r\n            const bChecked = popupMenu.getMenuChecked(menuId);\r\n            popupMenu.setMenuChecked(menuId, !bChecked);\r\n\r\n        }\r\n    });\r\n\r\n    popupMenu.addMenuItem(\"menu3\", {\r\n        text: \"\uafc8\uafb8\uae30\",\r\n        icon: \"images\/icon3.png\",\r\n        onClick: (menuId) => { \r\n            gwcMessage(`\uc0c1\uc138\ud654\ud558\uae30(${menuId})`);\r\n            popupMenu.hide();\r\n        }\r\n    });\r\n\r\n    popupMenu.addMenuItem(\"menu4\", {\r\n        text: \"\uad6c\uccb4\ud654\ud558\uae30\",\r\n        icon: \"images\/icon4.png\",\r\n        onClick: (menuId) => { \r\n            gwcMessage(`\uad6c\uccb4\ud654\ud558\uae30(${menuId})`);\r\n            popupMenu.hide();\r\n        }\r\n    });\r\n\r\n    popupMenu.addMenuItem(\"menu5\", {\r\n        text: \"\uc2e4\ud604\ud558\uae30\",\r\n        icon: \"images\/icon5.png\",\r\n        onClick: (menuId) => { \r\n            gwcMessage(`\uc2e4\ud604\ud558\uae30(${menuId})`);\r\n            popupMenu.hide();\r\n        }\r\n    });\r\n\r\n    const popupMenuZone = document.querySelector(\".center\");\r\n    popupMenuZone.addEventListener(\"click\", (event) => {\r\n        if(popupMenu.isShown()) {\r\n            popupMenu.hide();\r\n            return;\r\n        }\r\n\r\n        if(event.target === popupMenuZone) {\r\n            \/\/ \ud31d\uc5c5\ucc3d\uc758 \ud45c\uc2dc\ub97c \uc704\ud574 \r\n            \/\/ event.currentTarget.getBoundingClientRect()\uc758 \uacb0\uacfc\uac12\uc5d0 \ub300\ud55c left, top\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\uc74c\r\n            popupMenu.show(event.offsetX, event.offsetY);\r\n        }\r\n    });\r\n};\r\n<\/pre>\n<p>\uc2e4\ud589 \uacb0\uacfc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><center><video controls=\"controls\" ><source src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2022\/01\/gwc-popupmenu.mp4\" \/>\ube44\ub514\uc624\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \uc6f9\ube0c\ub77c\uc6b0\uc838\uc785\ub2c8\ub2e4.<\/video><\/center><\/p>\n<p>PopupMenu\ub97c \ud45c\uc2dc\ud558\uae30 \uc804\uc5d0 \uc5b4\ub5a4 \uba54\ub274 \ud56d\ubaa9\uc744 \uac10\ucd94\uac70\ub098 \ub2e4\uc2dc \ud45c\uc2dc\ud574\uc57c \ud560 \ud544\uc694\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc5d0 \ub300\ud55c \uc774\ubca4\ud2b8\ub294 showing\uc778\ub370\uc694. \uc608\uc81c \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\npopupMenu.addEventListener(\"showing\", (event) => {\r\n    popupMenu.setMenuVisible(\"menu1\", true);\r\n    popupMenu.setMenuVisible(\"menu2\", false);\r\n\r\n    \/\/ event.cancel = true; -> \uc774 \ucf54\ub4dc\uac00 \uc791\ub3d9\ud558\uba74 \ud31d\uc5c5 \uba54\ub274\uac00 \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc74c\r\n});\r\n<\/pre>\n<p>gwcCreatePopupMenu\ub97c \uc751\uc6a9\ud574\uc11c \uc77c\ubc18\uc801\uc778 \uba54\ub274\ub97c \uad6c\uc131\ud560 \uc218 \uc788\ub294\ub370, \uc774\ub54c \uc11c\ube0c \uba54\ub274\uc5d0 \ub300\ud55c \uad6c\uc131\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc544\ub798\ub294 \ucf54\ub4dc \uc608\uc2dc\uacfc \uadf8 \uacb0\uacfc \uc774\ubbf8\uc9c0\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nconst menu = gwcCreatePopupMenu();\r\nconst shpCsvMenu = gwcCreatePopupMenu();\r\n\r\nshpCsvMenu.addMenuItem(\"menu-shp2csv\", {\r\n    text: \"SHP \ub370\uc774\ud130\ub97c CSV\ub85c \ubcc0\ud658\",\r\n    icon: \"images\/change.svg\",\r\n    onClick: (menuId) => {}\r\n});\r\n\r\nshpCsvMenu.addMenuItem(\"menu-xycsv2shp\", {\r\n    text: \"\uacbd\uc704\ub3c4 \uc88c\ud45c \ub370\uc774\ud130(CSV)\ub97c SHP\uc73c\ub85c \ubcc0\ud658\",\r\n    icon: \"images\/change.svg\",\r\n    onClick: (menuId) => {}\r\n});\r\n\r\nmenu.addSubMenu(\"menu-shpcsv\", shpCsvMenu, { text: \"SHP\/CSV \ubcc0\ud658\" })\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2022\/03\/sub-menu.png\" alt=\"\" width=\"1060\" height=\"453\" class=\"alignnone size-full wp-image-14008\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6f9 UI \ub77c\uc774\ube0c\ub7ec\ub9ac\uc778 GWC\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 PopupMenu \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \ub300\ud55c \uc608\uc81c \ucf54\ub4dc\uc785\ub2c8\ub2e4. \ud070 \uc758\ubbf8\ub294 \uc5c6\uc73c\ub098 DOM \uad6c\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 CSS \uad6c\uc131\uc740 \ub2e4\uc74c\uacfc \uac19\uad6c\uc694. .center { display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; gap: 1em; } js \ucf54\ub4dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. window.onload = () => { const popupMenu = gwcCreatePopupMenu(); popupMenu.addMenuItem(&#8220;menu1&#8221;, { text: &#8220;\ub179\uc74c \uc2dc\uc791&#8221;, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=11947\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;#GWC UI Library : PopupMenu&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[140],"tags":[],"class_list":["post-11947","post","type-post","status-publish","format-standard","hentry","category-gwc"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11947"}],"version-history":[{"count":8,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11947\/revisions"}],"predecessor-version":[{"id":11955,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/11947\/revisions\/11955"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11947"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}