@Override public void actionPerformed(ActionEvent e) { try { JTable table = (JTable) e.getSource(); int modelRow = Integer.parseInt(e.getActionCommand()); final long backupRouteId = (Long) table.getModel().getValueAt(modelRow, 0); final Route backupRoute = netPlan.getRouteFromId(backupRouteId); netPlan.getRouteFromId(routeId).removeBackupRoute(backupRoute); callback.getPickManager().reset(); callback.updateVisualizationAfterChanges(); callback.addNetPlanChange(); String segmentLabel = "Backup route id " + backupRouteId + ": path = " + getSequenceLinkResourceIndexes(backupRoute) + ", seq. nodes = " + getSequenceNodeIndexesWithResourceInfo(backupRoute) + ", occupied capacity = " + getSequenceOccupiedCapacities(backupRoute); backupRouteSelector.addItem(StringLabeller.of(backupRouteId, segmentLabel)); ((DefaultTableModel) table.getModel()).removeRow(modelRow); table.setEnabled(true); if (table.getModel().getRowCount() == 0) { ((DefaultTableModel) table.getModel()).addRow(new Object[6]); table.setEnabled(false); } } catch (Throwable e1) { } } };
final JComboBox<StringLabeller<Node>> destinationNodeSelector = new WiderJComboBox(); final JComboBox<StringLabeller<RoutingType>> routingTypeSelector = new WiderJComboBox(); routingTypeSelector.addItem(StringLabeller.of(RoutingType.SOURCE_ROUTING, "Source routing")); routingTypeSelector.addItem(StringLabeller.of(RoutingType.HOP_BY_HOP_ROUTING, "Hop-by-hop routing")); routingTypeSelector.setSelectedIndex(0); originNodeSelector.addItem(StringLabeller.of(node, nodeName)); destinationNodeSelector.addItem(StringLabeller.of(node, nodeName));
JSelectionTablePanel selectionPanel = new JSelectionTablePanel(StringUtils.arrayOf("Node","Index","Id"), "Nodes"); LinkedList<Object[]> selectionPanelElements = new LinkedList<>(); netPlan.getNodes().stream().forEach(n -> originNodeComboBox.addItem(StringLabeller.of(n.getId(),n.toString()))); netPlan.getNodes().stream().filter(n -> n != netPlan.getNode(0)).forEach(n -> selectionPanelElements.add(new Object[]{n,n.getIndex(),n.getId()})); selectionPanel.setCandidateElements(selectionPanelElements);
JSelectionTablePanel selectionPanel = new JSelectionTablePanel(StringUtils.arrayOf("Link","Index","Id"), "Links"); LinkedList<Object[]> selectionPanelElements = new LinkedList<>(); netPlan.getMulticastDemands(layer).stream().forEach(md -> multicastDemandComboBox.addItem(StringLabeller.of(md.getId(),md.toString()))); netPlan.getLinks(layer).stream().forEach(l -> selectionPanelElements.add(new Object[]{l,l.getIndex(),l.getId()})); selectionPanel.setCandidateElements(selectionPanelElements);
if (!nodeName.isEmpty()) nodeLabel += " (" + nodeName + ")"; nodeSelector.addItem(StringLabeller.of(node.getId(), nodeLabel)); egressNodeLabel += " (" + demand.getEgressNode().getName() + ")"; String demandLabel = "d" + demand.getId() + ": " + ingressNodeLabel + " -> " + egressNodeLabel; demandSelector.addItem(StringLabeller.of(demand.getId(), demandLabel));
@Override public void itemStateChanged(ItemEvent e) { linkSelector.removeAllItems(); Object selectedItem_Node = nodeSelector.getSelectedItem(); if(selectedItem_Node == null) return; final long nodeId = (long) ((StringLabeller) selectedItem_Node).getObject(); final Node node = netPlan.getNodeFromId(nodeId); for (Link link : node.getOutgoingLinks(layer)) { String originNodeLabel = "Node " + link.getOriginNode().getId(); if (!link.getOriginNode().getName().isEmpty()) originNodeLabel += " (" + link.getOriginNode().getName() + ")"; String destinationNodeLabel = "Node " + link.getDestinationNode().getId(); if (!link.getDestinationNode().getName().isEmpty()) destinationNodeLabel += " (" + link.getDestinationNode().getName() + ")"; String linkLabel = "e" + link.getId() + ": " + originNodeLabel + " -> " + destinationNodeLabel; linkSelector.addItem(StringLabeller.of(link.getId(), linkLabel)); } if(linkSelector.getItemCount() == 0) linkSelector.setSelectedIndex(-1); else linkSelector.setSelectedIndex(0); } };
String nodeLabel = "Node " + n.getIndex(); if (!nodeName.isEmpty()) nodeLabel += " (" + nodeName + ")"; hostNodeSelector.addItem(StringLabeller.of(n.getId(), nodeLabel)); String nodeLabel = "Node " + n.getIndex(); if (!nodeName.isEmpty()) nodeLabel += " (" + nodeName + ")"; hostNodeSelector.addItem(StringLabeller.of(n.getId(), nodeLabel));
firstLink.addItem(StringLabeller.of(link.getId(), String.format("e%d: n%d (%s) => n%d (%s)", link.getId(), ingressNode.getId(), ingressNodeName, destinationNodeId, destinationNodeName))); newLink.addItem(StringLabeller.of(nextLink.getId(), String.format("e%d: n%d (%s) => n%d (%s)", nextLink.getId(), destinationNodeId, destinationNodeName, nextDestinationNodeId, nextDestinationNodeName))); demandLabel += ", carried traffic = " + r_d; demandSelector.addItem(StringLabeller.of(demandId, demandLabel));
String layerLabel = "Layer " + layerId; if (!layerName.isEmpty()) layerLabel += " (" + layerName + ")"; layerSelector.addItem(StringLabeller.of(layerId, layerLabel)); String layerLabel = "Layer " + layerId; if (!layerName.isEmpty()) layerLabel += " (" + layerName + ")"; layerSelector.addItem(StringLabeller.of(layerId, layerLabel)); String layerLabel = "Layer " + layerId; if (!layerName.isEmpty()) layerLabel += " (" + layerName + ")"; layerSelector.addItem(StringLabeller.of(layerId, layerLabel));
if (!layerName.isEmpty()) layerLabel += " (" + layerName + ")"; layerSelector.addItem(StringLabeller.of(layerId, layerLabel));
String layerLabel = "Layer " + layerId; if (!layerName.isEmpty()) layerLabel += " (" + layerName + ")"; layerSelector.addItem(StringLabeller.of(layerId, layerLabel)); String layerLabel = "Layer " + layerId; if (!layerName.isEmpty()) layerLabel += " (" + layerName + ")"; layerSelector.addItem(StringLabeller.of(layerId, layerLabel));
", seq. nodes = " + getSequenceNodeIndexesWithResourceInfo(backupRoute) + ", occupied capacity = " + getSequenceOccupiedCapacities(backupRoute); backupRouteSelector.addItem(StringLabeller.of(backupRoute.getId(), segmentLabel));