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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.EventObject;
import javax.swing.JCheckBox;
import javax.swing.JTree;
import javax.swing.event.CellEditorListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeCellEditor;
import javax.swing.tree.TreeCellRenderer;
public class MyJTree{
DefaultMutableTreeNode racine;
DefaultMutableTreeNode noeud;
JTree Tree;
Parsing Parse = new Parsing();
private ArrayList<PGN> pgns= null;
private ArrayList<SPN> spns = null;
public JTree BuildTree(){
racine = new DefaultMutableTreeNode("PGN");
Tree = new JTree(racine);
Tree.setLayout(new BorderLayout());
return Tree;
}
public JTree BuildPGN(String ifilename){
RenduComposant rc = new RenduComposant();
EditComposant ec = new EditComposant();
JCheckBox jcb = new JCheckBox();
pgns= Parse.CreationPGN(ifilename);
racine = new DefaultMutableTreeNode(new JCheckBox("PGN"));
for(int i=0;i<pgns.size();i++){
jcb=new JCheckBox(pgns.get(i).getName());
noeud =new DefaultMutableTreeNode(jcb,true);
racine.add(noeud);
ArrayList<SPN> spns = pgns.get(i).getSpns();
for(int j=0;j<spns.size();j++){
jcb=new JCheckBox(spns.get(j).getName());
DefaultMutableTreeNode noeudfils = new DefaultMutableTreeNode(jcb,true);
noeud.add(noeudfils);
jcb=new JCheckBox("Start bit :"+spns.get(j).getStart_bit());
DefaultMutableTreeNode noeudfilsfils1 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Length :"+spns.get(j).getLength());
DefaultMutableTreeNode noeudfilsfils2 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Encodage :"+spns.get(j).getEncodage());
DefaultMutableTreeNode noeudfilsfils3 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Signe :"+spns.get(j).getSigned());
DefaultMutableTreeNode noeudfilsfils4 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Scaling :"+spns.get(j).getScaling());
DefaultMutableTreeNode noeudfilsfils5 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Offset :"+spns.get(j).getOffset());
DefaultMutableTreeNode noeudfilsfils6 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Range min :"+spns.get(j).getRange_min());
DefaultMutableTreeNode noeudfilsfils7 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Range max :"+spns.get(j).getRange_max());
DefaultMutableTreeNode noeudfilsfils8 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Unit :"+spns.get(j).getUnit());
DefaultMutableTreeNode noeudfilsfils9 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Consommateur :"+spns.get(j).getConsommateur());
DefaultMutableTreeNode noeudfilsfils10 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Comment :"+spns.get(j).getComment());
DefaultMutableTreeNode noeudfilsfils11 = new DefaultMutableTreeNode(jcb,true);
jcb=new JCheckBox("Masque :"+String.format("0x%016x",Long.parseLong(spns.get(j).getMasque())).toUpperCase());
DefaultMutableTreeNode noeudfilsfils12 = new DefaultMutableTreeNode(jcb,true);
noeudfils.add(noeudfilsfils1);
noeudfils.add(noeudfilsfils2);
noeudfils.add(noeudfilsfils3);
noeudfils.add(noeudfilsfils4);
noeudfils.add(noeudfilsfils5);
noeudfils.add(noeudfilsfils6);
noeudfils.add(noeudfilsfils7);
noeudfils.add(noeudfilsfils8);
noeudfils.add(noeudfilsfils9);
noeudfils.add(noeudfilsfils10);
noeudfils.add(noeudfilsfils11);
noeudfils.add(noeudfilsfils12);
}
}
Tree=new JTree(racine);
Tree.setCellRenderer(rc);
Tree.setCellEditor(ec);
Tree.expandRow(0);
Tree.setEditable(true);
return Tree;
}
// public PGN getPGNTree(){
//
// }
}
class RenduComposant implements TreeCellRenderer{
public Component getTreeCellRendererComponent(JTree tree, Object obj,
boolean selected, boolean expanded, boolean leaf,
int row, boolean hasFocus){
DefaultMutableTreeNode dmtcr = (DefaultMutableTreeNode)obj;
JCheckBox toto = (JCheckBox)dmtcr.getUserObject();
return toto;
}
}
class EditComposant implements TreeCellEditor{
public void addCellEditorListener(CellEditorListener l){ }
public void cancelCellEditing() { }
public Object getCellEditorValue(){
return this;
}
public boolean isCellEditable(EventObject evt){
if(evt instanceof MouseEvent){
MouseEvent mevt = (MouseEvent) evt;
if (mevt.getClickCount() == 1){
return true;
}
}
return false;
}
public void removeCellEditorListener(CellEditorListener l){}
public boolean shouldSelectCell(EventObject anEvent){
return true;
}
public boolean stopCellEditing(){
return false;
}
public Component getTreeCellEditorComponent(JTree tree, Object obj, boolean isSelected, boolean expanded, boolean leaf, int row){
DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)obj;
JCheckBox tata=(JCheckBox)dmtn.getUserObject();
tata.setEnabled(true);
return tata;
}
} |