/** * Build a shape for the entire subtree by joining together the shapes for each of its edges. * Vertices included since needed for FullTextPanel. */ public Shape constructInternalShape(DiagramBase diagram, boolean includeVertices) { GeneralPath shape = new GeneralPath(); Enumeration edges = m_edgeList.elements(); while (edges.hasMoreElements()) { TreeEdge edge = (TreeEdge) edges.nextElement(); Shape edgeShape = edge.getSchemeShape(diagram); PathIterator path = edgeShape.getPathIterator(null); shape.append(path, false); if (includeVertices) { Shape vertexShape; if (!edge.getSourceVertex().isVirtual()) { vertexShape = edge.getSourceVertex().getShape(diagram); path = vertexShape.getPathIterator(null); shape.append(path, false); } if (!edge.getDestVertex().isVirtual()) { vertexShape = edge.getDestVertex().getShape(diagram); path = vertexShape.getPathIterator(null); shape.append(path, false); } } } BasicStroke stroke = new BasicStroke( diagram.getSubtreeLineWidth() - DiagramBase.EDGE_OUTLINE_WIDTH + 1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER); internalShapeTable.put(diagram, stroke.createStrokedShape(shape)); return (Shape) internalShapeTable.get(diagram); }
/** Build a shape for the entire subtree by joining together the shapes for each of its edges. */ public Shape constructShape(DiagramBase diagram) { GeneralPath shape = new GeneralPath(); Enumeration edges = m_edgeList.elements(); while (edges.hasMoreElements()) { TreeEdge edge = (TreeEdge) edges.nextElement(); if (!edge.visible) { continue; } Shape edgeShape = edge.getSchemeShape(diagram); PathIterator path = edgeShape.getPathIterator(null); shape.append(path, false); } BasicStroke stroke = new BasicStroke( diagram.getSubtreeLineWidth(), BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER); shapeTable.put(diagram, stroke.createStrokedShape(shape)); return (Shape) shapeTable.get(diagram); }
private void init() throws Exception { this.setResizable(true); String title = "Edit owners"; if (propText.size() == 0) { title += " (no propositions selected)"; } else if (propText.size() == 1) { title += " of proposition: \"" + DiagramBase.prepareMessageLabel( (String) propText.elementAt(0), DiagramBase.MAX_MESSAGELABEL_SIZE) + "\""; } else { title += " (" + propText.size() + " propositions selected)"; } this.setTitle(title); masterPanel = new SizedPanel(600, 300); masterPanel.setLayout(new BorderLayout()); this.getContentPane().add(masterPanel); // okButton.setActionCommand("okButton"); okButton.setMnemonic(KeyEvent.VK_C); buttonPanel.add(okButton); okButton.addActionListener(this); masterPanel.add(buttonPanel, BorderLayout.SOUTH); TablePanel ownerSourcePanel = new TablePanel(new BorderLayout()); JPanel topSourcePanel = new JPanel(new BorderLayout()); topSourcePanel.add(new JLabel("Owner name:", JLabel.LEFT), BorderLayout.NORTH); ownerText = new JTextField(); topSourcePanel.add(ownerText, BorderLayout.CENTER); JPanel buttonSourcePanel = new JPanel(); deleteSourceButton = new JButton("Delete"); deleteSourceButton.setMnemonic(KeyEvent.VK_D); deleteSourceButton.addActionListener(this); addOwnerButton = new JButton("Add"); addOwnerButton.setMnemonic(KeyEvent.VK_A); addOwnerButton.addActionListener(this); buttonSourcePanel.add(addOwnerButton); buttonSourcePanel.add(deleteSourceButton); topSourcePanel.add(buttonSourcePanel, BorderLayout.SOUTH); ownerSourcePanel.add(topSourcePanel, BorderLayout.SOUTH); ownerSourceTable = new JTable(); ownerSourceScrollPane = new JScrollPane(); ownerSourceScrollPane.setViewportView(ownerSourceTable); ownerSourcePanel.add(new JLabel("Available owners", JLabel.CENTER), BorderLayout.NORTH); ownerSourcePanel.add(ownerSourceScrollPane, BorderLayout.CENTER); ownerSourceTableModel = new OwnerSourceTableModel(araucaria, ownerSourceTable, this); ownerSourceTable.setModel(ownerSourceTableModel); ownerSourceTableModel.updateTable(araucaria.getArgument().getOwnerList()); masterPanel.add(ownerSourcePanel, BorderLayout.WEST); TablePanel ownerNodesPanel = new TablePanel(new BorderLayout()); ownerNodesTable = new JTable(); ownerNodesScrollPane = new JScrollPane(); ownerNodesScrollPane.setViewportView(ownerNodesTable); ownerNodesPanel.add( new JLabel("Owners assigned to proposition(s)", JLabel.CENTER), BorderLayout.NORTH); ownerNodesPanel.add(ownerNodesScrollPane, BorderLayout.CENTER); ownerNodesTableModel = new OwnerNodesTableModel(araucaria, ownerNodesTable); ownerNodesTable.setModel(ownerNodesTableModel); ownerNodesTableModel.updateTable(araucaria.getArgument().getSelectedVertexOwners()); masterPanel.add(ownerNodesPanel, BorderLayout.EAST); setupArrows(); JPanel arrowBox = new JPanel(new GridLayout(3, 1, 10, 10)); if (propText.size() > 0) { arrowBox.add(leftArrow); arrowBox.add(rightArrow); } JPanel arrowPanel = new JPanel(); arrowPanel.add(arrowBox); masterPanel.add(arrowPanel, BorderLayout.CENTER); }