Update tree node icon, better way?

Hi,.
I have my own custom renderer for my JTree....such as
public class MyTreeNodeRenderer extends JLabel implements TreeCellRenderer {
public Component getTreeCellRendererComponent(
        JTree treeVal,
        Object valueVal,
        boolean selectedVal,
        boolean expandedVal,
        boolean leafVal,
        int rowVal,
        boolean hasFocusVal) {
        MyTreeNode node = (MyTreeNode) valueVal;
          // get the latest type for this node
        node.type = getType(node);
        if (node.type == 1) {
                setIcon(TYPE1_ICON);
         else {
                setIcon(TYPE_BASIC_ICON);
               return this;
}...intially the tree nodes have their icons, as they should...later on their "type" is updated...so instead of being 1..its now something else...so the icon should change.....but it doesnt occur fast enough...so i added this to my renderer
public void doRepaint() {
        repaint();
        myTree.repaint();
    }basically anytime i needed to update the icon in the tree i called the doRepaint when i want the new icon to appear in the tree..that helped somewhat..but it is still kinda slow....any ideas how to do this?

valueForPathChanged() serves different purposes as you can see from its description. You need to call treeModel.nodeChanged(node) after your node changed its "type". If you don't want to hold or don't have treeModel reference you could use tree classes from .useful library and be able to call nodeChanged() directly from a node that has been changed.
Denis Krukovsky
http://dotuseful.sourceforge.net/

Similar Messages

  • How to add custom ADF Tree Node icon

    Hi All,
    i am using below code in style sheet to set the tree node icon,
    af|tree::node-icon:nodetype-collapsed
    but i don't have any idea how to add getnodetype() method in the node class, (I am using Jdeveloper 11.1.1.2.0). please suggest me the steps to achive it.
    Thanks,
    Mahesh

    i did as you suggested, but i am not getting any image, below is my source
    <nodeDefinition DefName="com.mahesh.SSCExplorer.model.ROview.OrdrHdrVO"
    Name="OrdrHdr20"
    TargetIterator="${bindings.OrdrHdr2Iterator}"
    ClosedIcon="/Nuvola_filesystems_folder.png"
    OpenIcon="/Nuvola_filesystems_folder.png"
    Icon="/Nuvola_filesystems_folder.png">
    please suggest is there any other settings i need to do.
    Thanks,
    Mahesh

  • Tree node icon from XML

    Is there a way to define a linkage id to set the icon for the
    tree component in external XML? This is what I tried and it does
    not work.
    <node label="Test" data="SomeID" icon="SomeLinkageID">
    The tree node is using the default folder icon. I know I
    could set the icon after it is loaded but why cann't I just throw
    in something to define the icon in the XML?
    Thanks

    Hi,
    Could you elaborate a litle more exacly what you need to do?
    I found the link http://help.sap.com/saphelp_470/helpdata/en/86/8280db12d511d5991b00508b6b8b11/content.htm that maybe assist you.
    Please remember to evaluate the replays, this incentive the SDN to keep growing,
    regards,
    Fabio

  • Apex 4 Tree node icon inconsistency ( 4.0.2.00.06 = 4.0.2.00.07)

    <font color="#2C5197">
    <li>If I assign a value to the tree icon column in Apex 4 ( 4.0.2.00.06) , _it is rendered as the node(ins) element's classname_ ( unless it has the "/" character in it,then it becomes the inline background-image property , for example "/add" )
    <li>While in Apex 4( 4.0.2.00.07) , it is always rendered as the background image and I can't make it render as the classname (apex.oracle.com is also on 4.0.2.00.07 and shows the same behaviour as mentioned) .
    </font>
    I have a tree region in apex 4.0(4.0.2.00.06) which has node icons defined conditionally using the SQL query's icon column
    As as example, the code below as Tree Definition (example here)
    select case when connect_by_isleaf = 1 then 0
                when level = 1             then 1
                else                           -1
           end as status,
           level,
           "ENAME" as title,
           case
             when mod(level,2) = 1 THEN 'add'
             else 'delete'
           END as icon,
           "EMPNO" as value,
           'Drill Down to '||ENAME as tooltip,
           'f?p='||:APP_ID||':1:'||:APP_SESSION as link
    from emp_check
    start with "MGR" is null
    connect by prior "EMPNO" = "MGR"
    order siblings by "ENAME"This renders the tree as with *node icons having a class of "add" or "delete"_ in apex 4.0.2.00.06.
    &lt;ins style=&quot;background-image: url(&amp;quot;add&amp;quot;);&quot;&gt;&amp;nbsp;&lt;/ins&gt;On another instance which is on 4.0.2.00.07, the same tree is rendered with the tree's node having a background-image URL as the "add" or "delete"
    &lt;ins class=&quot;add&quot;&gt;&amp;nbsp;&lt;/ins&gt;The Bug Fix list from the Patch Notes ( 5.2 Bugs Fixed in the 4.0.2.00.07 Patch Set ) mentions in Bug Number:9893260 that +"APP_IMAGES and WORKSPACE_IMAGES used in tree region must be preceded by host URL"+.
    Is it possible that as a result of this bug-fix, any value specified for the icon column is being rendered as the background-image ?
    Can someone confirm whether this behavior is expected or is this is a case which has been overlooked in the bug-fix or just another bug ?

    Hi Vee,
    To respond to your question "+Can someone confirm whether this behavior is expected or is this is a case which has been overlooked in the bug-fix or just another bug ?+", the behaviour you see is expected. We now always create a background-image-url style. The fix for bug 9893260, which you referred to in your initial post, was incorporated in our 4.0.1 patch set, as listed under the section "5.1 Bugs Fixed in the 4.0.1.00.03 Patch Set" in the 4.0.2 Patch Set Notes - http://www.oracle.com/technetwork/developer-tools/apex/application-express/402-patch-189110.html. Therefore, I'm surprised that you're seeing different behaviour between 4.0.2.00.06 and 4.0.2.00.07. I'm not aware of any tree-related changes made between those two versions, so I'll investigate that further....but as I said, the behaviour you are seeing with 4.0.2.00.07 is expected.
    Regards,
    Hilary

  • Hierarchical Tree Node icon ?

    Hi
    How to create a icon on Hierarchical tree
    Regards
    Shahzaib

    Thanks for your reply and i am sorry for not clear my developer version
    My developer version is 6I
    Database express addition
    Well i write the trigger when tree node activate
    :parameter.current_emp := ftree.get_tree_node_property(find_item('Block28.Tree8'),
                                                          :system.trigger_node,
                                                          ftree.node_value);
    DECLARE
    htree         ITEM;
    current_node  FTREE.NODE;
    find_node     FTREE.NODE;
    BEGIN
    htree := Find_Item('block28.tree8');
    find_node := :SYSTEM.TRIGGER_NODE;
    ftree.set_tree_node_property(htree, find_node, ftree.NODE_ICON, 'D:\ico\Ico\favorite.ico');
    END;
    Ftree.SET_tree_NODE_PROPERTY(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_ICON, 'print');And also when mouse double click
    declare
    al_button number;     
         pl_id ParamList;
         v_emp_id     number;
         e_child_rec  exception;
         pragma exception_init(e_child_rec, -02292);
         len number := 3; --variable which tells till what length from last not to copy from first string
    begin
         v_emp_id := ftree.get_tree_node_property(find_item('Block28.tree8'),
                                                               :system.trigger_node,
                                                                ftree.node_value);
    SET_BLOCK_PROPERTY('block3', DEFAULT_WHERE, 'acc_id = ''' || V_emp_id|| '''');
    go_block('block3');
    EXECUTE_QUERY;
    exception
           when e_child_rec then
                Message ('Go Kimi Go');
    end;
      Now when i double click the mouse its show tree icon
    I want when i run my module its show me all node icon
    Hope this time i clear my question
    Regards
    Shahzaib ismail

  • Update tree node

    Hi,
    I have a JTree, and at some point I need to update the icon of a node in the tree. FYI, I have a my own custom class which implements, TreeCellRenderer.
    how can i do this??
    thanks

    bump

  • Tree Node Icons

    This should be an easy one...but it's not working for me.
    When I specify an icon gif for a node in my tree, where does Forms 6i load it from?
    Thanks in advance!

    THANKS for the reply - I have tried your solution and I get the same icon/image for both the branches and leaves of the tree.
    More specifically - If one goees into the Help in JDev 11.1.1.2 and goes to the following help page
    Page --> Bindings tab  > Model --> Bindings --> Insert Item --> tree
    (Under "Create Tree Binding dialog " and "Create Tree Table Binding dialog" in the JDev Help)
    One sees that the tree branches use a folder and the leaves of the tree us a 'sheet of paper'. The same icons also being used for the Tree Table at the same reference. I also have seen this on other doc. No where does it mention anything about how to set any icons for any level in a tree component.
    Thanks again - Casey

  • Setting different tree nodes icons

    Hello.
    I know this thread was discussed and i read it but it did not helped me.
    I need a tree that might look like this:
    +hostname
    +---database1
    --table1
    --table2
    --table3
    +---database2
    --table1
    --table2
    --table3
    This is a database tree.
    Now my code to set different icons is:
    public class DMSTreeCellRenderer extends DefaultTreeCellRenderer {
        private DatabaseInfo databaseInfo;
        private String dbHost;
         /** Creates a new instance of DMSTreeCellRenderer */
        public DMSTreeCellRenderer(String dbHost) {
            this.dbHost = dbHost;
        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
            ImageIcon rootIcon = new ImageIcon("resources/images/database.png");
            ImageIcon tableIcon = new ImageIcon("resources/images/database_table.png");
            if(tree.getModel().getRoot().toString().equals(dbHost) ) {
                setIcon(new ImageIcon("resources/images/server_database.png"));
                isFirstSetup = false;
            if (rootIcon != null && tableIcon !=null) {
                setClosedIcon(rootIcon);
                setOpenIcon(rootIcon);
                setLeafIcon(tableIcon);
            return super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
    }Anyway it does not work. like it should. The root nod has the same icon like the childs :(

    Thank you for your help, i solve my problem like this:
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
            super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
            ImageIcon rootIcon = new ImageIcon("resources/images/database.png");
            ImageIcon tableIcon = new ImageIcon("resources/images/database_table.png");
            if(value.toString().equals(dbHost) ){
                setIcon(new ImageIcon("resources/images/server_database.png"));
            }else {
                if (rootIcon != null && tableIcon !=null) {
                    if(leaf){
                        setIcon(tableIcon);
                    }else {
                        setIcon(rootIcon);   
            return this;
        }

  • Why I cannot edit and updat tree node in this program??

    Dear Friends:
    I have following code, it can be run ok,
    I set it editable, I hope to edit at run time, but looks like I cannot edit,
    what is wrong??
    Can you help??
    Thanks
    package treeSelectionListener;
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.event.*;
    public class SelectableTreeTest extends JFrame
         public SelectableTreeTest(){
              JPanel jp = new JPanel();
              JPanel jp2 = new JPanel();
            MyTree myTree= new MyTree();
            MyTree myTree2= new MyTree();
            JTabbedPane tabbedPane = new JTabbedPane();
            tabbedPane.setPreferredSize(new Dimension(600,400));
            jp.setPreferredSize(new Dimension(600,400));
            jp2.setPreferredSize(new Dimension(600,400));
            myTree.setPreferredSize(new Dimension(600,400));
            myTree2.setPreferredSize(new Dimension(600,400));
            JScrollPane   jsp = new JScrollPane();
            jsp.setPreferredSize(new Dimension(600,400));
              add(jsp, BorderLayout.CENTER);
              jsp.setViewportView(tabbedPane);
              jp.add(myTree);
              jp2.add(myTree2);
              tabbedPane.addTab("1st Tree", jp);
              tabbedPane.addTab("2nd Tree", jp2);
        public static void main(String[] args) {
            JFrame frame = new SelectableTreeTest();
            WindowUtilities.setNativeLookAndFeel();
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
            frame.pack();
            frame.setVisible(true);
      public class MyTree extends JTree implements TreeSelectionListener {
      private JTree tree;
      private JTextField currentSelectionField;
      public MyTree() {
        Container content = getContentPane();
        DefaultMutableTreeNode root =
          new DefaultMutableTreeNode("Root");
        DefaultMutableTreeNode child;
        DefaultMutableTreeNode grandChild;
        for(int childIndex=1; childIndex<4; childIndex++) {
          child = new DefaultMutableTreeNode("Child " + childIndex);
          root.add(child);
          for(int grandChildIndex=1; grandChildIndex<4; grandChildIndex++) {
            grandChild =
              new DefaultMutableTreeNode("Grandchild " + childIndex +
                                         "." + grandChildIndex);
            child.add(grandChild);
        tree = new JTree(root);
        tree.setEditable(true);
        tree.addTreeSelectionListener(this);
        content.add(new JScrollPane(tree), BorderLayout.CENTER);
        currentSelectionField = new JTextField("Current Selection: NONE");
        content.add(currentSelectionField, BorderLayout.SOUTH);
        setSize(250, 275);
        setVisible(true);
      public void valueChanged(TreeSelectionEvent event) {
        currentSelectionField.setText
          ("Current Selection: " +
           tree.getLastSelectedPathComponent().toString());
    }

    change this
    tree = new JTree(root);
    tree.setEditable(true);
    tree.addTreeSelectionListener(this);to this
    setEditable(true);
    addTreeSelectionListener(this);and this
    currentSelectionField.setText
      ("Current Selection: " +
       tree.getLastSelectedPathComponent().toString());to this
    currentSelectionField.setText
      ("Current Selection: " +
      getLastSelectedPathComponent().toString());and remove this
    private JTree tree;

  • Tree and Tree Node Components - Threadinar7

    Hi All,
    This is the seventh in the "Threadinar" series , please see Threadinar6 at
    http://forum.sun.com/jive/thread.jspa?threadID=100601 for details
    In this Threadinar we will focus on the
    "Tree" and "Tree Node" Components
    Let us begin our discussion with the Tree Component.
    Tree Component
    You can drag the Tree component from the Palette's Basic category to the Visual Designer to create a hierarchical tree structure with nodes that can be expanded and collapsed, like the nodes in the Outline window. When the user clicks a node, the row will be highlighted. A tree is often used as a navigation mechanism.
    A tree contains Tree Node components, which act like hyperlinks. You can use a Tree Node to navigate to another page by setting its url property. You can also use a Tree Node to submit the current page. If the the Tree Node's action property is bound to an action event handler, selecting the node automatically submits the page. If the Tree Node's actionListener property is bound to an action listener, opening or closing the node automatically submits the page. You set Tree Node properties in the Tree Node Component Properties window.
    * If you use this component to navigate between pages of a portlet, do not use the url property to link to a page. Instead, use the Navigation editor to set up your links to pages.
    * Events related to tree node selection do not work correctly in portlets because the component uses cookies to pass the selected node id back and forth, and cookies are not correctly handled by the portlet container. You cannot handle tree node selection events in portlet projects.
    Initially when you drop a tree on a page, it has one root node labeled Tree and one subnode labeled Tree Node 1. You can add more nodes by dragging them to the tree and dropping them either on the root node to create top level nodes or on existing nodes to create subnodes of those nodes. You can also right-click the Tree or any Tree Node and choose Add Tree Node to add a subnode to the node.
    Additionally, you can work with the component in the Outline window, where the component and its child components are available as nodes. You can move a node from level to level easily in the Outline window, so you might want to work there if you are rearranging nodes. You can also add and delete tree nodes in the Outline window, just as in the Visual Designer.
    The Tree component has properties that, among other things, enable you change the root node's displayed text, change the appearance of the text, specify if expanding or collapsing a node requires a trip to the server, and specify whether node selection should automatically open or close the tree. To set the Tree's properties, select the Tree component in your page and use the Tree Component Properties window.
    The following Tutorial ("Using Tree Component") is very useful to learn using Tree components
    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/sitemaptree.html
    See Also the Technical Article - "Working with the Tree Component and Tree Node Actions"
    http://developers.sun.com/prodtech/javatools/jscreator/reference/techart/2/tree_component.html
    Tree Node Component
    You can drag the Tree Node component from the Palette's Basic category to a Tree component or another tree node in the Visual Designer to create a node in a hierarchical tree structure, similar to the tree you see in the Outline window.
    The tree node is created as a subnode of the node on which you drop it. If you drop the node on the tree component itself, a new node is created as a child of the root node. You can see the hierarchical structure clearly in the Outline window, where you can also easily move nodes around and reparent them.
    You can also add a tree node either to a Tree component or to a Tree Node component by right-clicking the component and choosing Add Tree Node.
    A Tree Node component by default is a container for an image and can be used to navigate to another page, submit the current page, or simply open or close the node if the node has child nodes.
    * If you select the Tree Node component's node Tree Node icon in the Outline window, you can edit its properties in the Tree Node Properties window. You can set things like whether or not the Tree Node is expanded by default, the tooltip for the Tree Node, the label for the tree node, and the Tree Node's identifier in your web application.
    * You can use a Tree Node to navigate to another page by setting its url property. You can also use a Tree Node to submit the current page. If the the Tree Node's action property is bound to an action event handler, selecting the node automatically submits the page. If the Tree Node's actionListener property is bound to an action listener, opening or closing the node automatically submits the page.
    - Note: If you use this component to navigate between pages of a portlet, do not use the url property to link to a page. Instead, use the Navigation editor to set up your links to pages. In addition, events related to tree node selection do not work correctly in portlets because the component uses cookies to pass the selected node id back and forth, and cookies are not correctly handled by the portlet container. You cannot handle tree node selection events in portlet projects.
    * If you select the image in the Tree Node, you can see that its icon property is set to TREE_DOCUMENT. If you right-click the image on the page and choose Set Image, you can either change the icon to another one or choose your own image in the Image Customizer dialog box. For more information on working with an image in a tree node, see Image component.
    - Note: The image used in a tree node works best if it is 16x16 or smaller. Larger images can work, but might appear overlapped in the Visual Designer. You can right-click the component and choose Preview in Browser feature to check the appearance of the images.
    Please share your comments, experiences, additional information, questions, feedback, etc. on these components.
    ------------------------------------------------------------------------------- --------------------

    One challenge I had experience was to make the tree
    always expanded on all pages (I placed my tree menu
    in a page fragment so I can just import it in my
    pages).Did you solve this problem. It would be interesting to know what you did.
    To expand a node you call setExpanded on the node. Here is some code from a tutorial that a coworker of mine is working on.
    In the prerender method:
           Integer expandedPersonId = getRequestBean1().getPersonId();
             // If expandedPersonId is null, then we are not coming back
            // from the Trip page. In that case we do not want any trip
            // nodes to be pre-selected (highlighted) due to browser cookies.
            if (expandedPersonId==null) {
                try {
                    HttpServletRequest req =(HttpServletRequest)
                    getExternalContext().getRequest();
                    Cookie[] cookies = req.getCookies();
                    //Check if cookies are set
                    if (cookies != null) {
                        for (int loop =0; loop < cookies.length; loop++) {
                            if (cookies[loop].getName().equals
                                    ("form1:displayTree-hi")) {
                                cookies[loop].setMaxAge(0);
                                HttpServletResponse response =(HttpServletResponse)
                                getExternalContext().getResponse();
                                response.addCookie(cookies[loop]);
                } catch (Exception e) {
                    error("Failure trying to clear highlighting of selected node:" +
                            e.getMessage());
            }                  ... (in a loop for tree nodes)...
                      personNode.setExpanded(newPersonId.equals
                                    (expandedPersonId));In the action method for the nodes:
           // Get the client id of the currently selected tree node
            String clientId = displayTree.getCookieSelectedTreeNode();
            // Extract component id from the client id
            String nodeId = clientId.substring(clientId.lastIndexOf(":")+1);
            // Find the tree node component with the given id
            TreeNode selectedNode =
                    (TreeNode) this.getForm1().findComponentById(nodeId);
            try {
                // Node's id property is composed of "trip" plus the trip id
                // Extract the trip id and save it for the next page
                Integer tripId = Integer.valueOf(selectedNode.getId().substring(4));
                getRequestBean1().setTripId(tripId);
            } catch (Exception e) {
                error("Can't convert node id to Integer: " +
                        selectedNode.getId().substring(4));
                return null;
    It would also be great if I can set the tree
    readonly where the user cannot toggle the expand
    property of the tree (hope this can be added to the
    tree functionality).

  • Tree Nodes has White Outline/Border

    Hi,
    I'm using an ADF tree located inside a panelGroupLayout.
    The panelGroupLayout has the background color "light blue".
    At runtime each tree node is displayed with a surrounding white outline and that can only appear when you have a background color different than white (in my case the panelGroupLayout is "light blue").
    Does anybody knows how to remove that outline? or to change its color?
    Thanks,
    Alain.

    Here are the skin seletors
    tr:tree Component
    Icon Selectors
    Name      Description
    af|tree::expanded-icon      This icon is displayed before the expanded tree node.
    af|tree::collapsed-icon      This icon is displayed before the collapsed tree node.
    af|tree::no-children-icon      This icon is displayed instead of the expanded/collapsed icon, when the node has no children
    af|tree::line-icon      This icon is used as a vertical line between the nodes.
    af|tree::line-middle-icon      This icon is used as the horizontal line in the background of the expand/collapse icon of the node, in the case the node is not the last sibling of its parent node.
    af|tree::line-last-icon      This icon is used as the horizontal line in the background of the expand/collapse icon of the node, in the case the node is the last sibling of its parent node.
    af|tree::node-icon      This icon selector is used in the case the Node class has a getNodeType() method that returns the node type as string. The nodetype gets added to this selector, separated by a ':'. If the node is a container (has children) the following suffixes get added depending on the expanded/collapsed state: '-expanded' / '-collapsed'. e.g. "af|tree::node-icon:container-collapsed", "af|tree::node-icon:container-expanded", "af|tree::node-icon:noncontainer".
    Trinidad properties
    Name      Description
    -tr-show-lines      Valid values are true or false (default true). Determines whether the tree lines are displayed or not. e.g., af|tree {-tr-show-lines:false} will not show the lines of the tree.Timo

  • Updating Tree Crashes Logic

    i just consolidated 3 firewire drives of my samples down to 1.
    since the when i boot up ,when it gets to updating tree, logic crashes.
    i unmounted samples drive and it still crashes at updating tree.
    any ideas on how to remedy this? what is updating tree?
    thanks

    At the end of the day, it is a good idea to have your files organized with Project Manager. It improved Logic's performance tremendously over here.
    We all know, it is a hassle to start up Logic. It takes 7 to 8 minutes. But the loading time of your samples improves drastically once they are organized in PM.
    Here is what I do in the morning: I turn on my trusty PBG4, launch Logic and either take a shower (if I didn't do so before) or have a coffee with my morning paper. Before I'm done, Logic is ready for me and my assaults of the day pushing it to the limit.
    "Updating Tree" is PM's way of organizing everything you told PM to do, although sometimes you don't even know or have to do anything, and still PM does it automatically for you.
    Use Project Manager. It's good and well worth the wait in the morning
    Don't forget to create good music!

  • Invalid B-tree node size error & updating OS

    I was toying around with the idea of updating my OS to 10.4 and increasing my storage capacity. A welcome upgrade to an old system that has been very good to me....until now.
    The short version is that I am experiencing quite a bit of directory damage (for the full story, read below). After researching hundreds of posts here, I think my best bet is to purchase Disk Warrior. My question is, which version should a purchase? As a result of the work I've explained below, my system is currently running the version installed from my OSX Install CD. I'm not sure what version this is, but my Mac came with CDs for OS9, OSX, and an upgrade to 10.2.8. Is there a version of Disk Warrior that will support 10.2-10.4? I want to fix the current issues but still be able to use this software when (or IF) I upgrade.
    I'm happy to provide any info needed and appreciate ANY help. Thanks,
    On a routine startup I encountered the stalled progress indicator (spinning gear) and its been downhill from there. I've scoured the Mac forums here for possible fixes, but so far nothing has been able to completely solve my problem. Here's a brief rundown of what I have done so far:
    1) Booted from OSX Install CD and ran disk utility. This verified I had catalog and node errors that could not be repaired.
    2) Ran Apple Hardware test from CD. Everything was fine.
    3) Ran TECHTool Pro that came with my AppleCare CD and identified similar errors but could not repair them. At this point I also got an "Invalid Sibling Link" error.
    Finally I decided that the data I had saved on my HD was not crucial so I would attempt a reinstall of the OS and lose what was not backed up. So I:
    5) Performed reinstall from OSX Install CD.
    6) Ran Disk Utility, all was fine.
    At this point I was able to run programs and boot up normally. Of course this was too good to be true, and it was, because subsequent restarts gave me even more errors! I was again experiencing the freeze at startup, although this time I was getting the Mac computer logo with smiley face icon for all eternity.
    7) Again booted from OSX Install CD and ran Disk Utility. I'm now getting an "Invalid B-tree node size" error. I;ve tried all the cycles with repair utilities to no avail. I am also unable to start up in single user mode so I'm stuck.
    iMac G4 Flat Panel   Mac OS X (10.2.x)   Purchased 2002
    iMac G4 Flat Panel   Mac OS X (10.2.x)   Purchased 2002

    Thanks! I will order DW and give it a try...
    I have run the Apple Hardware diagnostic CD twice (at different points in this process) and everything has come back cleanly. I am fairly certain this is a directory issue, but we'll wait and see. At the very least I will have DW to back up any future systems.
    This is sortof off topic, but what is the general service fee for visiting the Genius Bar? I consulted a Mac pro there to discuss an upgrade to my system, but there was no charge. I find this hard to believe...does anyone know? I can't seem to find anything online...

  • A better way to arrange icons?

    Is there a better way to arrange icons? iTunes just **ed up all of my sorted icons and they are now however iTunes determined them to be. I've got 7 pages that I really don't want to 'click & drag'. It'd be nice if I could arrange them in iTunes.

    Happened to me once. I did a restore and it set them back in the proper spots I had them in before. Other than doing that you have to do them on the phone.

  • Is there a better way to do this Update?

    Can you do the following in a better way, maybe by using some sort of join between table_a and table_b
    update
    table_a a
    set
    (column_1, column_2)
    =
    (select
    column_3, column_4
    from
    table_b b
    where
    b.column_5 = a.column_6)
    where
    a.column_7 = whatever

    First of all, i would like to ask "if all the rows presnet in table_a are also present in table_b (w.r.t some relation like b.column_5 = a.column_6 in your example ???" If your answer is no, then your query is WRONG...it will update all records of table_a (that have a.column_7 = whatever) irrespective of whether they exist in table_b or not. There are two ways to do that
    (1)
    update table_a a
    set (column_1,column_2)=(select column_3,column_4 from table_b b where a.column_5=b.column_6)
    where exists (select null from table_b c where a.column_5=c.column_6)
    and a.column_7 = whatever
    (2)
    update
    (select column_1,column_2,column_3,column_4
    from table_a a, table_b b
    where a.column_5=b.column_6
    and a.column_7=whatever
    set column_1=column_3, column_2=column_4
    the second method wouldn't run untill you have a P.K on table_b(column_6)

Maybe you are looking for