From 393acf69614694d072d62b768d78dcb8fa71d365 Mon Sep 17 00:00:00 2001 From: xyzmaker123 Date: Wed, 8 Sep 2021 16:42:03 +0200 Subject: [PATCH 1/4] Community tab --- .../resources/i18n/displayStrings.properties | 45 ++++ desktop/src/main/java/bisq/desktop/bisq.css | 99 +++++++++ .../main/java/bisq/desktop/main/MainView.java | 4 +- .../desktop/main/community/CommunityView.fxml | 61 ++++++ .../desktop/main/community/CommunityView.java | 196 ++++++++++++++++++ .../main/community/platform/Platform.java | 34 +++ .../main/community/platform/PlatformView.fxml | 42 ++++ .../main/community/platform/PlatformView.java | 43 ++++ .../src/main/java/bisq/desktop/theme-dark.css | 3 + .../main/java/bisq/desktop/theme-light.css | 3 + 10 files changed, 529 insertions(+), 1 deletion(-) create mode 100644 desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml create mode 100644 desktop/src/main/java/bisq/desktop/main/community/CommunityView.java create mode 100644 desktop/src/main/java/bisq/desktop/main/community/platform/Platform.java create mode 100644 desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml create mode 100644 desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 0fedd67a81c..321b26254d4 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -241,6 +241,7 @@ mainView.menu.support=Support mainView.menu.settings=Settings mainView.menu.account=Account mainView.menu.dao=DAO +mainView.menu.community=Community mainView.marketPriceWithProvider.label=Market price by {0} mainView.marketPrice.bisqInternalPrice=Price of latest Bisq trade @@ -2518,6 +2519,50 @@ dao.factsAndFigures.transactions.invalidTx=No. of all invalid transactions dao.factsAndFigures.transactions.irregularTx=No. of all irregular transactions +#################################################################### +# Community +#################################################################### + +community.join.title=Join the community +community.join.description.part1=Bisq is social. Come and join our community on any of the following platforms. +community.join.description.part2=We are interested in helping make Bisq better, we'd love to hear from you! + +community.section.getInTouch.title=Get in touch with developers and get support +community.section.getInTouch.description=Keybase and Github are the top two platforms you should access for all things Bisq. You can follow along with project, suggest changes, get support. If you are using Bisq it is recommended to have a Github and Keybase account if you would live to get involved in any discussions. +community.section.ask.title=Ask questions to other users +community.section.updates.title=Get project updates +community.section.chat.title=Chat with other users +community.section.getStarted.title=Get started +community.section.documentation.title=Read documentation + +community.platform.github.title=Github +community.platform.github.description=The place to go to collaborate in the development of Bisq, raise an issue, and access any code or documentation +community.platform.keybase.title=Keybase +community.platform.keybase.description=Most active Bisq community for live support and discussion around all things Bisq. +community.platform.forum.title=Forum +community.platform.forum.description=Great place for discussion and general questions about Bisq. +community.platform.reddit.title=Reddit +community.platform.reddit.description=Get involved in the Bisq subreddit. +community.platform.twitter.title=Twitter +community.platform.twitter.description=Follow our Twitter for news and updates. +community.platform.youtube.title=Youtube +community.platform.youtube.description=Watch some great tutorial for how to use Bisq. +community.platform.mastadon.title=Mastadon +community.platform.mastadon.description=A community-owned alternative to Twitter +community.platform.blog.title=Bisq Blog +community.platform.blog.description=Read the latest news and developments from Bisq. +community.platform.markets.title=Bisq Markets +community.platform.markets.description=Follow the market trading volumes accross multiple currencies. +community.platform.telegram.title=Telegram +community.platform.telegram.description=Chat to fellow Bisq users, but beware of scammers impersonating Bisq support. +community.platform.irc.title=Freenode IRC +community.platform.irc.description=Chat to fellow Bisq users, but beware of scammers impersonating Bisq support. +community.platform.matrix.title=Matrix +community.platform.matrix.description=Chat to fellow Bisq users, but beware of scammers impersonating Bisq support. +community.platform.website.title=Bisq - Getting Started +community.platform.website.description=The Bisq website Getting Started guide has everything you need to get started with Bisq. +community.platform.wiki.title=Bisq Wiki +community.platform.wiki.description=For all guides, tutorials, and how-to's regarding using Bisq. #################################################################### # Windows diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index 8b0b830f901..321ab2614ad 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -2192,6 +2192,105 @@ textfield */ -fx-padding: 2 0 0 0; } +/******************************************************************************************************************** + * * + * Community * + * * + ********************************************************************************************************************/ +.community-tab { + -fx-background-color: -bs-content-background-gray; + -fx-padding: 30 20; +} + +.community-heading-1 { + -fx-font-weight: bold; + -fx-font-size: 1.4em; +} + +.community-heading-2 { + -fx-padding: 45 0 0 0; + -fx-font-weight: normal; + -fx-font-size: 1.4em; +} + +.community-platform-item { + -fx-padding: 20; + -fx-background-color: -fx-base; +} + +.community-platform-item:hover { + -fx-background-color: -bs-community-platform-hover; +} + +.community-platform-item-title { + -fx-font-size: 1.4em; + -fx-font-weight: 600; + -fx-text-fill: -bs-color-primary; +} + +.community-platform-item:hover .community-platform-item-title { + -fx-text-fill: -fx-dark-text-color; +} + +.community-platform-item-description { + -fx-text-fill: -bs-community-platform-description; +} + +.community-platform-item:hover .community-platform-item-description { + -fx-text-fill: -fx-dark-text-color; +} + +.community-platform-item-button { + -fx-background-color: transparent !important; + -fx-padding: 0; + -fx-cursor: hand; +} + +.community-icon { + -fx-min-width: 3.6em; + -fx-min-height: 3em; + -fx-background-color: -bs-community-platform-icon; +} + +.icon-keybase { + -fx-shape: "M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z"; +} + +.icon-mastodon { + -fx-shape: "M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"; +} + +.icon-reddit { + -fx-shape: "M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z"; +} + +.icon-telegram { + -fx-shape: "M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"; +} + +.icon-matrix { + -fx-shape: "M506.3,508.1V11.9h-35.7V0H520v520h-49.4v-11.9H506.3z M13.7,11.9v496.2h35.7V520H0V0h49.4v11.9H13.7z M166.3,169.2v25.1h0.7c6.7-9.6,14.8-17,24.2-22.2c9.4-5.3,20.3-7.9,32.5-7.9c11.7,0,22.4,2.3,32.1,6.8 c9.7,4.5,17,12.6,22.1,24c5.5-8.1,13-15.3,22.4-21.5c9.4-6.2,20.6-9.3,33.5-9.3c9.8,0,18.9,1.2,27.3,3.6c8.4,2.4,15.5,6.2,21.5,11.5 c6,5.3,10.6,12.1,14,20.6c3.3,8.5,5,18.7,5,30.7v124.1h-50.9V249.6c0-6.2-0.2-12.1-0.7-17.6c-0.5-5.5-1.8-10.3-3.9-14.3 c-2.2-4.1-5.3-7.3-9.5-9.7c-4.2-2.4-9.9-3.6-17-3.6c-7.2,0-13,1.4-17.4,4.1c-4.4,2.8-7.9,6.3-10.4,10.8c-2.5,4.4-4.2,9.4-5,15.1 c-0.8,5.6-1.3,11.3-1.3,17v103.3h-50.9v-104c0-5.5-0.1-10.9-0.4-16.3c-0.2-5.4-1.3-10.3-3.1-14.9c-1.8-4.5-4.8-8.2-9-10.9 c-4.2-2.7-10.3-4.1-18.5-4.1c-2.4,0-5.6,0.5-9.5,1.6c-3.9,1.1-7.8,3.1-11.5,6.1c-3.7,3-6.9,7.3-9.5,12.9c-2.6,5.6-3.9,13-3.9,22.1 v107.6h-50.9V169.2H166.3z"; +} + +.icon-github { + -fx-shape: "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"; +} + +.icon-forum { + -fx-shape: "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"; +} + +.icon-twitter { + -fx-shape: "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"; +} + +.icon-youtube { + -fx-shape: "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"; +} + +.icon-globe { + -fx-shape: "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z" +} /******************************************************************************************************************** * * * News * diff --git a/desktop/src/main/java/bisq/desktop/main/MainView.java b/desktop/src/main/java/bisq/desktop/main/MainView.java index 9b3f23ab903..d5f8c68ea63 100644 --- a/desktop/src/main/java/bisq/desktop/main/MainView.java +++ b/desktop/src/main/java/bisq/desktop/main/MainView.java @@ -28,6 +28,7 @@ import bisq.desktop.components.AutoTooltipToggleButton; import bisq.desktop.components.BusyAnimation; import bisq.desktop.main.account.AccountView; +import bisq.desktop.main.community.CommunityView; import bisq.desktop.main.dao.DaoView; import bisq.desktop.main.funds.FundsView; import bisq.desktop.main.market.MarketView; @@ -186,6 +187,7 @@ protected void initialize() { ToggleButton settingsButton = new NavButton(SettingsView.class, Res.get("mainView.menu.settings")); ToggleButton accountButton = new NavButton(AccountView.class, Res.get("mainView.menu.account")); ToggleButton daoButton = new NavButton(DaoView.class, Res.get("mainView.menu.dao")); + ToggleButton communityButton = new NavButton(CommunityView.class, Res.get("mainView.menu.community")); JFXBadge portfolioButtonWithBadge = new JFXBadge(portfolioButton); JFXBadge supportButtonWithBadge = new JFXBadge(supportButton); @@ -321,7 +323,7 @@ protected Tooltip computeValue() { HBox.setHgrow(primaryNav, Priority.SOMETIMES); HBox secondaryNav = new HBox(supportButtonWithBadge, getNavigationSpacer(), settingsButtonWithBadge, - getNavigationSpacer(), accountButton, getNavigationSpacer(), daoButton); + getNavigationSpacer(), accountButton, getNavigationSpacer(), daoButton, getNavigationSpacer(), communityButton); secondaryNav.getStyleClass().add("nav-secondary"); HBox.setHgrow(secondaryNav, Priority.SOMETIMES); diff --git a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml new file mode 100644 index 00000000000..9ec5262d651 --- /dev/null +++ b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + diff --git a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java new file mode 100644 index 00000000000..921764b595e --- /dev/null +++ b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java @@ -0,0 +1,196 @@ +package bisq.desktop.main.community; + +import bisq.desktop.common.view.FxmlView; +import bisq.desktop.common.view.InitializableView; +import bisq.desktop.common.view.ViewLoader; +import bisq.desktop.main.community.platform.Platform; +import bisq.desktop.main.community.platform.PlatformView; + +import bisq.core.locale.Res; + +import javax.inject.Inject; + +import javafx.fxml.FXML; + +import javafx.scene.control.Label; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; + +import java.util.HashMap; +import java.util.Map; + +@FxmlView +public class CommunityView extends InitializableView { + @FXML + Label joinTitle, + joinDescription1, + joinDescription2, + getInTouchTitle, + getInTouchDescription, + askTitle, + updatesTitle, + chatTitle, + getStartedTitle, + documentationTitle; + + @FXML + HBox getInTouchBox, askBox, updatesBox1, updatesBox2, chatBox, getStartedBox, documentationBox; + + private final ViewLoader viewLoader; + + private final Map PLATFORMS = new HashMap<>() {{ + put("github", + new Platform( + Res.get("community.platform.github.title"), + Res.get("community.platform.github.description"), + "https://github.com/bisq-network", + "icon-github" + ) + ); + put("keybase", + new Platform( + Res.get("community.platform.keybase.title"), + Res.get("community.platform.keybase.description"), + "https://keybase.io/team/bisq", + "icon-keybase" + ) + ); + put("forum", + new Platform( + Res.get("community.platform.forum.title"), + Res.get("community.platform.forum.description"), + "https://bisq.community/", + "icon-forum" + ) + ); + put("reddit", + new Platform( + Res.get("community.platform.reddit.title"), + Res.get("community.platform.reddit.description"), + "https://reddit.com/r/bisq", + "icon-reddit" + ) + ); + put("twitter", + new Platform( + Res.get("community.platform.twitter.title"), + Res.get("community.platform.twitter.description"), + "https://twitter.com/bisq_network/", + "icon-twitter" + ) + ); + put("youtube", + new Platform( + Res.get("community.platform.youtube.title"), + Res.get("community.platform.youtube.description"), + "https://youtube.com/c/bisq-network", + "icon-youtube" + ) + ); + put("mastadon", + new Platform( + Res.get("community.platform.mastadon.title"), + Res.get("community.platform.mastadon.description"), + "https://bitcoinhackers.org/@bisq", + "icon-mastodon" + ) + ); + put("blog", + new Platform( + Res.get("community.platform.blog.title"), + Res.get("community.platform.blog.description"), + "https://bisq.network/blog" + ) + ); + put("markets", + new Platform( + Res.get("community.platform.markets.title"), + Res.get("community.platform.markets.description"), + "https://bisq.network/markets" + ) + ); + put("telegram", + new Platform( + Res.get("community.platform.telegram.title"), + Res.get("community.platform.telegram.description"), + "https://t.me/bisq_p2p", + "icon-telegram" + ) + ); + put("irc", + new Platform( + Res.get("community.platform.irc.title"), + Res.get("community.platform.irc.description"), + "https://webchat.freenode.net/?channels=bisq", + "icon-globe" + ) + ); + put("matrix", + new Platform( + Res.get("community.platform.matrix.title"), + Res.get("community.platform.matrix.description"), + "https://matrix.to/#/#freenode_#bisq:matrix.org", + "icon-matrix" + ) + ); + put("website", + new Platform( + Res.get("community.platform.website.title"), + Res.get("community.platform.website.description"), + "https://bisq.network/" + ) + ); + put("wiki", + new Platform( + Res.get("community.platform.wiki.title"), + Res.get("community.platform.wiki.description"), + "https://bisq.wiki/" + ) + ); + }}; + + @Inject + public CommunityView(ViewLoader viewLoader) { + this.viewLoader = viewLoader; + } + + @Override + public void initialize() { + joinTitle.setText(Res.get("community.join.title")); + joinDescription1.setText(Res.get("community.join.description.part1")); + joinDescription2.setText(Res.get("community.join.description.part2")); + + getInTouchTitle.setText(Res.get("community.section.getInTouch.title")); + getInTouchDescription.setText(Res.get("community.section.getInTouch.description")); + addPlatform(getInTouchBox, PLATFORMS.get("github"), true); + addPlatform(getInTouchBox, PLATFORMS.get("keybase"), true); + + askTitle.setText(Res.get("community.section.ask.title")); + addPlatform(askBox, PLATFORMS.get("forum"), false); + addPlatform(askBox, PLATFORMS.get("reddit"), false); + + updatesTitle.setText(Res.get("community.section.updates.title")); + addPlatform(updatesBox1, PLATFORMS.get("twitter"), false); + addPlatform(updatesBox1, PLATFORMS.get("youtube"), false); + addPlatform(updatesBox1, PLATFORMS.get("mastadon"), false); + addPlatform(updatesBox2, PLATFORMS.get("blog"), false); + addPlatform(updatesBox2, PLATFORMS.get("markets"), false); + + chatTitle.setText(Res.get("community.section.chat.title")); + addPlatform(chatBox, PLATFORMS.get("telegram"), false); + addPlatform(chatBox, PLATFORMS.get("irc"), false); + addPlatform(chatBox, PLATFORMS.get("matrix"), false); + + getStartedTitle.setText(Res.get("community.section.getStarted.title")); + addPlatform(getStartedBox, PLATFORMS.get("website"), false); + + documentationTitle.setText(Res.get("community.section.documentation.title")); + addPlatform(documentationBox, PLATFORMS.get("wiki"), false); + } + + private void addPlatform(HBox box, Platform platform, boolean wider) { + PlatformView platformView = (PlatformView) viewLoader.load(PlatformView.class); + platformView.setData(platform, wider); + box.getChildren().add(platformView.getRoot()); + } +} diff --git a/desktop/src/main/java/bisq/desktop/main/community/platform/Platform.java b/desktop/src/main/java/bisq/desktop/main/community/platform/Platform.java new file mode 100644 index 00000000000..6d3db033590 --- /dev/null +++ b/desktop/src/main/java/bisq/desktop/main/community/platform/Platform.java @@ -0,0 +1,34 @@ +package bisq.desktop.main.community.platform; + +public class Platform { + private final String title; + private final String description; + private final String url; + private final String iconClass; + + public Platform(String title, String description, String url, String iconClass) { + this.title = title; + this.description = description; + this.iconClass = iconClass; + this.url = url; + } + public Platform(String title, String description, String url) { + this(title, description, url, null); + } + + public String getTitle() { + return title; + } + + public String getDescription() { + return description; + } + + public String getUrl() { + return url; + } + + public String getIconClass() { + return iconClass; + } +} diff --git a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml new file mode 100644 index 00000000000..40286aecaaa --- /dev/null +++ b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml @@ -0,0 +1,42 @@ + + + + + + + + + + + + diff --git a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java new file mode 100644 index 00000000000..2783379e990 --- /dev/null +++ b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java @@ -0,0 +1,43 @@ +package bisq.desktop.main.community.platform; + +import bisq.desktop.common.view.AbstractView; +import bisq.desktop.common.view.FxmlView; +import bisq.desktop.util.FormBuilder; +import bisq.desktop.util.GUIUtil; + +import bisq.common.util.Utilities; + +import de.jensd.fx.fontawesome.AwesomeIcon; + +import com.jfoenix.controls.JFXButton; + +import javafx.fxml.FXML; + +import javafx.scene.control.Label; +import javafx.scene.layout.HBox; + +@FxmlView +public class PlatformView extends AbstractView { + + @FXML + Label imageLabel, titleLabel, descriptionLabel; + + @FXML + JFXButton openURLButton, copyURLButton; + + public void setData(Platform platform, boolean wider) { + if (platform.getIconClass() != null) { + getRoot().setSpacing(15.0); + imageLabel.getStyleClass().addAll("community-icon", platform.getIconClass()); + } + titleLabel.setText(platform.getTitle()); + descriptionLabel.setText(platform.getDescription()); + openURLButton.setText("Open URL"); // TODO: move to translations + openURLButton.setGraphic(FormBuilder.getIcon(AwesomeIcon.EXTERNAL_LINK)); + openURLButton.setOnAction((event) -> GUIUtil.openWebPage(platform.getUrl(), false)); + copyURLButton.setText("Copy URL"); // TODO: move to translations + copyURLButton.setGraphic(FormBuilder.getIcon(AwesomeIcon.COPY)); + copyURLButton.setOnAction((event) -> Utilities.copyToClipboard(platform.getUrl())); + getRoot().setPrefWidth(wider ? 600 : 450); + } +} diff --git a/desktop/src/main/java/bisq/desktop/theme-dark.css b/desktop/src/main/java/bisq/desktop/theme-dark.css index 642d99775b5..e46fabbeff7 100644 --- a/desktop/src/main/java/bisq/desktop/theme-dark.css +++ b/desktop/src/main/java/bisq/desktop/theme-dark.css @@ -137,6 +137,9 @@ -bs-decimals: #db6300; -bs-soft-red: #aa4c3b; -bs-turquoise-light: #11eeee; + -bs-community-platform-icon: -fx-light-text-color; + -bs-community-platform-description: -bs-color-gray-4; + -bs-community-platform-hover: #2ea33c; /* dao chart colors */ -bs-chart-dao-line1: -bs-color-blue-5; diff --git a/desktop/src/main/java/bisq/desktop/theme-light.css b/desktop/src/main/java/bisq/desktop/theme-light.css index 4688387ddf6..543f9b4cccb 100644 --- a/desktop/src/main/java/bisq/desktop/theme-light.css +++ b/desktop/src/main/java/bisq/desktop/theme-light.css @@ -104,6 +104,9 @@ -bs-prompt-text: -fx-control-inner-background; -bs-soft-red: #aa4c3b; -bs-turquoise-light: #11eeee; + -bs-community-platform-icon: -fx-dark-text-color; + -bs-community-platform-description: -fx-dark-text-color; + -bs-community-platform-hover: -bs-color-gray-2; /* dao chart colors */ -bs-chart-dao-line1: -bs-color-blue-5; From 7f2c01e02d3e2e04a613ec008ca4a7fe9d559253 Mon Sep 17 00:00:00 2001 From: xyzmaker123 Date: Wed, 15 Sep 2021 17:19:23 +0200 Subject: [PATCH 2/4] Community tab - use AutoTooltip components, define elements in java instead fxml --- .../resources/i18n/displayStrings.properties | 2 + desktop/src/main/java/bisq/desktop/bisq.css | 2 +- .../desktop/main/community/CommunityView.fxml | 30 +----- .../desktop/main/community/CommunityView.java | 101 ++++++++++-------- .../main/community/platform/PlatformView.fxml | 16 +-- .../main/community/platform/PlatformView.java | 52 +++++---- 6 files changed, 96 insertions(+), 107 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 321b26254d4..417a149bb49 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -222,6 +222,8 @@ shared.unconfirmedTransactionsLimitReached=You have too many unconfirmed transac shared.numItemsLabel=Number of entries: {0} shared.filter=Filter shared.enabled=Enabled +shared.openUrl=Open URL +shared.copyUrl=Copy URL #################################################################### diff --git a/desktop/src/main/java/bisq/desktop/bisq.css b/desktop/src/main/java/bisq/desktop/bisq.css index 321ab2614ad..00db9f9c392 100644 --- a/desktop/src/main/java/bisq/desktop/bisq.css +++ b/desktop/src/main/java/bisq/desktop/bisq.css @@ -2289,7 +2289,7 @@ textfield */ } .icon-globe { - -fx-shape: "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z" + -fx-shape: "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"; } /******************************************************************************************************************** * * diff --git a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml index 9ec5262d651..c3b29825e55 100644 --- a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml +++ b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.fxml @@ -17,11 +17,9 @@ ~ along with Bisq. If not, see . --> - - - + - - + diff --git a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java index 921764b595e..72913cb01fd 100644 --- a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java +++ b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java @@ -3,6 +3,7 @@ import bisq.desktop.common.view.FxmlView; import bisq.desktop.common.view.InitializableView; import bisq.desktop.common.view.ViewLoader; +import bisq.desktop.components.AutoTooltipLabel; import bisq.desktop.main.community.platform.Platform; import bisq.desktop.main.community.platform.PlatformView; @@ -12,29 +13,21 @@ import javafx.fxml.FXML; -import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; @FxmlView -public class CommunityView extends InitializableView { - @FXML - Label joinTitle, - joinDescription1, - joinDescription2, - getInTouchTitle, - getInTouchDescription, - askTitle, - updatesTitle, - chatTitle, - getStartedTitle, - documentationTitle; +public class CommunityView extends InitializableView { @FXML - HBox getInTouchBox, askBox, updatesBox1, updatesBox2, chatBox, getStartedBox, documentationBox; + VBox content; private final ViewLoader viewLoader; @@ -156,36 +149,40 @@ public CommunityView(ViewLoader viewLoader) { @Override public void initialize() { - joinTitle.setText(Res.get("community.join.title")); - joinDescription1.setText(Res.get("community.join.description.part1")); - joinDescription2.setText(Res.get("community.join.description.part2")); - - getInTouchTitle.setText(Res.get("community.section.getInTouch.title")); - getInTouchDescription.setText(Res.get("community.section.getInTouch.description")); - addPlatform(getInTouchBox, PLATFORMS.get("github"), true); - addPlatform(getInTouchBox, PLATFORMS.get("keybase"), true); - - askTitle.setText(Res.get("community.section.ask.title")); - addPlatform(askBox, PLATFORMS.get("forum"), false); - addPlatform(askBox, PLATFORMS.get("reddit"), false); - - updatesTitle.setText(Res.get("community.section.updates.title")); - addPlatform(updatesBox1, PLATFORMS.get("twitter"), false); - addPlatform(updatesBox1, PLATFORMS.get("youtube"), false); - addPlatform(updatesBox1, PLATFORMS.get("mastadon"), false); - addPlatform(updatesBox2, PLATFORMS.get("blog"), false); - addPlatform(updatesBox2, PLATFORMS.get("markets"), false); - - chatTitle.setText(Res.get("community.section.chat.title")); - addPlatform(chatBox, PLATFORMS.get("telegram"), false); - addPlatform(chatBox, PLATFORMS.get("irc"), false); - addPlatform(chatBox, PLATFORMS.get("matrix"), false); - - getStartedTitle.setText(Res.get("community.section.getStarted.title")); - addPlatform(getStartedBox, PLATFORMS.get("website"), false); - - documentationTitle.setText(Res.get("community.section.documentation.title")); - addPlatform(documentationBox, PLATFORMS.get("wiki"), false); + addLabel(content, Res.get("community.join.title"), "community-heading-1"); + addLabel(content, Res.get("community.join.description.part1")); + addLabel(content, Res.get("community.join.description.part2")); + + addSectionLabel(content, Res.get("community.section.getInTouch.title")); + addLabel(content, Res.get("community.section.getInTouch.description")); + addPlatformsBox(content, Arrays.asList("github", "keybase"), true); + + addSectionLabel(content, Res.get("community.section.ask.title")); + addPlatformsBox(content, Arrays.asList("forum", "reddit")); + + addSectionLabel(content, Res.get("community.section.updates.title")); + addPlatformsBox(content, Arrays.asList("twitter", "youtube", "mastadon")); + addPlatformsBox(content, Arrays.asList("blog", "markets")); + + addSectionLabel(content, Res.get("community.section.chat.title")); + addPlatformsBox(content, Arrays.asList("telegram", "irc", "matrix")); + + addSectionLabel(content, Res.get("community.section.getStarted.title")); + addPlatformsBox(content, Arrays.asList("website")); + + addSectionLabel(content, Res.get("community.section.documentation.title")); + addPlatformsBox(content, Arrays.asList("wiki")); + } + + private void addPlatformsBox(VBox content, List slugs, boolean wider) { + HBox platformsBox = new HBox(); + platformsBox.setSpacing(20); + slugs.forEach(slug -> addPlatform(platformsBox, PLATFORMS.get(slug), wider)); + content.getChildren().add(platformsBox); + } + + private void addPlatformsBox(VBox content, List slugs) { + addPlatformsBox(content, slugs, false); } private void addPlatform(HBox box, Platform platform, boolean wider) { @@ -193,4 +190,20 @@ private void addPlatform(HBox box, Platform platform, boolean wider) { platformView.setData(platform, wider); box.getChildren().add(platformView.getRoot()); } + + private void addLabel(Pane pane, String message, String styleClass) { + AutoTooltipLabel label = new AutoTooltipLabel(message); + if (styleClass != null) { + label.getStyleClass().add(styleClass); + } + pane.getChildren().add(label); + } + + private void addLabel(Pane pane, String message) { + addLabel(pane, message, null); + } + + private void addSectionLabel(Pane pane, String message) { + addLabel(pane, message, "community-heading-2"); + } } diff --git a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml index 40286aecaaa..a3f1fcb9649 100644 --- a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml +++ b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.fxml @@ -17,26 +17,12 @@ ~ along with Bisq. If not, see . --> - - - - - +/> diff --git a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java index 2783379e990..e7f929c4abf 100644 --- a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java +++ b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java @@ -2,42 +2,56 @@ import bisq.desktop.common.view.AbstractView; import bisq.desktop.common.view.FxmlView; +import bisq.desktop.components.AutoTooltipButton; +import bisq.desktop.components.AutoTooltipLabel; import bisq.desktop.util.FormBuilder; import bisq.desktop.util.GUIUtil; +import bisq.core.locale.Res; + import bisq.common.util.Utilities; import de.jensd.fx.fontawesome.AwesomeIcon; -import com.jfoenix.controls.JFXButton; - -import javafx.fxml.FXML; - -import javafx.scene.control.Label; import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; @FxmlView public class PlatformView extends AbstractView { - - @FXML - Label imageLabel, titleLabel, descriptionLabel; - - @FXML - JFXButton openURLButton, copyURLButton; - public void setData(Platform platform, boolean wider) { + getRoot().setPrefWidth(wider ? 600 : 450); if (platform.getIconClass() != null) { getRoot().setSpacing(15.0); + AutoTooltipLabel imageLabel = new AutoTooltipLabel(); imageLabel.getStyleClass().addAll("community-icon", platform.getIconClass()); + getRoot().getChildren().add(imageLabel); } - titleLabel.setText(platform.getTitle()); - descriptionLabel.setText(platform.getDescription()); - openURLButton.setText("Open URL"); // TODO: move to translations - openURLButton.setGraphic(FormBuilder.getIcon(AwesomeIcon.EXTERNAL_LINK)); + + VBox box = new VBox(); + box.setSpacing(15); + getRoot().getChildren().add(box); + + AutoTooltipLabel titleLabel = new AutoTooltipLabel(platform.getTitle()); + titleLabel.getStyleClass().add("community-platform-item-title"); + box.getChildren().add(titleLabel); + + AutoTooltipLabel descriptionLabel = new AutoTooltipLabel(platform.getDescription()); + descriptionLabel.getStyleClass().add("community-platform-item-description"); + descriptionLabel.setWrapText(true); + box.getChildren().add(descriptionLabel); + + HBox hbox = new HBox(); + hbox.setSpacing(50); + box.getChildren().add(hbox); + + AutoTooltipButton openURLButton = new AutoTooltipButton(Res.get("shared.openUrl"), FormBuilder.getIcon(AwesomeIcon.EXTERNAL_LINK)); openURLButton.setOnAction((event) -> GUIUtil.openWebPage(platform.getUrl(), false)); - copyURLButton.setText("Copy URL"); // TODO: move to translations - copyURLButton.setGraphic(FormBuilder.getIcon(AwesomeIcon.COPY)); + openURLButton.getStyleClass().add("community-platform-item-button"); + hbox.getChildren().add(openURLButton); + + AutoTooltipButton copyURLButton = new AutoTooltipButton(Res.get("shared.copyUrl"), FormBuilder.getIcon(AwesomeIcon.COPY)); copyURLButton.setOnAction((event) -> Utilities.copyToClipboard(platform.getUrl())); - getRoot().setPrefWidth(wider ? 600 : 450); + copyURLButton.getStyleClass().add("community-platform-item-button"); + hbox.getChildren().add(copyURLButton); } } From 8859a523ecbc6568c7f414b6b3da8818471c8684 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Mon, 27 Sep 2021 10:30:45 +0200 Subject: [PATCH 3/4] Add license headers and do a minor cleanup --- .../desktop/main/community/CommunityView.java | 21 +++++++++++++++++-- .../main/community/platform/PlatformView.java | 17 +++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java index 72913cb01fd..2ccc7ba59aa 100644 --- a/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java +++ b/desktop/src/main/java/bisq/desktop/main/community/CommunityView.java @@ -1,3 +1,20 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + package bisq.desktop.main.community; import bisq.desktop.common.view.FxmlView; @@ -168,10 +185,10 @@ public void initialize() { addPlatformsBox(content, Arrays.asList("telegram", "irc", "matrix")); addSectionLabel(content, Res.get("community.section.getStarted.title")); - addPlatformsBox(content, Arrays.asList("website")); + addPlatformsBox(content, List.of("website")); addSectionLabel(content, Res.get("community.section.documentation.title")); - addPlatformsBox(content, Arrays.asList("wiki")); + addPlatformsBox(content, List.of("wiki")); } private void addPlatformsBox(VBox content, List slugs, boolean wider) { diff --git a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java index e7f929c4abf..df2faf9bc3a 100644 --- a/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java +++ b/desktop/src/main/java/bisq/desktop/main/community/platform/PlatformView.java @@ -1,3 +1,20 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + package bisq.desktop.main.community.platform; import bisq.desktop.common.view.AbstractView; From eef3e5480c483e0da7fd730816c2d7af1e6032af Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Mon, 27 Sep 2021 10:48:43 +0200 Subject: [PATCH 4/4] Increase initial window width to 1240 --- desktop/src/main/java/bisq/desktop/util/Layout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/util/Layout.java b/desktop/src/main/java/bisq/desktop/util/Layout.java index 76a751a6c59..1db41ecb1d9 100644 --- a/desktop/src/main/java/bisq/desktop/util/Layout.java +++ b/desktop/src/main/java/bisq/desktop/util/Layout.java @@ -18,7 +18,7 @@ package bisq.desktop.util; public class Layout { - public static final double INITIAL_WINDOW_WIDTH = 1200; + public static final double INITIAL_WINDOW_WIDTH = 1240; public static final double INITIAL_WINDOW_HEIGHT = 710; //740 public static final double MIN_WINDOW_WIDTH = 1020; public static final double MIN_WINDOW_HEIGHT = 620;