this.add(sourceLabelPanel, new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); this.add(candidateScroll, new GridBagConstraints(0, 1, 1, 5, .5, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); this.add(addPanel, new GridBagConstraints(1, 2, 1, 2, 0, .25, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); this.add(removePanel, new GridBagConstraints(1, 4, 1, 2, 0, .25, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 5, 0, 5), 0, 0)); this.add(destLabel, new GridBagConstraints(2, 0, 1, 1, 0, 0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); this.add(selectedScroll, new GridBagConstraints(2, 1, 1, 5, .5, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
/** * Sets new elements to select * @param elements elements to set */ public void setCandidateElements(LinkedList<Object[]> elements) { this.resetTables(); DefaultTableModel candidateModel = (DefaultTableModel)candidateTable.getModel(); for(Object [] element : elements) { if(element.length != candidateModel.getColumnCount()) throw new RuntimeException("Unsupported element length"); candidateModel.addRow(element); } candidateElements.clear(); candidateElements.addAll(elements); }
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); selectionPanelElements.clear(); netPlan.getNodes().stream().filter(n -> n != newSelectedNode).forEach(n -> selectionPanelElements.add(new Object[]{n,n.getIndex(),n.getId()})); selectionPanel.setCandidateElements(selectionPanelElements); }); if (selectionPanel.getSelectedElements().size() <= 1) throw new Net2PlanException("A multicast demand must have at least two egress nodes"); LinkedList<Object[]> egressNodes_selection = selectionPanel.getSelectedElements(); Set<Node> egressNodes = new HashSet<Node>(); for (Object [] ob : egressNodes_selection)
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); selectionPanelElements.clear(); netPlan.getLinks(layer).stream().forEach(l -> selectionPanelElements.add(new Object[]{l,l.getIndex(),l.getId()})); selectionPanel.setCandidateElements(selectionPanelElements); }); MulticastDemand demand = netPlan.getMulticastDemandFromId(multicastDemandId); Set<Link> links = new HashSet<Link>(); LinkedList<Object[]> selectedLinks = selectionPanel.getSelectedElements(); for (Object [] ob : selectedLinks)