1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| package exp6;
import org.jgraph.JGraph;
import java.awt.geom.Rectangle2D;
import org.jgraph.graph.BasicMarqueeHandler;
import java.awt.geom.Point2D;
import java.awt.BorderLayout;
import org.jgraph.graph.PortView;
import org.jgraph.graph.DefaultGraphCell;
import org.jgraph.graph.CellView;
import org.jgraph.graph.DefaultGraphModel;
import org.jgraph.graph.DefaultPort;
import org.jgraph.graph.GraphConstants;
import org.jgraph.graph.AttributeMap;
import java.util.Hashtable;
import java.util.Map;
import org.jgraph.graph.GraphModel;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import exp6.MyVertexView;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.JToggleButton;
import java.awt.Color;
import java.awt.*;
import javax.swing.JScrollPane;
import org.jgraph.graph.DefaultEdge;
public class DynamicGraph extends JFrame {
private int stateAppl = 0;
JGraph myGraph = new JGraph(new DefaultGraphModel());
JToggleButton noCell;
//constructeur
public DynamicGraph() {
super("SimpleGraph");
myGraph.setMarqueeHandler(new MyMarqueeHandler());
JScrollPane myScrollPane = new JScrollPane(myGraph);
getContentPane().add(myScrollPane);
JPanel myPanel = new JPanel();//panel qui contient les boutons:annuler,ajouter,supprimer
////*********Listner pour bouton annuler******************************
//noCell = new JToggleButton("Annuler");
//noCell.addActionListener(new ActionListener() {//Listner du bouton annuler
//public void actionPerformed(ActionEvent e) {
//stateAppl = 0;
//}
//});//pour la méthode ActionListner, ce bouton n'est pas encore fonctinnel
//******Listner bouton ajouter*********************
JToggleButton addCell = new JToggleButton("Ajouter");
addCell.addActionListener(new ActionListener() {//Listner du bouton ajouter
public void actionPerformed(ActionEvent e) {
stateAppl=1;
}
});//fin de l'action Ajouter;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//***Listner bouton supprimer***100%*************************
JToggleButton removeCell = new JToggleButton("Supprimer");
removeCell.addActionListener(new ActionListener() {//Listner du bouton supprimer
public void actionPerformed(ActionEvent e) {
Object[] t = myGraph.getSelectionCells();
t = myGraph.getDescendants(t);
myGraph.getGraphLayoutCache().remove(t);
}
});//fin de action Supprimer;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//le code associé à l'interface UI
myPanel.add(noCell);//ajouter le bouton annuler au Panel
myPanel.add(addCell);//ajouter le bouton ajouter au Panel
myPanel.add(removeCell);//ajouter le bouton annuler au Panel
getContentPane().add(myPanel,BorderLayout.SOUTH);//mettre le panel ds le graph
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 300);//mettre la bonne size
setVisible(true);
}//fin du constructeur
class MyMarqueeHandler extends BasicMarqueeHandler {
protected Point2D start, current;
protected PortView port, firstPort;
//ajouter dynamiquement une cellule%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e)) {
if (stateAppl == 1) {
DefaultGraphCell myFirst = new DefaultGraphCell("cellule");//creation d'une cellule
DefaultPort myPort1 = new DefaultPort();//creation du port
myFirst.add(myPort1);//ajouter le port au cellue
Map myHashTable = new Hashtable();
GraphConstants.setBounds(myHashTable, new
Rectangle2D.Double(e.getX(),e.getY(),40,100));//mettre le triangle à la position de la souris
myFirst.setAttributes(new AttributeMap(myHashTable));//associe le rectangle à la cellule
myGraph.getGraphLayoutCache().insert(myFirst);
noCell.setSelected(true);
stateAppl = 0;
}//fin if
}
}//fin de methode mousePressed
}
} |
Partager