Another point:

When you disable a tree (at least using Plastic L&F), the items are grayed in 
the same... after installing a custom renderer, this doesn't work anymore... 
And if you try to set foreground color "gray" in the custom renderer, nothing 
happens until some roundtrip (= reload of tree data)... Also the example ("cyan 
leafs") in the api guide I could not get to work satisfactorily... 

Kind regards,

Alberto A.Smulders
HostDat Lda. - Portugal



-------- Original-Nachricht --------
Datum: Tue, 29 Aug 2006 14:45:20 +0200
Von: [EMAIL PROTECTED]
An: [email protected]
Betreff: [ULC-developer] DefaultRenderer on Tree / TableTree

> 
> We discovered some Issues / Swing differences on the ULCTree and
> ULCTableTree: 
> 
> - Using a custom renderer extended from
> DefaultTreeCellRenderer/DefaultTableTreeCellRenderer on ULCTree / 
> ULCTableTree results in the lost of the
> default icons provided by the current look&feel. Using Swing's JTree the
> default icons are drawn. (See classes SimpleULCTree and SimpleJTree at the
> bottom of the mail)
> 
> - On a ULCTree with a custom cell renderer (or on the tree column of
> ULCTableTree) the focus is drawn differently than the Swing counterpart. In 
> ULC
> the icon is inside the focus border.
> 
> - On a ULCTableTree with a custom cell renderer: The lines of the tree are
> not drawn on the selected row(s). (See class ULCTableTreeTest)
> 
> - Setting a default tree icon of the look and feel to null (e.q.
> UIManager.put("Tree.leafIcon", null) ) results in a NullPointerException in 
> the
> TableTree-Widget.
> 
> Is there a workaround especially for the focus and line drawing issue ?
> 
> Best Regards, 
> Markus Wyss
> UBS AG
> 
> Tel. +41-44-236 31 02
> Fax.+41-44-236 30 22
>  
> public class SimpleULCTree extends AbstractApplication {
>     
>     public void start() {
>         ULCFrame frame = new ULCFrame("ULCTree with
> DefaultTreeCellRenderer");
>         
>         ULCBorderLayoutPane colorBox = new ULCBorderLayoutPane();
>         colorBox.add(new ULCScrollPane(createTree()));
>         
>         frame.getContentPane().add(colorBox);
>         frame.pack();
>         frame.setSize(400, 400);
>         frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
>         frame.setVisible(true);
>     }
>     
>     private ULCTree createTree() {
>         final ULCTree tree = new ULCTree(new MyTreeModel());
>         tree.setCellRenderer(new MyTreeRenderer());
>         return tree;
>     }
>     
>     class MyTreeRenderer extends DefaultTreeCellRenderer {
>         
>         public MyTreeRenderer() {
>             super();
>             ULCIcon icon = new
> ULCIcon(this.getClass().getResource("ampel_rot.gif"));
>             setClosedIcon(icon);
>             setOpenIcon(icon);
>             setLeafIcon(icon);
>         }
>         
>     }
>     
>     public static void main(String[] args) {
>             DevelopmentRunner.setApplicationClass(SimpleULCTree.class);
>             DevelopmentRunner.run();
>       }
>     
>     public class MyTreeModel extends DefaultTreeModel {
>         
>         public MyTreeModel() {
>             super( new DefaultMutableTreeNode("Customers"));
>             
>             DefaultMutableTreeNode customers = (DefaultMutableTreeNode)
> getRoot();
>             
>             DefaultMutableTreeNode bundle1234 = new
> DefaultMutableTreeNode("Bundle 1234");
>             customers.add(bundle1234);
>             
>             DefaultMutableTreeNode brig = new
> DefaultMutableTreeNode("Brig");
>             bundle1234.add(brig);
>             brig.add(new DefaultMutableTreeNode("Account 11111111",
> true));
>             brig.add(new DefaultMutableTreeNode("Account 22222222",
> true));
>             
>             DefaultMutableTreeNode ascona = new
> DefaultMutableTreeNode("Ascona");
>             bundle1234.add(ascona);
>             ascona.add(new DefaultMutableTreeNode("Account 3333333",
> true));
>             
>             
>             DefaultMutableTreeNode bundle5678 = new
> DefaultMutableTreeNode("Bundle 5678");
>             customers.add(bundle5678);
>             
>             DefaultMutableTreeNode zuerich = new
> DefaultMutableTreeNode("Zürich");
>             bundle5678.add(zuerich);
>             zuerich.add(new DefaultMutableTreeNode("Account 4444444",
> true));
>         }
>     }
> }
> 
> public class SimpleJTree extends JFrame {
> 
>     public SimpleJTree() {
>         super("JTree with DefaultTreeCellRenderer");
>         
>         JPanel colorBox = new JPanel(new BorderLayout());
>         colorBox.add(new JScrollPane(createTree()));
>         
>         getContentPane().add(colorBox);
>         pack();
>         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>         setSize(400, 400);
>     }
>     
>     private JTree createTree() {
>         final JTree tree = new JTree(new MyTreeModel());
>         tree.setCellRenderer(new MyTreeRenderer());
>         return tree;
>     }
>     
>     
>     class MyTreeRenderer extends DefaultTreeCellRenderer {
>         
>         public MyTreeRenderer() {
>             super();
>             Icon icon = new
> ImageIcon(this.getClass().getResource("ampel_rot.gif"));
>             setOpenIcon(icon);
>             setClosedIcon(icon);
>             setLeafIcon(icon);
>         }
>         
>     }
>     
>     public static void main(String[] args) {
>         SimpleJTree simpleTree = new SimpleJTree();
>         simpleTree.setVisible(true);
>       }
>     
>     public class MyTreeModel extends DefaultTreeModel {
>         
>         public MyTreeModel() {
>             super( new DefaultMutableTreeNode("Customers"));
>             
>             DefaultMutableTreeNode customers = (DefaultMutableTreeNode)
> getRoot();
>             
>             DefaultMutableTreeNode bundle1234 = new
> DefaultMutableTreeNode("Bundle 1234");
>             customers.add(bundle1234);
>             
>             DefaultMutableTreeNode brig = new
> DefaultMutableTreeNode("Brig");
>             bundle1234.add(brig);
>             brig.add(new DefaultMutableTreeNode("Account 11111111",
> true));
>             brig.add(new DefaultMutableTreeNode("Account 22222222",
> true));
>             
>             DefaultMutableTreeNode ascona = new
> DefaultMutableTreeNode("Ascona");
>             bundle1234.add(ascona);
>             ascona.add(new DefaultMutableTreeNode("Account 3333333",
> true));
>             
>             
>             DefaultMutableTreeNode bundle5678 = new
> DefaultMutableTreeNode("Bundle 5678");
>             customers.add(bundle5678);
>             
>             DefaultMutableTreeNode zuerich = new
> DefaultMutableTreeNode("Zürich");
>             bundle5678.add(zuerich);
>             zuerich.add(new DefaultMutableTreeNode("Account 4444444",
> true));
>         }
>     }
> }
> 
> public class ULCTableTreeTest extends AbstractApplication {
>     public void start() {
>         ULCFrame frame = new ULCFrame();
>         frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
> 
>         DefaultMutableTableTreeNode root = new
> DefaultMutableTableTreeNode(
>                 new Object[] { "root", "root", "root" }, false);
>         DefaultMutableTableTreeNode primaryOffering = new
> DefaultMutableTableTreeNode(
>                 new Object[] { "Offer", "Total",
>                         "Total % " }, true);
>         DefaultMutableTableTreeNode ubsStrategy = new
> DefaultMutableTableTreeNode(
>                 new Object[] { "AAAA", "13605", "16.84" }, false);
>         DefaultMutableTableTreeNode inUbsStrategy = new
> DefaultMutableTableTreeNode(
>                 new Object[] { "BBBBB", "xx", "yy" }, true);
>         DefaultMutableTableTreeNode ubsXtra = new
> DefaultMutableTableTreeNode(
>                 new Object[] { "CCCC", "11", "0.01" }, false);
>         DefaultMutableTableTreeNode inUbsXtra = new
> DefaultMutableTableTreeNode(
>                 new Object[] { "DDDD", "zz", "vv" }, true);
> 
>         ubsStrategy.add(inUbsStrategy);
>         ubsXtra.add(inUbsXtra);
> 
>         root.add(primaryOffering);
>         root.add(ubsStrategy);
>         root.add(ubsXtra);
> 
>         DefaultTableTreeModel model = new DefaultTableTreeModel(root,
>                 new String[] { "col1", "col2", "col3" });
> 
>         model.setRoot(root);
>         ULCTableTree tree = new ULCTableTree(model);
>         tree.setRootVisible(false);
>         tree.setShowsRootHandles(true);
>         
>         tree.setTableTreeHeader(null);
>         ULCTableTreeColumnModel cm = tree.getColumnModel();
> 
>         cm.getColumn(0).setCellRenderer(new
> MyCellRenderer(IDefaults.LEFT));
>         cm.getColumn(1).setCellRenderer(new
> MyCellRenderer(IDefaults.RIGHT));
>         cm.getColumn(2).setCellRenderer(new
> MyCellRenderer(IDefaults.RIGHT));
>         
>         frame.add(new ULCScrollPane(tree));
>         frame.pack();
>         frame.setLocation(300, 400);
>         frame.setSize(700, 300);
>         frame.setVisible(true);
>     }
>     
>     class MyCellRenderer extends DefaultTableTreeCellRenderer {
>         public MyCellRenderer(int alignment) {
>             super();
>             setHorizontalAlignment(alignment);
>         }        
>     }
> 
>     public static void main(String[] args) {
>         DevelopmentRunner.setApplicationClass(ULCTableTreeTest.class);
>         DevelopmentRunner.run();
>     }
> }
> _______________________________________________
> ULC-developer mailing list
> [email protected]
> http://lists.canoo.com/mailman/listinfo/ulc-developer

-- 


Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit!
"Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to