From: <had...@us...> - 2008-08-11 13:07:51
|
Revision: 3758 http://fudaa.svn.sourceforge.net/fudaa/?rev=3758&view=rev Author: hadouxad Date: 2008-08-11 13:07:36 +0000 (Mon, 11 Aug 2008) Log Message: ----------- Modification du jtree pour prendre en compte les icons sur 3 niveaux differents - root - subdirectories - leaf Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxNodeEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxTreeRenderer.java branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxPanel.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java 2008-08-11 10:05:42 UTC (rev 3757) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java 2008-08-11 13:07:36 UTC (rev 3758) @@ -10,6 +10,7 @@ import java.awt.Point; import java.awt.Polygon; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.geom.GeneralPath; import java.util.ArrayList; @@ -51,8 +52,8 @@ public static int ORIENTATION_EAST=2; public static int ORIENTATION_WEST=3; + public Color couleurFleche=Color.black; - /** * @param _scene */ @@ -90,14 +91,14 @@ l.setEpaisseur(largeurBorder); - + l.setCouleur(couleurFleche); //FIXME prob fleche pas tres jolie l.dessineFleche(g,(int)( l.getEpaisseur() / 2),(int)( rec.height/2), (int)(rec.width-l.getEpaisseur()/2), (int)(rec.height/2)); + /*Shape shape; + l.dessineShape(g, shape); + */ - - - g.translate(-rec.x, -rec.y); @@ -105,6 +106,20 @@ } + + + + public Color getCouleurFleche() { + return couleurFleche; + } + + + + + public void setCouleurFleche(Color couleurFleche) { + this.couleurFleche = couleurFleche; + } + Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java 2008-08-11 10:05:42 UTC (rev 3757) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java 2008-08-11 13:07:36 UTC (rev 3758) @@ -136,7 +136,7 @@ //-- recuperation de la liste des widgets selectionnees --// - Set<EbliNode> listeNode = (Set<EbliNode>) scene_.getNodes(); + Set<EbliNode> listeNode = (Set<EbliNode>) scene_.getSelectedObjects();//scene_.getNodes(); //-- parcours des nodes for(Iterator<EbliNode> it=listeNode.iterator();it.hasNext();){ Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxNodeEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxNodeEditor.java 2008-08-11 10:05:42 UTC (rev 3757) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxNodeEditor.java 2008-08-11 13:07:36 UTC (rev 3758) @@ -40,7 +40,7 @@ } public Object getCellEditorValue() { - JCheckBox checkbox = renderer.getLeafRenderer(); + BuCheckBox checkbox = renderer.getLeafRenderer().checkBox; // EbliNodeDefault checkBoxNode = new CheckBoxNode(checkbox.getText(), // checkbox.isSelected()); @@ -73,7 +73,7 @@ // -- recuperation de l instance defaultnode Object userObject = ((DefaultMutableTreeNode) value).getUserObject(); - if (userObject instanceof EbliNode && editor instanceof JCheckBox) { + if (userObject instanceof EbliNode && editor instanceof EbliCheckBoxPanel) { final EbliNodeDefault node = (EbliNodeDefault) (((DefaultMutableTreeNode) value).getUserObject()); // -- suppression des anciens listeners --// @@ -81,15 +81,21 @@ // ajoute le listener au checkbox pour afficher la widget en fonction de // son click - ((JCheckBox) editor).addActionListener(new ActionListener() { + if(((EbliCheckBoxPanel) editor).checkBox !=null){ + + System.err.println("checkbox ok poru le node: " + node.getTitle()); + ((EbliCheckBoxPanel) editor).checkBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { - + // -- on rend visible la widget en fonction de la checkbox - node.getCreator().getWidget().setVisible(((JCheckBox) editor).isSelected()); + node.getCreator().getWidget().setVisible((((EbliCheckBoxPanel) editor).checkBox).isSelected()); node.getCreator().getWidget().getEbliScene().refresh(); } }); + }else{ + System.err.println("checkbox FALSE poru le node: " + node.getTitle()); + } } Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxPanel.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxPanel.java 2008-08-11 13:07:36 UTC (rev 3758) @@ -0,0 +1,34 @@ +package org.fudaa.ebli.visuallibrary.tree; + +import com.memoire.bu.BuCheckBox; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuPanel; + +/** + * Panel de renderer pour le tree + * @author genesis + * + */ +public class EbliCheckBoxPanel extends BuPanel{ + + + private static final long serialVersionUID = -608817114677578183L; + BuCheckBox checkBox; + BuLabel labelRenderer; + public EbliCheckBoxPanel(){ + setOpaque(false); + } + + public void construct(){ + if(labelRenderer !=null){ + labelRenderer.setOpaque(false); + add(labelRenderer); + } + if(checkBox !=null){ + checkBox.setOpaque(false); + add(checkBox); + } + setOpaque(false); + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxTreeRenderer.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxTreeRenderer.java 2008-08-11 10:05:42 UTC (rev 3757) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliCheckBoxTreeRenderer.java 2008-08-11 13:07:36 UTC (rev 3758) @@ -4,26 +4,44 @@ import java.awt.Component; import java.awt.Font; +import javax.swing.Icon; import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.JTree; import javax.swing.UIManager; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.TreeCellRenderer; +import org.fudaa.ctulu.CtuluResource; import org.fudaa.ebli.visuallibrary.EbliNode; import org.fudaa.ebli.visuallibrary.EbliNodeDefault; +import com.memoire.bu.BuCheckBox; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuPanel; import com.sun.org.apache.xerces.internal.impl.xs.opti.DefaultNode; public class EbliCheckBoxTreeRenderer implements TreeCellRenderer { - private JCheckBox leafRenderer = new JCheckBox(); + + //-- panel renderer --// + private EbliCheckBoxPanel leafRenderer = new EbliCheckBoxPanel(); private DefaultTreeCellRenderer nonLeafRenderer = new DefaultTreeCellRenderer(); Color selectionBorderColor, selectionForeground, selectionBackground, textForeground, textBackground; - protected JCheckBox getLeafRenderer() { + private Icon iconLeafEnabled=CtuluResource.CTULU.getIcon("crystal22_previsualiser"); + // private Icon iconLeafDisabled=CtuluResource.CTULU.getIcon("crystal22_previsualiser"); + + private Icon iconSubDirectorie=CtuluResource.CTULU.getIcon("reouvrir_26"); + + + private Icon iconRoot=CtuluResource.CTULU.getIcon("maison_32"); + + + protected EbliCheckBoxPanel getLeafRenderer() { return leafRenderer; } @@ -41,12 +59,18 @@ * selectionBackground = UIManager.getColor("Tree.selectionBackground"); * textForeground = UIManager.getColor("Tree.textForeground"); * textBackground = UIManager.getColor("Tree.textBackground"); - */} + */ + + + + } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { - Component returnValue; + + BuLabel returnLabel = null; + BuCheckBox returnValue = null; // cas particulier renderer: on met un checkbox que si on est feuille et pqs root (= cqs ou lqyer depourvu d objet graphique) if (leaf && !((DefaultMutableTreeNode) value).isRoot()) { @@ -57,35 +81,47 @@ if (userObject instanceof EbliNode) { node = (EbliNodeDefault) (((DefaultMutableTreeNode) value).getUserObject()); - System.err.println("PS EbliNode!!! ROW: " + row); + //System.err.println("c est un EbliNode!!! ROW: " + row); // -- creation d'une nouvelle checkbox aui sera ainsi unique pour chaque // composant - leafRenderer = new JCheckBox(); - leafRenderer.setOpaque(false); + returnValue=new BuCheckBox(); + //leafRenderer.setOpaque(false); - leafRenderer.setText(node.getTitle()); - leafRenderer.setSelected(node.getCreator().getWidget().isVisible()); - } else { - System.err.println("TROP NULLLLLLLLLLLLLLLLLLL!!!"); - } - // qccessible en fonction du tree - leafRenderer.setEnabled(tree.isEnabled()); - - /* - * // foreground si selectionne ou non if (leafRenderer.isSelected()) { - * leafRenderer.setForeground(selectionForeground); - * leafRenderer.setBackground(selectionBackground); } else { - * leafRenderer.setForeground(textForeground); - * leafRenderer.setBackground(textBackground); } - */ - - returnValue = leafRenderer; - - } else { + returnValue.setText(node.getTitle()); + returnValue.setSelected(node.getCreator().getWidget().isVisible()); + + returnLabel=new BuLabel(this.iconLeafEnabled); + } + + } /*else if (!leaf && !((DefaultMutableTreeNode) value).isRoot()) { + + returnLabel=new BuLabel(this.iconSubDirectorie); returnValue = nonLeafRenderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); + + }*/else { + returnLabel=new BuLabel(((DefaultMutableTreeNode) value).toString(),this.iconRoot); + //returnValue = nonLeafRenderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); + } - return returnValue; + + + //-- creation du panel avec les informations --// + leafRenderer=new EbliCheckBoxPanel(); + + if(returnLabel!=null) + leafRenderer.labelRenderer=returnLabel; + + if(returnValue!=null ) + leafRenderer.checkBox=returnValue; + + //-- construction du composant --// + leafRenderer.construct(); + + // qccessible en fonction du tree + leafRenderer.setEnabled(tree.isEnabled()); + + return leafRenderer; } } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-11 10:05:42 UTC (rev 3757) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-11 13:07:36 UTC (rev 3758) @@ -43,6 +43,7 @@ import org.fudaa.ebli.courbe.EGGraphe; import org.fudaa.ebli.courbe.EGGrapheTreeModel; import org.fudaa.ebli.courbe.EGGroup; +import org.fudaa.ebli.courbe.EGTableGraphePanel; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.trace.TraceLigneModel; import org.fudaa.ebli.visuallibrary.EbliNode; @@ -353,7 +354,10 @@ bar.add(new EbliWidgetActionBackGround(scene)); +// +//boxEast.add(new ZEbliCalquesPanel()); + p.doLayout(); } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |