├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── lib
├── alloy-skin-1.4.4.jar
├── jcalendar-1.3.4.200905090658.jar
├── jdesktop-swing-worker-1.2.jar
├── jdesktop-swingx-1.0.jar
├── jide-oss-2.9.7.jar
├── l2fprod-common-all-7.3.jar
├── nepxion-cots-1.0.0.jar
├── nepxion-swing-1.0.0.jar
├── nepxion-util-1.0.0.jar
├── twaver-3.7.jar
├── twaver-gis-3.7.jar
└── twaver-layouter-3.7.jar
├── pom.xml
└── src
├── assembly
├── dist.xml
├── startup.bat
└── startup.sh
└── main
├── java
└── com
│ └── nepxion
│ └── discovery
│ └── console
│ ├── cache
│ └── ConsoleCache.java
│ ├── controller
│ ├── ConsoleController.java
│ └── ConsoleInterceptor.java
│ ├── desktop
│ ├── ConsoleFrame.java
│ ├── ConsoleHierarchy.java
│ ├── ConsoleInitializer.java
│ ├── ConsoleLauncher.java
│ ├── ConsoleLogin.java
│ ├── common
│ │ ├── component
│ │ │ ├── AbstractConsoleHierarchy.java
│ │ │ └── AbstractConsoleLogin.java
│ │ ├── context
│ │ │ ├── ConsoleBannerContext.java
│ │ │ ├── ConsoleConstant.java
│ │ │ ├── ConsoleDataContext.java
│ │ │ ├── ConsolePropertiesContext.java
│ │ │ └── ConsoleUIContext.java
│ │ ├── icon
│ │ │ └── ConsoleIconFactory.java
│ │ ├── locale
│ │ │ └── ConsoleLocaleFactory.java
│ │ ├── swing
│ │ │ ├── dialog
│ │ │ │ └── JExceptionDialog.java
│ │ │ └── lookandfeel
│ │ │ │ └── LookAndFeelManager.java
│ │ └── util
│ │ │ ├── BorderUtil.java
│ │ │ ├── ButtonUtil.java
│ │ │ ├── ComboBoxUtil.java
│ │ │ ├── DimensionUtil.java
│ │ │ ├── ListUtil.java
│ │ │ └── TextFieldUtil.java
│ └── workspace
│ │ ├── AbstractReleaseTopology.java
│ │ ├── AbstractStrategyTopology.java
│ │ ├── AbstractTopology.java
│ │ ├── BlueGreenTopology.java
│ │ ├── GrayTopology.java
│ │ ├── InspectorTopology.java
│ │ ├── panel
│ │ ├── BlueGreenConditionPanel.java
│ │ ├── BlueGreenCreatePanel.java
│ │ ├── CacheSetPanel.java
│ │ ├── CreatePanel.java
│ │ ├── GrayCreatePanel.java
│ │ ├── InspectorConditionPanel.java
│ │ ├── InspectorConfirmPanel.java
│ │ ├── InspectorParameterPanel.java
│ │ ├── LayouterSetPanel.java
│ │ ├── MultiPreviewPanel.java
│ │ ├── OpenPanel.java
│ │ ├── PreviewPanel.java
│ │ ├── ResetPanel.java
│ │ ├── SetManagePanel.java
│ │ ├── SetPanel.java
│ │ ├── StrategyCreatePanel.java
│ │ └── SubscriptionPanel.java
│ │ ├── processor
│ │ ├── AbstractReleaseProcessor.java
│ │ ├── ReleaseProcessor.java
│ │ ├── ReleaseProcessorFactory.java
│ │ ├── ReleaseProcessorUtil.java
│ │ └── strategy
│ │ │ ├── AbstractStrategyReleaseProcessor.java
│ │ │ ├── BlueGreenStrategyReleaseProcessor.java
│ │ │ ├── GrayStrategyReleaseProcessor.java
│ │ │ └── StrategyReleaseProcessor.java
│ │ ├── topology
│ │ ├── BasicTopology.java
│ │ ├── LinkUI.java
│ │ ├── NodeImageType.java
│ │ ├── NodeLocation.java
│ │ ├── NodeSizeType.java
│ │ └── NodeUI.java
│ │ └── type
│ │ ├── AuthorityType.java
│ │ ├── DimensionType.java
│ │ ├── FeatureType.java
│ │ ├── ProtocolType.java
│ │ ├── ReleaseType.java
│ │ ├── SetType.java
│ │ ├── StrategyType.java
│ │ └── TypeLocale.java
│ └── entity
│ └── Instance.java
└── resources
├── com
└── nepxion
│ └── discovery
│ └── console
│ └── desktop
│ └── common
│ ├── icon
│ ├── load
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 13.png
│ │ ├── 14.png
│ │ ├── 15.png
│ │ ├── 16.png
│ │ ├── 17.png
│ │ ├── 18.png
│ │ ├── 19.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 8.png
│ │ └── 9.png
│ ├── logo.png
│ ├── navigator
│ │ ├── flat
│ │ │ ├── close_16.png
│ │ │ ├── close_24.png
│ │ │ ├── close_32.png
│ │ │ ├── open_favorite_16.png
│ │ │ ├── open_favorite_24.png
│ │ │ └── open_favorite_32.png
│ │ └── stereo
│ │ │ ├── close_16.png
│ │ │ ├── close_20.png
│ │ │ ├── close_24.png
│ │ │ ├── close_32.png
│ │ │ ├── close_48.png
│ │ │ ├── open_16.png
│ │ │ ├── open_20.png
│ │ │ ├── open_24.png
│ │ │ ├── open_32.png
│ │ │ ├── open_48.png
│ │ │ ├── open_favorite_16.png
│ │ │ ├── open_favorite_20.png
│ │ │ ├── open_favorite_24.png
│ │ │ ├── open_favorite_32.png
│ │ │ ├── open_favorite_48.png
│ │ │ └── plus
│ │ │ ├── close.ico
│ │ │ ├── open.ico
│ │ │ └── open_favorite.ico
│ ├── outlook
│ │ └── stereo
│ │ │ ├── authority_discovery.png
│ │ │ ├── authority_other.png
│ │ │ ├── authority_register.png
│ │ │ ├── authority_strategy.png
│ │ │ ├── blacklist.png
│ │ │ ├── blue_green.png
│ │ │ ├── blue_green_1.png
│ │ │ ├── blue_green_2.png
│ │ │ ├── database_blue_green.png
│ │ │ ├── gray.png
│ │ │ ├── gray_1.png
│ │ │ ├── gray_2.png
│ │ │ ├── inspector.png
│ │ │ ├── inspector_1.png
│ │ │ ├── message_queue_blue_green.png
│ │ │ └── plus
│ │ │ ├── authority_discovery.png
│ │ │ ├── authority_other.png
│ │ │ ├── authority_register.png
│ │ │ ├── authority_strategy.png
│ │ │ ├── blacklist.png
│ │ │ ├── blue_green.ico
│ │ │ ├── blue_green_1.png
│ │ │ ├── blue_green_2.ico
│ │ │ ├── database_blue_green.png
│ │ │ ├── gray.png
│ │ │ ├── gray_1.ico
│ │ │ ├── gray_1.png
│ │ │ ├── gray_2.png
│ │ │ ├── inspector.png
│ │ │ ├── inspector_1.png
│ │ │ └── message_queue_blue_green.png
│ ├── selector.png
│ └── topology
│ │ ├── gateway_black_32.png
│ │ ├── gateway_black_48.png
│ │ ├── gateway_black_64.png
│ │ ├── gateway_blue_32.png
│ │ ├── gateway_blue_48.png
│ │ ├── gateway_blue_64.png
│ │ ├── gateway_gray_32.png
│ │ ├── gateway_gray_48.png
│ │ ├── gateway_gray_64.png
│ │ ├── gateway_green_32.png
│ │ ├── gateway_green_48.png
│ │ ├── gateway_green_64.png
│ │ ├── gateway_group_32.png
│ │ ├── gateway_group_48.png
│ │ ├── gateway_group_64.png
│ │ ├── gateway_group_80.png
│ │ ├── gateway_orange_32.png
│ │ ├── gateway_orange_48.png
│ │ ├── gateway_orange_64.png
│ │ ├── gateway_yellow_32.png
│ │ ├── gateway_yellow_48.png
│ │ ├── gateway_yellow_64.png
│ │ ├── service_black_32.png
│ │ ├── service_black_48.png
│ │ ├── service_black_64.png
│ │ ├── service_blue_32.png
│ │ ├── service_blue_48.png
│ │ ├── service_blue_64.png
│ │ ├── service_gray_32.png
│ │ ├── service_gray_48.png
│ │ ├── service_gray_64.png
│ │ ├── service_green_32.png
│ │ ├── service_green_48.png
│ │ ├── service_green_64.png
│ │ ├── service_group_32.png
│ │ ├── service_group_48.png
│ │ ├── service_group_64.png
│ │ ├── service_group_80.png
│ │ ├── service_orange_32.png
│ │ ├── service_orange_48.png
│ │ ├── service_orange_64.png
│ │ ├── service_yellow_32.png
│ │ ├── service_yellow_48.png
│ │ ├── service_yellow_64.png
│ │ └── svg
│ │ ├── gateway_black.svg
│ │ ├── gateway_blue.svg
│ │ ├── gateway_gray.svg
│ │ ├── gateway_green.svg
│ │ ├── gateway_orange.svg
│ │ ├── gateway_yellow.svg
│ │ ├── service_black.svg
│ │ ├── service_blue.svg
│ │ ├── service_gray.svg
│ │ ├── service_green.svg
│ │ ├── service_orange.svg
│ │ └── service_yellow.svg
│ └── locale
│ ├── Locale.bat
│ ├── Locale.properties
│ ├── Locale_en_US.properties
│ └── Locale_zh_CN.properties
├── config
└── console.properties
└── logback.xml
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Declare files that will always have UNIX line endings on checkout.
2 | *.sh text eol=lf
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled class file
2 | *.class
3 | .classpath
4 | .springBeans
5 | .factorypath
6 | # Mobile Tools for Java (J2ME)
7 | .mtj.tmp/
8 |
9 | *.class
10 | *.classpath
11 | *.project
12 | *.springBeans
13 | bin/
14 | log/
15 | test-output/
16 |
17 | # Package Files #
18 | *.jar
19 | *.war
20 | *.ear
21 | *.zip
22 | *.tar.gz
23 | *.rar
24 | *.swp
25 | *.log
26 | *.ctxt
27 | # nodejs local modules
28 | .tags*
29 | .idea/
30 | *.iml
31 | .gradle/
32 | .settings/
33 | target/
34 | hs_err_pid*
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Discovery【探索】云原生微服务解决方案
4 |  [](https://github.com/Nepxion/Discovery/blob/6.x.x/LICENSE) [](https://search.maven.org/artifact/com.nepxion/discovery) [](http://www.javadoc.io/doc/com.nepxion/discovery-plugin-framework-starter) [](https://github.com/Nepxion/Discovery/actions) [](https://www.codacy.com/gh/Nepxion/Discovery/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Nepxion/Discovery&utm_campaign=Badge_Grade) [](https://github.com/Nepxion/Discovery/stargazers) [](https://gitee.com/Nepxion/Discovery/stargazers)
5 |
6 | [](https://github.com/Nepxion/Discovery/wiki) [](https://gitee.com/nepxion/Discovery/wikis/pages?sort_id=3993615&doc_id=1124387) [](https://nepxion.github.io/Discovery/docs/link-doc/discovery-ppt.html) [](https://nepxion.github.io/Discovery/) [](https://nepxion.github.io/DiscoveryPlatform) [](https://nepxion.github.io/DiscoveryDesktop) [](https://polaris-paas.github.io/polaris-wiki)
7 |
8 |
9 |
10 | 如果您觉得本框架具有一定的参考价值和借鉴意义,请帮忙在页面右上角 [**Star**]
11 |
12 | ## 简介
13 |
14 | ### 作者简介
15 | - Nepxion开源社区创始人
16 | - 2020年阿里巴巴中国云原生峰会出品人
17 | - 2020年被Nacos和Spring Cloud Alibaba纳入相关开源项目
18 | - 2021年阿里巴巴技术峰会上海站演讲嘉宾
19 | - 2021年荣获陆奇博士主持的奇绩资本,进行风险投资的关注和调研
20 | - 2021年入选Gitee最有价值开源项目
21 | - 2024年入围中国开源创新榜候选项目
22 | - 阿里巴巴官方书籍《Nacos架构与原理》作者之一
23 | - Spring Cloud Alibaba Steering Committer、Nacos Group Member
24 | - Spring Cloud Alibaba、Nacos、Sentinel、OpenTracing Committer & Contributor
25 |
26 |
27 |
28 | ### 商业合作
29 | ① Discovery系列
30 |
31 | | 框架名称 | 框架版本 | 支持Spring Cloud版本 | 使用许可 |
32 | | --- | --- | --- | --- |
33 | | Discovery | 1.x.x ~ 6.x.x | Camden ~ Hoxton | 开源,永久免费 |
34 | | DiscoveryX | 7.x.x + | 2020 + | 闭源,商业许可 |
35 |
36 | ② Polaris系列
37 |
38 | Polaris为Discovery高级定制版,特色功能
39 |
40 | - 基于Nepxion Discovery集成定制
41 | - 多云、多活、多机房流量调配
42 | - 跨云动态域名、跨环境适配
43 | - DCN、DSU、SET单元化部署
44 | - 组件灵活装配、配置对外屏蔽
45 | - 极简低代码PaaS平台
46 |
47 | | 框架名称 | 框架版本 | 支持Discovery版本 | 支持Spring Cloud版本 | 使用许可 |
48 | | --- | --- | --- | --- | --- |
49 | | Polaris | 1.x.x | 6.x.x | Finchley ~ Hoxton | 闭源,商业许可 |
50 | | Polaris | 2.x.x | 7.x.x + | 2020 + | 闭源,商业许可 |
51 |
52 | 有商业版需求的企业和用户,请添加微信1394997,联系作者,洽谈合作事宜
53 |
54 | ### 入门资料
55 |  Discovery【探索】企业级云原生微服务开源解决方案
56 |
57 | ① 快速入门
58 | - [快速入门Github版](https://github.com/Nepxion/Discovery/wiki)
59 | - [快速入门Gitee版](https://gitee.com/Nepxion/Discovery/wikis/pages)
60 |
61 | ② 解决方案
62 | - [解决方案WIKI版](http://nepxion.com/discovery)
63 | - [解决方案PPT版](https://nepxion.github.io/Discovery/docs/link-doc/discovery-ppt.html)
64 |
65 | ③ 最佳实践
66 | - [最佳实践PPT版](https://nepxion.github.io/Discovery/docs/link-doc/discovery-ppt-1.html)
67 |
68 | ④ 平台桌面
69 | - [平台界面WIKI版](http://nepxion.com/discovery-platform)
70 | - [图形桌面WIKI版](http://nepxion.com/discovery-desktop)
71 |
72 | ⑤ 框架源码
73 | - [框架源码Github版](https://github.com/Nepxion/Discovery)
74 | - [框架源码Gitee版](https://gitee.com/Nepxion/Discovery)
75 |
76 | ⑥ 指南示例源码
77 | - [指南示例源码Github版](https://github.com/Nepxion/DiscoveryGuide)
78 | - [指南示例源码Gitee版](https://gitee.com/Nepxion/DiscoveryGuide)
79 |
80 | ⑦ 指南示例说明
81 | - Spring Cloud Finchley ~ Hoxton版本
82 | - [极简版指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x-simple),分支为6.x.x-simple
83 | - [极简版域网关部署指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x-simple-domain-gateway),分支为6.x.x-simple-domain-gateway
84 | - [极简版非域网关部署指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x-simple-non-domain-gateway),分支为6.x.x-simple-non-domain-gateway
85 | - [集成版指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x),分支为6.x.x
86 | - [高级版指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/6.x.x-complex),分支为6.x.x-complex
87 | - Spring Cloud 20xx版本
88 | - [极简版指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/master-simple),分支为master-simple
89 | - [极简版本地化指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/master-simple-native),分支为master-simple-native
90 | - [集成版指南示例](https://github.com/Nepxion/DiscoveryGuide/tree/master),分支为master
91 |
92 |  Polaris【北极星】企业级云原生微服务商业解决方案
93 |
94 | ① 解决方案
95 | - [解决方案WIKI版](http://nepxion.com/polaris)
96 |
97 | ② 框架源码
98 | - [框架源码Github版](https://github.com/polaris-paas/polaris-sdk)
99 | - [框架源码Gitee版](https://gitee.com/polaris-paas/polaris-sdk)
100 |
101 | ③ 指南示例源码
102 | - [指南示例源码Github版](https://github.com/polaris-paas/polaris-guide)
103 | - [指南示例源码Gitee版](https://gitee.com/polaris-paas/polaris-guide)
104 |
105 | ④ 指南示例说明
106 | - Spring Cloud Finchley ~ Hoxton版本
107 | - [指南示例](https://github.com/polaris-paas/polaris-guide/tree/1.x.x),分支为1.x.x
108 | - Spring Cloud 20xx版本
109 | - [指南示例](https://github.com/polaris-paas/polaris-guide/tree/master),分支为master
110 |
111 | ### 请联系我
112 | 微信、钉钉、公众号和文档
113 |
114 | 
115 |
116 | ## Star走势图
117 | [](https://starchart.cc/Nepxion/Discovery)
--------------------------------------------------------------------------------
/lib/alloy-skin-1.4.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/alloy-skin-1.4.4.jar
--------------------------------------------------------------------------------
/lib/jcalendar-1.3.4.200905090658.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/jcalendar-1.3.4.200905090658.jar
--------------------------------------------------------------------------------
/lib/jdesktop-swing-worker-1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/jdesktop-swing-worker-1.2.jar
--------------------------------------------------------------------------------
/lib/jdesktop-swingx-1.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/jdesktop-swingx-1.0.jar
--------------------------------------------------------------------------------
/lib/jide-oss-2.9.7.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/jide-oss-2.9.7.jar
--------------------------------------------------------------------------------
/lib/l2fprod-common-all-7.3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/l2fprod-common-all-7.3.jar
--------------------------------------------------------------------------------
/lib/nepxion-cots-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/nepxion-cots-1.0.0.jar
--------------------------------------------------------------------------------
/lib/nepxion-swing-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/nepxion-swing-1.0.0.jar
--------------------------------------------------------------------------------
/lib/nepxion-util-1.0.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/nepxion-util-1.0.0.jar
--------------------------------------------------------------------------------
/lib/twaver-3.7.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/twaver-3.7.jar
--------------------------------------------------------------------------------
/lib/twaver-gis-3.7.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/twaver-gis-3.7.jar
--------------------------------------------------------------------------------
/lib/twaver-layouter-3.7.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nepxion/DiscoveryDesktop/e18590243433005ddf209de49cfc564e1e83f5dd/lib/twaver-layouter-3.7.jar
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.util.ArrayList; 13 | import java.util.List; 14 | 15 | import org.apache.commons.collections4.CollectionUtils; 16 | 17 | import com.nepxion.discovery.common.entity.ConfigType; 18 | import com.nepxion.discovery.common.entity.DiscoveryType; 19 | import com.nepxion.discovery.console.controller.ConsoleController; 20 | 21 | public class ConsoleCache { 22 | private static String consoleUrl; 23 | private static String accessToken; 24 | 25 | private static DiscoveryType discoveryType; 26 | private static ConfigType configType; 27 | 28 | private static ListTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @author Fengfeng Li 10 | * @version 1.0 11 | */ 12 | 13 | import java.io.IOException; 14 | import java.util.List; 15 | 16 | import org.apache.commons.collections4.CollectionUtils; 17 | import org.springframework.http.HttpRequest; 18 | import org.springframework.http.client.ClientHttpRequestExecution; 19 | import org.springframework.http.client.ClientHttpRequestInterceptor; 20 | import org.springframework.http.client.ClientHttpResponse; 21 | 22 | import com.nepxion.discovery.common.constant.DiscoveryConstant; 23 | import com.nepxion.discovery.console.cache.ConsoleCache; 24 | 25 | public class ConsoleInterceptor implements ClientHttpRequestInterceptor { 26 | @Override 27 | public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { 28 | ClientHttpResponse response = execution.execute(request, body); 29 | 30 | ListTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.Dimension; 13 | 14 | import org.slf4j.Logger; 15 | import org.slf4j.LoggerFactory; 16 | 17 | import com.nepxion.discovery.console.cache.ConsoleCache; 18 | import com.nepxion.discovery.console.desktop.common.context.ConsoleConstant; 19 | import com.nepxion.discovery.console.desktop.common.icon.ConsoleIconFactory; 20 | import com.nepxion.discovery.console.desktop.common.locale.ConsoleLocaleFactory; 21 | import com.nepxion.swing.frame.JBasicFrame; 22 | 23 | public class ConsoleFrame extends JBasicFrame { 24 | private static final long serialVersionUID = 1L; 25 | private static final Logger LOG = LoggerFactory.getLogger(ConsoleFrame.class); 26 | 27 | public ConsoleFrame() { 28 | super(ConsoleLocaleFactory.getString("title") + " " + getSubTitle(), ConsoleIconFactory.getContextIcon("logo.png"), new Dimension(1630, 1030)); 29 | } 30 | 31 | public void launch() { 32 | ConsoleHierarchy consoleHierarchy = new ConsoleHierarchy(); 33 | getContentPane().add(consoleHierarchy); 34 | 35 | Boolean fullscreenEnabled = Boolean.valueOf(System.getProperty(ConsoleConstant.FULLSCREEN_ENABLED, Boolean.TRUE.toString())); 36 | if (fullscreenEnabled) { 37 | setExtendedState(ConsoleFrame.MAXIMIZED_BOTH); 38 | } 39 | setVisible(true); 40 | toFront(); 41 | } 42 | 43 | private static String getSubTitle() { 44 | try { 45 | return "【" + ConsoleCache.getDiscoveryType() + " " + ConsoleLocaleFactory.getString("discovery_center") + "】【" + ConsoleCache.getConfigType() + " " + ConsoleLocaleFactory.getString("config_center") + "】"; 46 | } catch (Exception e) { 47 | LOG.error("Not connnect to Discovery Console", e); 48 | 49 | return "【" + ConsoleLocaleFactory.getString("not_connnect_to_console") + "】"; 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/ConsoleHierarchy.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.Font; 13 | import java.util.ArrayList; 14 | import java.util.List; 15 | 16 | import com.nepxion.discovery.console.desktop.common.component.AbstractConsoleHierarchy; 17 | import com.nepxion.discovery.console.desktop.common.context.ConsoleUIContext; 18 | import com.nepxion.discovery.console.desktop.common.icon.ConsoleIconFactory; 19 | import com.nepxion.discovery.console.desktop.common.locale.ConsoleLocaleFactory; 20 | import com.nepxion.discovery.console.desktop.workspace.AbstractTopology; 21 | import com.nepxion.discovery.console.desktop.workspace.BlueGreenTopology; 22 | import com.nepxion.discovery.console.desktop.workspace.GrayTopology; 23 | import com.nepxion.discovery.console.desktop.workspace.InspectorTopology; 24 | import com.nepxion.discovery.console.desktop.workspace.type.AuthorityType; 25 | import com.nepxion.discovery.console.desktop.workspace.type.FeatureType; 26 | import com.nepxion.discovery.console.desktop.workspace.type.ReleaseType; 27 | import com.nepxion.discovery.console.desktop.workspace.type.TypeLocale; 28 | import com.nepxion.swing.element.ElementNode; 29 | import com.nepxion.swing.list.JBasicList; 30 | import com.nepxion.swing.shrinkbar.JShrinkOutlook; 31 | 32 | public class ConsoleHierarchy extends AbstractConsoleHierarchy { 33 | private static final long serialVersionUID = 1L; 34 | 35 | public static final String OUTLOOK_STYLE = "outlook/stereo/"; 36 | public static final String NAVIGATOR_STYLE = "navigator/stereo/"; 37 | 38 | @Override 39 | public void initializeUI() { 40 | createServiceReleaseManageShrinkOutlook(); 41 | createServiceAuthorityManageShrinkOutlook(); 42 | createMiddlewareReleaseManageShrinkOutlook(); 43 | } 44 | 45 | private JShrinkOutlook createServiceReleaseManageShrinkOutlook() { 46 | ListTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import com.nepxion.discovery.console.desktop.common.context.ConsoleBannerContext; 13 | import com.nepxion.discovery.console.desktop.common.context.ConsoleDataContext; 14 | import com.nepxion.discovery.console.desktop.common.context.ConsolePropertiesContext; 15 | import com.nepxion.discovery.console.desktop.common.context.ConsoleUIContext; 16 | import com.nepxion.discovery.console.desktop.common.icon.ConsoleIconFactory; 17 | import com.nepxion.discovery.console.desktop.common.locale.ConsoleLocaleFactory; 18 | 19 | public class ConsoleInitializer { 20 | private static final String PROPERTIES_PATH = "config/console.properties"; 21 | private static final String ICON_PATH = "com/nepxion/discovery/console/desktop/common/icon/"; 22 | private static final String LOCALE_PATH = "com/nepxion/discovery/console/desktop/common/locale/"; 23 | 24 | public static void initialize() { 25 | ConsoleBannerContext.initialize(); 26 | ConsolePropertiesContext.initialize(PROPERTIES_PATH); 27 | ConsoleDataContext.initialize(); 28 | ConsoleUIContext.initialize(); 29 | 30 | ConsoleIconFactory.initialize(ICON_PATH); 31 | ConsoleLocaleFactory.initialize(LOCALE_PATH); 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/ConsoleLauncher.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import javax.swing.SwingUtilities; 13 | 14 | import com.nepxion.discovery.console.desktop.common.context.ConsoleConstant; 15 | 16 | public class ConsoleLauncher { 17 | public static void main(String[] args) { 18 | ConsoleInitializer.initialize(); 19 | 20 | SwingUtilities.invokeLater(new Runnable() { 21 | public void run() { 22 | Boolean loginEnabled = Boolean.valueOf(System.getProperty(ConsoleConstant.LOGIN_ENABLED, Boolean.TRUE.toString())); 23 | if (loginEnabled) { 24 | ConsoleLogin consoleLogin = new ConsoleLogin(); 25 | consoleLogin.launch(); 26 | } 27 | 28 | ConsoleFrame consoleFrame = new ConsoleFrame(); 29 | consoleFrame.launch(); 30 | } 31 | }); 32 | } 33 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/ConsoleLogin.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import com.nepxion.discovery.console.desktop.common.component.AbstractConsoleLogin; 13 | 14 | public class ConsoleLogin extends AbstractConsoleLogin { 15 | private static final long serialVersionUID = 1L; 16 | 17 | @Override 18 | public void initializeUI() { 19 | accountTextField.setText("admin"); 20 | passwordField.setText("admin"); 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/component/AbstractConsoleHierarchy.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.component; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.BorderLayout; 13 | import java.awt.Component; 14 | import java.awt.Font; 15 | import java.awt.event.MouseAdapter; 16 | import java.awt.event.MouseEvent; 17 | import java.util.List; 18 | 19 | import javax.swing.BorderFactory; 20 | import javax.swing.JPanel; 21 | 22 | import com.nepxion.discovery.console.desktop.common.context.ConsoleUIContext; 23 | import com.nepxion.discovery.console.desktop.common.icon.ConsoleIconFactory; 24 | import com.nepxion.discovery.console.desktop.common.locale.ConsoleLocaleFactory; 25 | import com.nepxion.discovery.console.desktop.common.util.DimensionUtil; 26 | import com.nepxion.swing.container.ContainerManager; 27 | import com.nepxion.swing.element.ElementNode; 28 | import com.nepxion.swing.framework.reflection.JReflectionHierarchy; 29 | import com.nepxion.swing.list.JBasicList; 30 | import com.nepxion.swing.shrinkbar.JShrinkBar; 31 | import com.nepxion.swing.shrinkbar.JShrinkOutlook; 32 | import com.nepxion.swing.shrinkbar.JShrinkOutlookBar; 33 | import com.nepxion.swing.shrinkbar.ShrinkListCellRenderer; 34 | import com.nepxion.swing.shrinkbar.ShrinkOutlookSelectionListener; 35 | import com.nepxion.swing.style.texture.shrink.IHeaderTextureStyle; 36 | import com.nepxion.swing.style.texture.shrink.IOutlookTextureStyle; 37 | import com.nepxion.swing.style.texture.shrink.JBlackHeaderTextureStyle; 38 | import com.nepxion.swing.style.texture.shrink.JBlackOutlookTextureStyle; 39 | import com.nepxion.util.data.CollectionUtil; 40 | 41 | public abstract class AbstractConsoleHierarchy extends JReflectionHierarchy { 42 | private static final long serialVersionUID = 1L; 43 | 44 | protected JShrinkBar shrinkOperationBar; 45 | protected JShrinkBar shrinkContentBar; 46 | protected JShrinkOutlookBar shrinkOutlookBar; 47 | 48 | public AbstractConsoleHierarchy() { 49 | super(20, 20); 50 | 51 | IHeaderTextureStyle headerTextureStyle = new JBlackHeaderTextureStyle(); 52 | IOutlookTextureStyle outlookTextureStyle = new JBlackOutlookTextureStyle(); 53 | 54 | shrinkOperationBar = new JShrinkBar(JShrinkBar.PLACEMENT_EAST, JShrinkBar.CONTENT_PANE_TYPE_LABEL, headerTextureStyle) { 55 | private static final long serialVersionUID = 1L; 56 | 57 | private JPanel container; 58 | private Component contentPane; 59 | 60 | @Override 61 | public Component getContentPane() { 62 | return contentPane; 63 | } 64 | 65 | @Override 66 | public void setContentPane(Component contentPane) { 67 | this.contentPane = contentPane; 68 | 69 | if (container == null) { 70 | container = new JPanel(); 71 | container.setLayout(new BorderLayout()); 72 | // container.setBorder(BorderFactory.createLineBorder(outlookTextureStyle.getBorderColor())); 73 | 74 | shrinkContentPane.add(container, BorderLayout.CENTER); 75 | } 76 | 77 | container.removeAll(); 78 | container.add(contentPane, BorderLayout.CENTER); 79 | 80 | ContainerManager.update(container); 81 | } 82 | }; 83 | shrinkOperationBar.setTitle(ConsoleLocaleFactory.getString("operation_bar")); 84 | shrinkOperationBar.setToolTipText(ConsoleLocaleFactory.getString("operation_bar")); 85 | shrinkOperationBar.setIcon(ConsoleIconFactory.getSwingIcon("property.png")); 86 | shrinkOperationBar.setTitleFont(new Font(ConsoleUIContext.getFontName(), Font.BOLD, ConsoleUIContext.getLargeFontSize())); 87 | DimensionUtil.setWidth(shrinkOperationBar, getOperationBar()); 88 | 89 | shrinkContentBar = new JShrinkBar(JShrinkBar.PLACEMENT_EAST, JShrinkBar.CONTENT_PANE_TYPE_LABEL, headerTextureStyle); 90 | shrinkContentBar.setShrinkable(false); 91 | shrinkContentBar.setTitle(ConsoleLocaleFactory.getString("content_bar")); 92 | shrinkContentBar.setToolTipText(ConsoleLocaleFactory.getString("content_bar")); 93 | shrinkContentBar.setIcon(ConsoleIconFactory.getSwingIcon("paste.png")); 94 | shrinkContentBar.setTitleFont(new Font(ConsoleUIContext.getFontName(), Font.BOLD, ConsoleUIContext.getLargeFontSize())); 95 | shrinkContentBar.getShrinkHeader().getLabel().addMouseListener(new ShrinkContentBarMouseListener()); 96 | 97 | shrinkOutlookBar = new JShrinkOutlookBar(JShrinkBar.PLACEMENT_WEST, JShrinkBar.CONTENT_PANE_TYPE_LABEL, headerTextureStyle, outlookTextureStyle); 98 | shrinkOutlookBar.setTitle(ConsoleLocaleFactory.getString("navigator_bar")); 99 | shrinkOutlookBar.setToolTipText(ConsoleLocaleFactory.getString("navigator_bar")); 100 | shrinkOutlookBar.setIcon(ConsoleIconFactory.getSwingIcon("hierarchy.png")); 101 | shrinkOutlookBar.setTitleFont(new Font(ConsoleUIContext.getFontName(), Font.BOLD, ConsoleUIContext.getLargeFontSize())); 102 | DimensionUtil.setWidth(shrinkOutlookBar, getOutlookBarWidth()); 103 | 104 | initializeUI(); 105 | 106 | shrinkOutlookBar.getShrinkOutlook(0).setSelected(true); 107 | 108 | JPanel container = new JPanel(); 109 | container.setLayout(new BorderLayout(5, 5)); 110 | container.add(shrinkOperationBar, BorderLayout.EAST); 111 | container.add(shrinkContentBar, BorderLayout.CENTER); 112 | container.add(shrinkOutlookBar, BorderLayout.WEST); 113 | 114 | setContentPane(container); 115 | } 116 | 117 | @SuppressWarnings("unchecked") 118 | public JBasicList createToggleList(ListTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.Component; 13 | import java.awt.Font; 14 | import java.awt.Frame; 15 | import java.util.Locale; 16 | import java.util.Vector; 17 | 18 | import javax.swing.DefaultListCellRenderer; 19 | import javax.swing.JList; 20 | import javax.swing.JPanel; 21 | 22 | import org.apache.commons.lang3.StringUtils; 23 | 24 | import com.nepxion.discovery.common.entity.UserEntity; 25 | import com.nepxion.discovery.console.controller.ConsoleController; 26 | import com.nepxion.discovery.console.desktop.common.locale.ConsoleLocaleFactory; 27 | import com.nepxion.swing.combobox.JBasicComboBox; 28 | import com.nepxion.swing.dialog.JLoginDialog; 29 | import com.nepxion.swing.font.FontContext; 30 | import com.nepxion.swing.label.JBasicLabel; 31 | import com.nepxion.swing.layout.table.TableLayout; 32 | 33 | public abstract class AbstractConsoleLogin extends JLoginDialog { 34 | private static final long serialVersionUID = 1L; 35 | 36 | protected JBasicLabel urlLabel; 37 | protected JBasicComboBox urlComboBox; 38 | 39 | public AbstractConsoleLogin() { 40 | super(null); 41 | 42 | initializeUI(); 43 | } 44 | 45 | public AbstractConsoleLogin(Frame parent) { 46 | super(parent); 47 | 48 | initializeUI(); 49 | } 50 | 51 | @SuppressWarnings("unchecked") 52 | @Override 53 | protected void initEditorPanelLayout() { 54 | urlLabel = new JBasicLabel(); 55 | urlLabel.setFont(new Font(FontContext.getFontName(), FONT_STYLE, FONT_SIZE)); 56 | 57 | String url = null; 58 | try { 59 | url = ConsoleController.getUrl(); 60 | } catch (Exception e) { 61 | 62 | } 63 | 64 | VectorTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import com.nepxion.banner.BannerConstant; 13 | import com.nepxion.banner.Description; 14 | import com.nepxion.banner.LogoBanner; 15 | import com.nepxion.banner.NepxionBanner; 16 | import com.nepxion.discovery.common.constant.DiscoveryConstant; 17 | import com.taobao.text.Color; 18 | 19 | public class ConsoleBannerContext { 20 | public static void initialize() { 21 | LogoBanner logoBanner = new LogoBanner(ConsoleBannerContext.class, "/com/nepxion/discovery/resource/logo.txt", "Welcome to Nepxion", 9, 5, new Color[] { Color.red, Color.green, Color.cyan, Color.blue, Color.yellow, Color.magenta, Color.red, Color.green, Color.cyan }, true); 22 | 23 | NepxionBanner.show(logoBanner, new Description(BannerConstant.VERSION + ":", DiscoveryConstant.DISCOVERY_VERSION, 0, 1), new Description(BannerConstant.GITHUB + ":", BannerConstant.NEPXION_GITHUB + "/Discovery", 0, 1)); 24 | } 25 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/context/ConsoleConstant.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.context; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | public class ConsoleConstant { 13 | public static final String URL = "url"; 14 | 15 | public static final String THEME = "theme"; 16 | public static final String DEFAULT_THEME = "NimbusLookAndFeel"; 17 | 18 | public static final String LOGIN_ENABLED = "login.enabled"; 19 | public static final String FULLSCREEN_ENABLED = "fullscreen.enabled"; 20 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/context/ConsoleDataContext.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.context; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import com.nepxion.util.encoder.EncoderContext; 13 | import com.nepxion.util.locale.LocaleContext; 14 | 15 | public class ConsoleDataContext { 16 | public static final String CHARSET = "UTF-8"; 17 | public static final String LOCALE = "zh_CN"; 18 | 19 | public static void initialize() { 20 | initializeEncoder(); 21 | initializeLocale(); 22 | initializeTracer(); 23 | } 24 | 25 | private static void initializeEncoder() { 26 | EncoderContext.registerIOCharset(CHARSET); 27 | } 28 | 29 | private static void initializeLocale() { 30 | LocaleContext.registerLocale(LOCALE); 31 | } 32 | 33 | private static void initializeTracer() { 34 | // ExceptionTracerContext.register(true); 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/context/ConsolePropertiesContext.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.context; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.io.File; 13 | import java.net.URL; 14 | 15 | import org.apache.commons.configuration.ConfigurationException; 16 | import org.apache.commons.configuration.PropertiesConfiguration; 17 | 18 | public class ConsolePropertiesContext extends PropertiesConfiguration { 19 | private static ConsolePropertiesContext propertiesContext; 20 | 21 | public static void initialize(String propertiesPath) { 22 | try { 23 | propertiesContext = new ConsolePropertiesContext(propertiesPath); 24 | } catch (ConfigurationException e) { 25 | e.printStackTrace(); 26 | } 27 | } 28 | 29 | public static ConsolePropertiesContext getProperties() { 30 | return propertiesContext; 31 | } 32 | 33 | public ConsolePropertiesContext(String path) throws ConfigurationException { 34 | super(path); 35 | } 36 | 37 | public ConsolePropertiesContext(File file) throws ConfigurationException { 38 | super(file); 39 | } 40 | 41 | public ConsolePropertiesContext(URL url) throws ConfigurationException { 42 | super(url); 43 | } 44 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/context/ConsoleUIContext.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.context; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.Font; 13 | 14 | import org.apache.commons.lang3.StringUtils; 15 | 16 | import com.nepxion.discovery.console.desktop.common.swing.lookandfeel.LookAndFeelManager; 17 | import com.nepxion.swing.font.FontContext; 18 | import com.nepxion.util.locale.LocaleContext; 19 | 20 | public class ConsoleUIContext { 21 | private static final String FONT_NAME_ZH_CN = "\u5fae\u8f6f\u96c5\u9ed1"; // 微软雅黑 22 | private static final int FONT_SMALL_SIZE_ZH_CN = 12; // 11 23 | private static final int FONT_MIDDLE_SIZE_ZH_CN = FONT_SMALL_SIZE_ZH_CN + 1; 24 | private static final int FONT_LARGE_SIZE_ZH_CN = FONT_SMALL_SIZE_ZH_CN + 2; 25 | 26 | private static final String FONT_NAME_EN_US = "Calibri"; 27 | private static final int FONT_SMALL_SIZE_EN_US = 12; 28 | private static final int FONT_MIDDLE_SIZE_EN_US = FONT_SMALL_SIZE_EN_US + 1; 29 | private static final int FONT_LARGE_SIZE_EN_US = FONT_SMALL_SIZE_EN_US + 2; 30 | 31 | public static void initialize() { 32 | String theme = ConsolePropertiesContext.getProperties().getString(ConsoleConstant.THEME, ConsoleConstant.DEFAULT_THEME); 33 | if (StringUtils.equals(theme, ConsoleConstant.DEFAULT_THEME)) { 34 | setFont(); 35 | setLookAndFeel(theme); 36 | } else { 37 | setLookAndFeel(theme); 38 | setFont(); 39 | } 40 | } 41 | 42 | public static void setFont() { 43 | FontContext.registerFont(getFontName(), Font.PLAIN, getDefaultFontSize()); 44 | } 45 | 46 | public static void setLookAndFeel(String theme) { 47 | // theme=NimbusLookAndFeel 48 | // theme=AcidLookAndFeel 49 | // theme=AlloyLookAndFeel 50 | // theme=BedouinLookAndFeel 51 | // theme=GlassLookAndFeel 52 | 53 | LookAndFeelManager.invokeLookAndFeel(theme); 54 | } 55 | 56 | public static String getFontName() { 57 | if (LocaleContext.getLocale() == LocaleContext.LOCALE_ZH_CN) { 58 | return FONT_NAME_ZH_CN; 59 | } else { 60 | return FONT_NAME_EN_US; 61 | } 62 | } 63 | 64 | public static int getDefaultFontSize() { 65 | String fontName = getFontName(); 66 | if (fontName.equals(FONT_NAME_ZH_CN)) { 67 | return FONT_MIDDLE_SIZE_ZH_CN; 68 | } else { 69 | return FONT_MIDDLE_SIZE_EN_US; 70 | } 71 | } 72 | 73 | public static int getSmallFontSize() { 74 | String fontName = getFontName(); 75 | if (fontName.equals(FONT_NAME_ZH_CN)) { 76 | return FONT_SMALL_SIZE_ZH_CN; 77 | } else { 78 | return FONT_SMALL_SIZE_EN_US; 79 | } 80 | } 81 | 82 | public static int getMiddleFontSize() { 83 | String fontName = getFontName(); 84 | if (fontName.equals(FONT_NAME_ZH_CN)) { 85 | return FONT_MIDDLE_SIZE_ZH_CN; 86 | } else { 87 | return FONT_MIDDLE_SIZE_EN_US; 88 | } 89 | } 90 | 91 | public static int getLargeFontSize() { 92 | String fontName = getFontName(); 93 | if (fontName.equals(FONT_NAME_ZH_CN)) { 94 | return FONT_LARGE_SIZE_ZH_CN; 95 | } else { 96 | return FONT_LARGE_SIZE_EN_US; 97 | } 98 | } 99 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/icon/ConsoleIconFactory.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.icon; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import javax.swing.ImageIcon; 13 | 14 | import com.nepxion.swing.icon.IconFactory; 15 | 16 | public class ConsoleIconFactory extends IconFactory { 17 | private static String iconPath; 18 | 19 | public static void initialize(String iconPath) { 20 | ConsoleIconFactory.iconPath = iconPath; 21 | } 22 | 23 | public static ImageIcon getContextIcon(String iconName) { 24 | return getIcon(iconPath + iconName); 25 | } 26 | 27 | public static String getIconPath() { 28 | return iconPath; 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/locale/ConsoleLocaleFactory.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.locale; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.util.Locale; 13 | 14 | import com.nepxion.util.locale.LocaleManager; 15 | 16 | public class ConsoleLocaleFactory { 17 | public static final Class> BUNDLE_CLASS = ConsoleLocaleFactory.class; 18 | 19 | private static String localePath; 20 | 21 | public static void initialize(String localePath) { 22 | ConsoleLocaleFactory.localePath = localePath; 23 | } 24 | 25 | public static String getString(String key) { 26 | return LocaleManager.getString(BUNDLE_CLASS, key); 27 | } 28 | 29 | public static String getString(String key, Locale locale) { 30 | return LocaleManager.getString(BUNDLE_CLASS, key, locale); 31 | } 32 | 33 | public static String getLocalePath() { 34 | return localePath; 35 | } 36 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/util/BorderUtil.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.util; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.Color; 13 | import java.awt.Font; 14 | 15 | import javax.swing.BorderFactory; 16 | import javax.swing.border.Border; 17 | import javax.swing.border.TitledBorder; 18 | 19 | import com.nepxion.discovery.console.desktop.common.context.ConsoleUIContext; 20 | import com.nepxion.swing.separator.JBasicSeparator; 21 | 22 | public class BorderUtil { 23 | public static JBasicSeparator createSeparator() { 24 | JBasicSeparator separator = new JBasicSeparator(JBasicSeparator.HORIZONTAL, JBasicSeparator.LOWERED_STYLE, -1); 25 | separator.setBrightColor(new Color(197, 196, 198)); 26 | separator.setDarkColor(new Color(153, 152, 154)); 27 | 28 | return separator; 29 | } 30 | 31 | public static Border createTitledBorder(String title) { 32 | return BorderFactory.createTitledBorder(null, title, TitledBorder.LEADING, TitledBorder.DEFAULT_POSITION, new Font(ConsoleUIContext.getFontName(), Font.PLAIN, ConsoleUIContext.getLargeFontSize()), new Color(64, 0, 0)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/util/ButtonUtil.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.util; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.util.Enumeration; 13 | 14 | import javax.swing.AbstractAction; 15 | import javax.swing.AbstractButton; 16 | import javax.swing.ButtonGroup; 17 | 18 | import com.nepxion.swing.button.JBasicButton; 19 | import com.nepxion.swing.button.JClassicButton; 20 | import com.nepxion.swing.lookandfeel.LookAndFeelManager; 21 | 22 | public class ButtonUtil { 23 | public static AbstractButton createButton(AbstractAction action) { 24 | return LookAndFeelManager.isNimbusLookAndFeel() ? new JClassicButton(action) : new JBasicButton(action); 25 | } 26 | 27 | public static String getRationButtonName(ButtonGroup buttonGroup) { 28 | for (EnumerationTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.util.Collections; 13 | import java.util.List; 14 | 15 | import javax.swing.DefaultComboBoxModel; 16 | 17 | import org.apache.commons.lang3.SystemUtils; 18 | 19 | import com.nepxion.swing.combobox.JBasicComboBox; 20 | import com.nepxion.swing.completion.JAutoCompletion; 21 | import com.nepxion.swing.searchable.JSearchableFactory; 22 | 23 | public class ComboBoxUtil { 24 | public static void installSearchable(JBasicComboBox comboBox) { 25 | if (SystemUtils.IS_OS_WINDOWS) { 26 | JSearchableFactory.installSearchable(comboBox); 27 | } 28 | } 29 | 30 | public static void installlAutoCompletion(JBasicComboBox comboBox) { 31 | if (SystemUtils.IS_OS_WINDOWS) { 32 | JAutoCompletion autoCompletion = new JAutoCompletion(comboBox); 33 | autoCompletion.setStrict(false); 34 | } 35 | } 36 | 37 | @SuppressWarnings("unchecked") 38 | public static void setSortableModel(JBasicComboBox comboBox, ListTitle: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.awt.Component; 13 | import java.awt.Dimension; 14 | 15 | public class DimensionUtil { 16 | public static Component addSize(Component Component, int width, int height) { 17 | Component.setPreferredSize(new Dimension(Component.getPreferredSize().width + width, Component.getPreferredSize().height + height)); 18 | 19 | return Component; 20 | } 21 | 22 | public static Component addWidth(Component Component, int width) { 23 | Component.setPreferredSize(new Dimension(Component.getPreferredSize().width + width, Component.getPreferredSize().height)); 24 | 25 | return Component; 26 | } 27 | 28 | public static Component addHeight(Component Component, int height) { 29 | Component.setPreferredSize(new Dimension(Component.getPreferredSize().width, Component.getPreferredSize().height + height)); 30 | 31 | return Component; 32 | } 33 | 34 | public static Component setWidth(Component component, int width) { 35 | component.setPreferredSize(new Dimension(width, component.getPreferredSize().height)); 36 | 37 | return component; 38 | } 39 | 40 | public static Component setHeight(Component component, int height) { 41 | component.setPreferredSize(new Dimension(component.getPreferredSize().width, height)); 42 | 43 | return component; 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/com/nepxion/discovery/console/desktop/common/util/ListUtil.java: -------------------------------------------------------------------------------- 1 | package com.nepxion.discovery.console.desktop.common.util; 2 | 3 | /** 4 | *Title: Nepxion Discovery
5 | *Description: Nepxion Discovery
6 | *Copyright: Copyright (c) 2017-2050
7 | *Company: Nepxion
8 | * @author Haojun Ren 9 | * @version 1.0 10 | */ 11 | 12 | import java.util.Collections; 13 | import java.util.List; 14 | import java.util.Vector; 15 | 16 | import javax.swing.BorderFactory; 17 | import javax.swing.ImageIcon; 18 | 19 | import org.apache.commons.lang3.SystemUtils; 20 | 21 | import com.nepxion.swing.list.BasicListModel; 22 | import com.nepxion.swing.list.JBasicList; 23 | import com.nepxion.swing.renderer.list.ElementListCellRenderer; 24 | import com.nepxion.swing.searchable.JSearchableFactory; 25 | 26 | public class ListUtil { 27 | public static void installSearchable(JBasicList list) { 28 | if (SystemUtils.IS_OS_WINDOWS) { 29 | JSearchableFactory.installSearchable(list); 30 | } 31 | } 32 | 33 | @SuppressWarnings("unchecked") 34 | public static void setModel(JBasicList list, List> value, ImageIcon imageIcon) { 35 | Vector> vector = new Vector