Commit ce936acf by Nepxion

修改界面

parent 3819d1f6
...@@ -25,6 +25,7 @@ import java.util.Iterator; ...@@ -25,6 +25,7 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.Vector;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.Box; import javax.swing.Box;
...@@ -64,16 +65,21 @@ import com.nepxion.swing.button.JClassicMenuButton; ...@@ -64,16 +65,21 @@ import com.nepxion.swing.button.JClassicMenuButton;
import com.nepxion.swing.combobox.JBasicComboBox; import com.nepxion.swing.combobox.JBasicComboBox;
import com.nepxion.swing.dialog.JExceptionDialog; import com.nepxion.swing.dialog.JExceptionDialog;
import com.nepxion.swing.dialog.JOptionDialog; import com.nepxion.swing.dialog.JOptionDialog;
import com.nepxion.swing.framework.dockable.JDockable;
import com.nepxion.swing.framework.dockable.JDockableView;
import com.nepxion.swing.handle.HandleManager; import com.nepxion.swing.handle.HandleManager;
import com.nepxion.swing.icon.IconFactory; import com.nepxion.swing.icon.IconFactory;
import com.nepxion.swing.label.JBasicLabel; import com.nepxion.swing.label.JBasicLabel;
import com.nepxion.swing.layout.filed.FiledLayout; import com.nepxion.swing.layout.filed.FiledLayout;
import com.nepxion.swing.layout.table.TableLayout; import com.nepxion.swing.layout.table.TableLayout;
import com.nepxion.swing.list.BasicListModel;
import com.nepxion.swing.list.JBasicList;
import com.nepxion.swing.locale.SwingLocale; import com.nepxion.swing.locale.SwingLocale;
import com.nepxion.swing.menuitem.JBasicMenuItem; import com.nepxion.swing.menuitem.JBasicMenuItem;
import com.nepxion.swing.menuitem.JBasicRadioButtonMenuItem; import com.nepxion.swing.menuitem.JBasicRadioButtonMenuItem;
import com.nepxion.swing.optionpane.JBasicOptionPane; import com.nepxion.swing.optionpane.JBasicOptionPane;
import com.nepxion.swing.popupmenu.JBasicPopupMenu; import com.nepxion.swing.popupmenu.JBasicPopupMenu;
import com.nepxion.swing.query.JQueryHierarchy;
import com.nepxion.swing.scrollpane.JBasicScrollPane; import com.nepxion.swing.scrollpane.JBasicScrollPane;
import com.nepxion.swing.tabbedpane.JBasicTabbedPane; import com.nepxion.swing.tabbedpane.JBasicTabbedPane;
import com.nepxion.swing.textarea.JBasicTextArea; import com.nepxion.swing.textarea.JBasicTextArea;
...@@ -102,6 +108,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -102,6 +108,7 @@ public class ServiceTopology extends AbstractTopology {
private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem; private JBasicRadioButtonMenuItem ruleToConfigCenterRadioButtonMenuItem;
private JBasicRadioButtonMenuItem ruleToServiceRadioButtonMenuItem; private JBasicRadioButtonMenuItem ruleToServiceRadioButtonMenuItem;
private FilterPanel filterPanel; private FilterPanel filterPanel;
private GlobalGrayPanel globalGrayPanel;
private GrayPanel grayPanel; private GrayPanel grayPanel;
private JBasicTextArea resultTextArea; private JBasicTextArea resultTextArea;
private RouterTopology routerTopology; private RouterTopology routerTopology;
...@@ -109,6 +116,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -109,6 +116,7 @@ public class ServiceTopology extends AbstractTopology {
private Map<String, List<Instance>> globalInstanceMap; private Map<String, List<Instance>> globalInstanceMap;
private String globalFilter; private String globalFilter;
private Vector<Object> globalFilterVector = new Vector<Object>();
public ServiceTopology() { public ServiceTopology() {
initializeToolBar(); initializeToolBar();
...@@ -167,7 +175,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -167,7 +175,7 @@ public class ServiceTopology extends AbstractTopology {
pushControlPopupMenu.add(ruleToConfigCenterRadioButtonMenuItem); pushControlPopupMenu.add(ruleToConfigCenterRadioButtonMenuItem);
pushControlPopupMenu.add(ruleToServiceRadioButtonMenuItem); pushControlPopupMenu.add(ruleToServiceRadioButtonMenuItem);
JClassicMenuButton pushControllMenubutton = new JClassicMenuButton(ConsoleLocale.getString("push_control_mode"), ConsoleIconFactory.getSwingIcon("component/advanced_16.png"), ConsoleLocale.getString("push_control_mode")); JClassicMenuButton pushControllMenubutton = new JClassicMenuButton(ConsoleLocale.getString("push_control_mode"), ConsoleIconFactory.getSwingIcon("netbean/custom_node_16.png"), ConsoleLocale.getString("push_control_mode"));
pushControllMenubutton.setPopupMenu(pushControlPopupMenu); pushControllMenubutton.setPopupMenu(pushControlPopupMenu);
JToolBar toolBar = getGraph().getToolbar(); JToolBar toolBar = getGraph().getToolbar();
...@@ -178,6 +186,7 @@ public class ServiceTopology extends AbstractTopology { ...@@ -178,6 +186,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(createPushGlobalConfigAction()));
toolBar.add(pushControllMenubutton); toolBar.add(pushControllMenubutton);
toolBar.addSeparator(); toolBar.addSeparator();
toolBar.add(createConfigButton(true)); toolBar.add(createConfigButton(true));
...@@ -548,6 +557,15 @@ public class ServiceTopology extends AbstractTopology { ...@@ -548,6 +557,15 @@ public class ServiceTopology extends AbstractTopology {
globalInstanceMap = instanceMap; globalInstanceMap = instanceMap;
globalFilter = filterPanel.getFilter(); globalFilter = filterPanel.getFilter();
globalFilterVector.clear();
if (!StringUtils.equals(globalFilter, NO_FILTER)) {
globalFilterVector.add(globalFilter);
} else {
for (int i = 0; i < filters.length - 1; i++) {
globalFilterVector.add(filters[i]);
}
}
String title = ConsoleLocale.getString("title_service_cluster_gray_release"); String title = ConsoleLocale.getString("title_service_cluster_gray_release");
if (!StringUtils.equals(globalFilter, NO_FILTER)) { if (!StringUtils.equals(globalFilter, NO_FILTER)) {
title += " [" + globalFilter + "]"; title += " [" + globalFilter + "]";
...@@ -696,6 +714,25 @@ public class ServiceTopology extends AbstractTopology { ...@@ -696,6 +714,25 @@ public class ServiceTopology extends AbstractTopology {
return action; 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;
public void execute(ActionEvent e) {
if (globalGrayPanel == null) {
globalGrayPanel = new GlobalGrayPanel();
globalGrayPanel.setPreferredSize(new Dimension(1300, 800));
}
globalGrayPanel.setFilters(globalFilterVector);
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), globalGrayPanel, ConsoleLocale.getString("execute_gray_router"), JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/navigator.png"), new Object[] { SwingLocale.getString("close") }, null, true);
}
};
return action;
}
private class FilterPanel extends JPanel { private class FilterPanel extends JPanel {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -719,6 +756,59 @@ public class ServiceTopology extends AbstractTopology { ...@@ -719,6 +756,59 @@ public class ServiceTopology extends AbstractTopology {
} }
} }
private class GlobalGrayPanel extends JQueryHierarchy {
private static final long serialVersionUID = 1L;
private JBasicList filterList;
private JBasicTextArea ruleTextArea;
public GlobalGrayPanel() {
filterList = new JBasicList() {
private static final long serialVersionUID = 1L;
@Override
public void executeClicked(int selectedRow) {
String filter = getListData().get(selectedRow).toString();
String config = ServiceController.remoteConfigView(filter, filter);
ruleTextArea.setText(config);
}
};
filterList.setSelectionMode(JBasicList.SINGLE_SELECTION);
JPanel filterPanel = new JPanel();
filterPanel.setLayout(new BorderLayout());
filterPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
filterPanel.add(new JBasicScrollPane(filterList));
ruleTextArea = new JBasicTextArea();
JPanel rulePanel = new JPanel();
rulePanel.setLayout(new BorderLayout());
rulePanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
rulePanel.add(new JBasicScrollPane(ruleTextArea));
JDockable dockable = (JDockable) getDockableContainer().getContentPane();
JDockableView filterView = (JDockableView) dockable.getPaneAt(0);
filterView.setTitle("服务集群组");
filterView.setIcon(ConsoleIconFactory.getSwingIcon("netbean/stack_16.png"));
filterView.setToolTipText("服务集群组");
filterView.add(filterPanel);
JDockableView ruleView = (JDockableView) dockable.getPaneAt(1);
ruleView.setTitle("全局规则");
ruleView.setIcon(ConsoleIconFactory.getSwingIcon("netbean/custom_node_16.png"));
ruleView.setToolTipText("全局规则");
ruleView.add(rulePanel);
}
@SuppressWarnings("unchecked")
public void setFilters(Vector<Object> filters) {
filterList.setModel(new BasicListModel(filters));
ruleTextArea.setText("");
}
}
private class GrayPanel extends JPanel { private class GrayPanel extends JPanel {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -9,6 +9,7 @@ show_topology=显示服务拓扑 ...@@ -9,6 +9,7 @@ show_topology=显示服务拓扑
execute_gray_release=执行灰度发布 execute_gray_release=执行灰度发布
execute_gray_router=执行灰度路由 execute_gray_router=执行灰度路由
refresh_gray_state=刷新灰度状态 refresh_gray_state=刷新灰度状态
push_global_config=推送全局规则
push_control_mode=推送模式设置 push_control_mode=推送模式设置
push_async_mode=异步推送 push_async_mode=异步推送
push_sync_mode=同步推送 push_sync_mode=同步推送
......
...@@ -9,6 +9,7 @@ show_topology=\u663e\u793a\u670d\u52a1\u62d3\u6251 ...@@ -9,6 +9,7 @@ show_topology=\u663e\u793a\u670d\u52a1\u62d3\u6251
execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03 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=\u63a8\u9001\u5168\u5c40\u89c4\u5219
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
......
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