Commit 82c42e9c by Nepxion

界面增加显示Metadata功能

parent 804ddb6c
......@@ -104,6 +104,7 @@ public class ServiceTopology extends AbstractTopology {
private JBasicMenuItem executeGrayReleaseMenuItem;
private JBasicMenuItem refreshGrayStateMenuItem;
private JBasicMenuItem executeGrayRouterMenuItem;
private JBasicMenuItem showMetadataActionMenuItem;
private JBasicRadioButtonMenuItem pushAsyncModeRadioButtonMenuItem;
private JBasicRadioButtonMenuItem pushSyncModeRadioButtonMenuItem;
private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem;
......@@ -111,6 +112,7 @@ public class ServiceTopology extends AbstractTopology {
private GlobalGrayPanel globalGrayPanel;
private GrayPanel grayPanel;
private JBasicTextArea resultTextArea;
private JBasicTextArea metadataTextArea;
private RouterTopology routerTopology;
private LayoutDialog layoutDialog;
......@@ -128,9 +130,11 @@ public class ServiceTopology extends AbstractTopology {
executeGrayReleaseMenuItem = new JBasicMenuItem(createExecuteGrayReleaseAction());
refreshGrayStateMenuItem = new JBasicMenuItem(createRefreshGrayStateAction());
executeGrayRouterMenuItem = new JBasicMenuItem(createExecuteGrayRouterAction());
showMetadataActionMenuItem = new JBasicMenuItem(createShowMetadataAction());
popupMenu.add(executeGrayReleaseMenuItem, 0);
popupMenu.add(executeGrayRouterMenuItem, 1);
popupMenu.add(refreshGrayStateMenuItem, 2);
popupMenu.add(showMetadataActionMenuItem, 3);
}
@Override
......@@ -145,6 +149,7 @@ public class ServiceTopology extends AbstractTopology {
TElement element = TElementManager.getSelectedElement(dataBox);
executeGrayReleaseMenuItem.setVisible(element != null && isPlugin(element));
refreshGrayStateMenuItem.setVisible(element != null && isPlugin(element));
showMetadataActionMenuItem.setVisible(node != null);
if (group != null || node != null || element != null) {
return popupMenu;
......@@ -184,6 +189,7 @@ public class ServiceTopology extends AbstractTopology {
toolBar.add(new JClassicButton(createExecuteGrayReleaseAction()));
toolBar.add(new JClassicButton(createExecuteGrayRouterAction()));
toolBar.add(new JClassicButton(createRefreshGrayStateAction()));
toolBar.add(new JClassicButton(createShowMetadataAction()));
toolBar.add(new JClassicButton(createPushGlobalConfigAction()));
toolBar.add(pushControllMenubutton);
toolBar.addSeparator();
......@@ -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);
}
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
public void showLayout() {
if (layoutDialog == null) {
......@@ -693,6 +723,34 @@ public class ServiceTopology extends AbstractTopology {
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() {
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;
......
......@@ -12,6 +12,7 @@ execute_gray_release=执行灰度发布
execute_gray_router=执行灰度路由
refresh_gray_state=刷新灰度状态
push_global_config=全链路灰度发布
show_metadata=查看元数据
push_control_mode=推送模式设置
push_async_mode=异步推送
push_sync_mode=同步推送
......@@ -64,6 +65,7 @@ node_not_for_gray_release=该服务不能执行灰度发布
node_not_for_gray_router=该服务不能执行执行灰度路由
group_not_for_refresh_gray_state=该服务集群不能刷新灰度状态
node_not_for_refresh_gray_state=该服务不能刷新灰度状态
node_has_no_metadata=该服务不包含元数据
not_for_push_global_config=全链路灰度发布,只能在“规则推送到远程配置中心”模式下运行
select_a_global_group=请选择一个服务集群组
......
......@@ -12,6 +12,7 @@ execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03
execute_gray_router=\u6267\u884c\u7070\u5ea6\u8def\u7531
refresh_gray_state=\u5237\u65b0\u7070\u5ea6\u72b6\u6001
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_async_mode=\u5f02\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
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
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
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