Hi,

I am using a ULCTableTree. I am trying to change the appearance of a
column. But when I use the DefaultTableTreeHeaderCellRenderer to change
the appearance, the ULCTableTree does not honor it.

I am attaching a sample application demonstrating the problem.

Environment:
- ULC Version: 6.1.1
- Java: 1.4.2 on both client and server.

Thanks and Regards
Indukumar

X----------------------------------


import com.ulcjava.base.application.AbstractApplication;
import com.ulcjava.base.application.IRendererComponent;
import com.ulcjava.base.application.ULCFrame;
import com.ulcjava.base.application.ULCScrollPane;
import com.ulcjava.base.application.ULCTableTree;
import
com.ulcjava.base.application.tabletree.DefaultMutableTableTreeNode;
import
com.ulcjava.base.application.tabletree.DefaultTableTreeHeaderCellRendere
r;
import com.ulcjava.base.application.tabletree.DefaultTableTreeModel;
import com.ulcjava.base.application.util.Color;
import com.ulcjava.base.development.DevelopmentRunner;

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"},
                        new boolean[] {false, false, true}, false);
                DefaultMutableTableTreeNode row1 = new
DefaultMutableTableTreeNode(new Object[] {"AAA", "BBB", "CCC"},
                        new boolean[] {false, false, true}, false);
                DefaultMutableTableTreeNode row1a = new
DefaultMutableTableTreeNode(new Object[] {"aaa", "bbb", "ccc"},
                        new boolean[] {false, false, true}, true);
                DefaultMutableTableTreeNode row2 = new
DefaultMutableTableTreeNode(new Object[] {"DDD", "EEE", "FFF"},
                        new boolean[] {false, false, true}, false);
                DefaultMutableTableTreeNode row2a = new
DefaultMutableTableTreeNode(new Object[] {"ddd", "eee", "fff"},
                        new boolean[] {false, false, true}, true);

                row1.add(row1a);
                row2.add(row2a);

                root.add(row1);
                root.add(row2);

                DefaultTableTreeModel model = new
DefaultTableTreeModel(root, new String[] {"As", "Bs", "Cs"});

                model.setRoot(root);

                ULCTableTree tree = new ULCTableTree(model);
                tree.setRootVisible(false);
                tree.setShowsRootHandles(true);

                /*
                 * Setting the following changes the appearance of the
corresponding
                 * column by losing its border. But, the background
color is not
                 * changed.
                 */
                tree.getColumnModel().getColumn(2).setHeaderRenderer(new
DefaultTableTreeHeaderCellRenderer() {

                        public IRendererComponent
getTableTreeCellRendererComponent(ULCTableTree tableTree, Object value,
                                boolean selected, boolean hasFocus,
boolean expanded, boolean leaf, Object node) {

        
super.getTableTreeCellRendererComponent(tableTree, value, selected,
hasFocus, expanded, leaf, node);

                                setBackground(Color.green);

                                return this;
                        }
                });

                frame.add(new ULCScrollPane(tree));
                frame.setVisible(true);
        }

        public static void main(String[] args) {

        
DevelopmentRunner.setApplicationClass(ULCTableTreeTest.class);
                DevelopmentRunner.run();
        }
}

X----------------------------------
_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to