Commit 9102e520 by Nepxion

增加图形化灰度发布功能

parent 6f7eafc9
......@@ -15,9 +15,15 @@ import twaver.Generator;
import twaver.TWaverConst;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.HierarchyEvent;
import java.util.List;
import java.util.Map;
import javax.swing.Box;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JToolBar;
import org.apache.commons.collections4.CollectionUtils;
......@@ -27,32 +33,51 @@ import com.nepxion.cots.twaver.element.TLink;
import com.nepxion.cots.twaver.element.TNode;
import com.nepxion.cots.twaver.graph.TGraphControlBar;
import com.nepxion.cots.twaver.graph.TGraphManager;
import com.nepxion.discovery.console.desktop.entity.InstanceEntity;
import com.nepxion.discovery.console.desktop.entity.RouterEntity;
import com.nepxion.discovery.console.desktop.icon.ConsoleIconFactory;
import com.nepxion.discovery.console.desktop.locale.ConsoleLocale;
import com.nepxion.discovery.console.desktop.workspace.topology.AbstractTopology;
import com.nepxion.discovery.console.desktop.workspace.topology.TopologyEntity;
import com.nepxion.discovery.console.desktop.workspace.topology.TopologyEntityType;
import com.nepxion.swing.action.JSecurityAction;
import com.nepxion.swing.button.ButtonManager;
import com.nepxion.swing.button.JBasicToggleButton;
import com.nepxion.swing.button.JClassicButton;
import com.nepxion.swing.combobox.JBasicComboBox;
import com.nepxion.swing.listener.DisplayAbilityListener;
import com.nepxion.swing.textfield.JBasicTextField;
public class RouterTopology extends AbstractTopology {
private static final long serialVersionUID = 1L;
private int nodeStartX = 300;
private int nodeStartX = 100;
private int nodeStartY = 150;
private int nodeHorizontalGap = 200;
private int nodeVerticalGap = 0;
private TopologyEntity serviceNodeEntity = new TopologyEntity(TopologyEntityType.SERVICE, true, true);
private JBasicTextField textField = new JBasicTextField();
private JBasicComboBox comboBox = new JBasicComboBox();
public RouterTopology() {
initializeToolBar();
initializeTopology();
}
private void initializeToolBar() {
textField.setPreferredSize(new Dimension(655, textField.getPreferredSize().height));
JToolBar toolBar = getGraph().getToolbar();
toolBar.addSeparator();
toolBar.add(Box.createHorizontalStrut(5));
toolBar.add(new JLabel(ConsoleLocale.getString("service_list")));
toolBar.add(Box.createHorizontalStrut(5));
toolBar.add(comboBox);
toolBar.add(new JClassicButton(createAddServiceAction()));
toolBar.add(textField);
toolBar.add(new JClassicButton(createExecuteRouterAction()));
ButtonManager.updateUI(toolBar);
}
......@@ -73,11 +98,19 @@ public class RouterTopology extends AbstractTopology {
}
});
TGraphControlBar graphControlBar = (TGraphControlBar) graph.getControlBarInternalFrame().getContent();
JBasicToggleButton toggleButton = (JBasicToggleButton) graphControlBar.getViewToolBar().getViewOutlook().getComponent(10);
toggleButton.setSelected(true);
addHierarchyListener(new DisplayAbilityListener() {
public void displayAbilityChanged(HierarchyEvent e) {
TGraphControlBar graphControlBar = (TGraphControlBar) graph.getControlBarInternalFrame().getContent();
JBasicToggleButton toggleButton = (JBasicToggleButton) graphControlBar.getViewToolBar().getViewOutlook().getComponent(10);
toggleButton.setSelected(true);
TGraphManager.layout(graph);
TGraphManager.layout(graph);
graph.getLayoutInternalFrame().setLocation(3000, 3000);
// graph.adjustComponentPosition(graph.getLayoutInternalFrame());
removeHierarchyListener(this);
}
});
}
public void route(RouterEntity routerEntity) {
......@@ -135,4 +168,32 @@ public class RouterTopology extends AbstractTopology {
dataBox.addElement(link);
}
@SuppressWarnings({ "unchecked" })
public void setInstanceMap(Map<String, List<InstanceEntity>> instanceMap) {
comboBox.setModel(new DefaultComboBoxModel<>(instanceMap.keySet().toArray()));
}
private JSecurityAction createAddServiceAction() {
JSecurityAction action = new JSecurityAction(ConsoleIconFactory.getSwingIcon("direction_east.png")) {
private static final long serialVersionUID = 1L;
public void execute(ActionEvent e) {
}
};
return action;
}
private JSecurityAction createExecuteRouterAction() {
JSecurityAction action = new JSecurityAction(ConsoleLocale.getString("execute_router"), ConsoleIconFactory.getSwingIcon("netbean/action_16.png"), ConsoleLocale.getString("execute_router")) {
private static final long serialVersionUID = 1L;
public void execute(ActionEvent e) {
}
};
return action;
}
}
\ No newline at end of file
......@@ -343,6 +343,7 @@ public class ServiceTopology extends AbstractTopology {
}
routerTopology.route(routerEntity);
routerTopology.setInstanceMap(instanceMap);
JBasicOptionPane.showOptionDialog(HandleManager.getFrame(ServiceTopology.this), routerTopology, "路由信息", JBasicOptionPane.DEFAULT_OPTION, JBasicOptionPane.PLAIN_MESSAGE, ConsoleIconFactory.getSwingIcon("banner/navigator.png"), new Object[] { SwingLocale.getString("close") }, null, true);
}
......
......@@ -10,6 +10,9 @@ execute_gray_release=执行灰度发布
refresh_gray_state=刷新灰度状态
view_router_info=查看路由信息
service_list=服务列表
execute_router=执行路由
get_service_instances_failure=获取服务和实例列表失败
query_data_failure=查询数据失败,可能该实例已下线
......
......@@ -10,6 +10,9 @@ execute_gray_release=\u6267\u884c\u7070\u5ea6\u53d1\u5e03
refresh_gray_state=\u5237\u65b0\u7070\u5ea6\u72b6\u6001
view_router_info=\u67e5\u770b\u8def\u7531\u4fe1\u606f
service_list=\u670d\u52a1\u5217\u8868
execute_router=\u6267\u884c\u8def\u7531
get_service_instances_failure=\u83b7\u53d6\u670d\u52a1\u548c\u5b9e\u4f8b\u5217\u8868\u5931\u8d25
query_data_failure=\u67e5\u8be2\u6570\u636e\u5931\u8d25\uff0c\u53ef\u80fd\u8be5\u5b9e\u4f8b\u5df2\u4e0b\u7ebf
......
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