Commit 82c42e9c by Nepxion

界面增加显示Metadata功能

parent 804ddb6c
...@@ -104,6 +104,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -104,6 +104,7 @@ public class ServiceTopology extends AbstractTopology {
private JBasicMenuItem executeGrayReleaseMenuItem; private JBasicMenuItem executeGrayReleaseMenuItem;
private JBasicMenuItem refreshGrayStateMenuItem; private JBasicMenuItem refreshGrayStateMenuItem;
private JBasicMenuItem executeGrayRouterMenuItem; private JBasicMenuItem executeGrayRouterMenuItem;
private JBasicMenuItem showMetadataActionMenuItem;
private JBasicRadioButtonMenuItem pushAsyncModeRadioButtonMenuItem; private JBasicRadioButtonMenuItem pushAsyncModeRadioButtonMenuItem;
private JBasicRadioButtonMenuItem pushSyncModeRadioButtonMenuItem; private JBasicRadioButtonMenuItem pushSyncModeRadioButtonMenuItem;
private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem; private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem;
...@@ -111,6 +112,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -111,6 +112,7 @@ public class ServiceTopology extends AbstractTopology {
private GlobalGrayPanel globalGrayPanel; private GlobalGrayPanel globalGrayPanel;
private GrayPanel grayPanel; private GrayPanel grayPanel;
private JBasicTextArea resultTextArea; private JBasicTextArea resultTextArea;
private JBasicTextArea metadataTextArea;
private RouterTopology routerTopology; private RouterTopology routerTopology;
private LayoutDialog layoutDialog; private LayoutDialog layoutDialog;
...@@ -128,9 +130,11 @@ public class ServiceTopology extends AbstractTopology { ...@@ -128,9 +130,11 @@ public class ServiceTopology extends AbstractTopology {
executeGrayReleaseMenuItem = new JBasicMenuItem(createExecuteGrayReleaseAction()); executeGrayReleaseMenuItem = new JBasicMenuItem(createExecuteGrayReleaseAction());
refreshGrayStateMenuItem = new JBasicMenuItem(createRefreshGrayStateAction()); refreshGrayStateMenuItem = new JBasicMenuItem(createRefreshGrayStateAction());
executeGrayRouterMenuItem = new JBasicMenuItem(createExecuteGrayRouterAction()); executeGrayRouterMenuItem = new JBasicMenuItem(createExecuteGrayRouterAction());
showMetadataActionMenuItem = new JBasicMenuItem(createShowMetadataAction());
popupMenu.add(executeGrayReleaseMenuItem, 0); popupMenu.add(executeGrayReleaseMenuItem, 0);
popupMenu.add(executeGrayRouterMenuItem, 1); popupMenu.add(executeGrayRouterMenuItem, 1);
popupMenu.add(refreshGrayStateMenuItem, 2); popupMenu.add(refreshGrayStateMenuItem, 2);
popupMenu.add(showMetadataActionMenuItem, 3);
} }
@Override @Override
...@@ -145,6 +149,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -145,6 +149,7 @@ public class ServiceTopology extends AbstractTopology {
TElement element = TElementManager.getSelectedElement(dataBox); TElement element = TElementManager.getSelectedElement(dataBox);
executeGrayReleaseMenuItem.setVisible(element != null && isPlugin(element)); executeGrayReleaseMenuItem.setVisible(element != null && isPlugin(element));
refreshGrayStateMenuItem.setVisible(element != null && isPlugin(element)); refreshGrayStateMenuItem.setVisible(element != null && isPlugin(element));
showMetadataActionMenuItem.setVisible(node != null);
if (group != null || node != null || element != null) { if (group != null || node != null || element != null) {
return popupMenu; return popupMenu;
...@@ -184,6 +189,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -184,6 +189,7 @@ public class ServiceTopology extends AbstractTopology {
toolBar.add(new JClassicButton(createExecuteGrayReleaseAction())); toolBar.add(new JClassicButton(createExecuteGrayReleaseAction()));
toolBar.add(new JClassicButton(createExecuteGrayRouterAction())); toolBar.add(new JClassicButton(createExecuteGrayRouterAction()));
toolBar.add(new JClassicButton(createRefreshGrayStateAction())); toolBar.add(new JClassicButton(createRefreshGrayStateAction()));
toolBar.add(new JClassicButton(createShowMetadataAction()));
toolBar.add(new JClassicButton(createPushGlobalConfigAction())); toolBar.add(new JClassicButton(createPushGlobalConfigAction()));
toolBar.add(pushControllMenubutton); toolBar.add(pushControllMenubutton);
toolBar.addSeparator(); toolBar.addSeparator();
...@@ -491,6 +497,30 @@ public class ServiceTopology extends AbstractTopology { ...@@ -491,6 +497,30 @@ public class ServiceTopology extends AbstractTopology {
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(this), new JBasicScrollPane(resultTextArea), ConsoleLocale.getString("execute_result"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/edit.png"), new Object[] { SwingLocale.getString("close") }, null, true); JBasicOptionPane.showOptionDialog(HandleManager.getFrame(this), new JBasicScrollPane(resultTextArea), ConsoleLocale.getString("execute_result"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/edit.png"), new Object[] { SwingLocale.getString("close") }, null, true);
} }
private void showMetadata(Instance instance) {
Map<String, String> metadata = instance.getMetadata();
StringBuilder stringBuilder = new StringBuilder();
for (Map.Entry<String, String> entry : metadata.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
stringBuilder.append(key).append("=").append(value).append("\n");
}
if (metadataTextArea == null) {
metadataTextArea = new JBasicTextArea();
metadataTextArea.setLineWrap(true);
metadataTextArea.setPreferredSize(new Dimension(800, 600));
}
String result = stringBuilder.toString();
if (StringUtils.isNotEmpty(result)) {
result = result.substring(0, result.lastIndexOf("\n"));
}
metadataTextArea.setText(result);
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(this), new JBasicScrollPane(metadataTextArea), ConsoleLocale.getString("show_metadata"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/property.png"), new Object[] { SwingLocale.getString("close") }, null, true);
}
@Override @Override
public void showLayout() { public void showLayout() {
if (layoutDialog == null) { if (layoutDialog == null) {
...@@ -693,6 +723,34 @@ public class ServiceTopology extends AbstractTopology { ...@@ -693,6 +723,34 @@ public class ServiceTopology extends AbstractTopology {
return action; return action;
} }
private JSecurityAction createShowMetadataAction() {
JSecurityAction action = new JSecurityAction(ConsoleLocale.getString("show_metadata"), ConsoleIconFactory.getSwingIcon("component/file_chooser_16.png"), ConsoleLocale.getString("show_metadata")) {
private static final long serialVersionUID = 1L;
public void execute(ActionEvent e) {
TNode node = TElementManager.getSelectedNode(dataBox);
if (node == null) {
JBasicOptionPane.showMessageDialog(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("select_a_node"), SwingLocale.getString("warning"), JBasicOptionPane.WARNING_MESSAGE);
return;
}
Object userObject = node.getUserObject();
if (userObject == null || !(userObject instanceof Instance)) {
JBasicOptionPane.showMessageDialog(HandleManager.getFrame(ServiceTopology.this), ConsoleLocale.getString("node_has_no_metadata"), SwingLocale.getString("warning"), JBasicOptionPane.WARNING_MESSAGE);
return;
}
Instance instance = (Instance) userObject;
showMetadata(instance);
}
};
return action;
}
private JSecurityAction createPushGlobalConfigAction() { private JSecurityAction createPushGlobalConfigAction() {
JSecurityAction action = new JSecurityAction(ConsoleLocale.getString("push_global_config"), ConsoleIconFactory.getSwingIcon("netbean/ease_both_16.png"), ConsoleLocale.getString("push_global_config")) { JSecurityAction action = new JSecurityAction(ConsoleLocale.getString("push_global_config"), ConsoleIconFactory.getSwingIcon("netbean/ease_both_16.png"), ConsoleLocale.getString("push_global_config")) {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -12,6 +12,7 @@ execute_gray_release=执行灰度发布 ...@@ -12,6 +12,7 @@ execute_gray_release=执行灰度发布
execute_gray_router=执行灰度路由 execute_gray_router=执行灰度路由
refresh_gray_state=刷新灰度状态 refresh_gray_state=刷新灰度状态
push_global_config=全链路灰度发布 push_global_config=全链路灰度发布
show_metadata=查看元数据
push_control_mode=推送模式设置 push_control_mode=推送模式设置
push_async_mode=异步推送 push_async_mode=异步推送
push_sync_mode=同步推送 push_sync_mode=同步推送
...@@ -64,6 +65,7 @@ node_not_for_gray_release=该服务不能执行灰度发布 ...@@ -64,6 +65,7 @@ node_not_for_gray_release=该服务不能执行灰度发布
node_not_for_gray_router=该服务不能执行执行灰度路由 node_not_for_gray_router=该服务不能执行执行灰度路由
group_not_for_refresh_gray_state=该服务集群不能刷新灰度状态 group_not_for_refresh_gray_state=该服务集群不能刷新灰度状态
node_not_for_refresh_gray_state=该服务不能刷新灰度状态 node_not_for_refresh_gray_state=该服务不能刷新灰度状态
node_has_no_metadata=该服务不包含元数据
not_for_push_global_config=全链路灰度发布,只能在“规则推送到远程配置中心”模式下运行 not_for_push_global_config=全链路灰度发布,只能在“规则推送到远程配置中心”模式下运行
select_a_global_group=请选择一个服务集群组 select_a_global_group=请选择一个服务集群组
......
...@@ -12,6 +12,7 @@ execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03 ...@@ -12,6 +12,7 @@ execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03
execute_gray_router=\u6267\u884c\u7070\u5ea6\u8def\u7531 execute_gray_router=\u6267\u884c\u7070\u5ea6\u8def\u7531
refresh_gray_state=\u5237\u65b0\u7070\u5ea6\u72b6\u6001 refresh_gray_state=\u5237\u65b0\u7070\u5ea6\u72b6\u6001
push_global_config=\u5168\u94fe\u8def\u7070\u5ea6\u53d1\u5e03 push_global_config=\u5168\u94fe\u8def\u7070\u5ea6\u53d1\u5e03
show_metadata=\u67e5\u770b\u5143\u6570\u636e
push_control_mode=\u63a8\u9001\u6a21\u5f0f\u8bbe\u7f6e push_control_mode=\u63a8\u9001\u6a21\u5f0f\u8bbe\u7f6e
push_async_mode=\u5f02\u6b65\u63a8\u9001 push_async_mode=\u5f02\u6b65\u63a8\u9001
push_sync_mode=\u540c\u6b65\u63a8\u9001 push_sync_mode=\u540c\u6b65\u63a8\u9001
...@@ -64,6 +65,7 @@ node_not_for_gray_release=\u8be5\u670d\u52a1\u4e0d\u80fd\u6267\u884c\u7070\u5ea6 ...@@ -64,6 +65,7 @@ node_not_for_gray_release=\u8be5\u670d\u52a1\u4e0d\u80fd\u6267\u884c\u7070\u5ea6
node_not_for_gray_router=\u8be5\u670d\u52a1\u4e0d\u80fd\u6267\u884c\u6267\u884c\u7070\u5ea6\u8def\u7531 node_not_for_gray_router=\u8be5\u670d\u52a1\u4e0d\u80fd\u6267\u884c\u6267\u884c\u7070\u5ea6\u8def\u7531
group_not_for_refresh_gray_state=\u8be5\u670d\u52a1\u96c6\u7fa4\u4e0d\u80fd\u5237\u65b0\u7070\u5ea6\u72b6\u6001 group_not_for_refresh_gray_state=\u8be5\u670d\u52a1\u96c6\u7fa4\u4e0d\u80fd\u5237\u65b0\u7070\u5ea6\u72b6\u6001
node_not_for_refresh_gray_state=\u8be5\u670d\u52a1\u4e0d\u80fd\u5237\u65b0\u7070\u5ea6\u72b6\u6001 node_not_for_refresh_gray_state=\u8be5\u670d\u52a1\u4e0d\u80fd\u5237\u65b0\u7070\u5ea6\u72b6\u6001
node_has_no_metadata=\u8be5\u670d\u52a1\u4e0d\u5305\u542b\u5143\u6570\u636e
not_for_push_global_config=\u5168\u94fe\u8def\u7070\u5ea6\u53d1\u5e03\uff0c\u53ea\u80fd\u5728\u201c\u89c4\u5219\u63a8\u9001\u5230\u8fdc\u7a0b\u914d\u7f6e\u4e2d\u5fc3\u201d\u6a21\u5f0f\u4e0b\u8fd0\u884c not_for_push_global_config=\u5168\u94fe\u8def\u7070\u5ea6\u53d1\u5e03\uff0c\u53ea\u80fd\u5728\u201c\u89c4\u5219\u63a8\u9001\u5230\u8fdc\u7a0b\u914d\u7f6e\u4e2d\u5fc3\u201d\u6a21\u5f0f\u4e0b\u8fd0\u884c
select_a_global_group=\u8bf7\u9009\u62e9\u4e00\u4e2a\u670d\u52a1\u96c6\u7fa4\u7ec4 select_a_global_group=\u8bf7\u9009\u62e9\u4e00\u4e2a\u670d\u52a1\u96c6\u7fa4\u7ec4
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment