Hi Jan

https://www.canoo.com/jira/browse/UBA-1098 is not part of Release 6.1. But
as Gerd announced in the original mail (see below), it is possible to write
an extension for 6.1 that displays the current cell's value in a tooltip.
The code snippet below shows you how to do it.

Please note that the JTableTree is based on a JTable (i.e.,
BasicTableTreeTable). As of ULC 6.1, it is possible to subclass and replace
this BasicTableTreeTable and override the behaviour of
getToolTipText(MouseEvent event) to achieve the desired effect (this was not
yet possible with ULC 6.0).

I hope this helps.

Kind regards
Rolf




package com.canoo.ulc.playground.developerlist;

import com.ulcjava.base.application.AbstractApplication;
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.DefaultTableTreeModel;
import com.ulcjava.base.application.tabletree.ITableTreeModel;
import com.ulcjava.base.client.UITableTree;
import com.ulcjava.base.client.tabletree.JTableTree;
import com.ulcjava.base.client.tabletree.TableTreeModel;
import com.ulcjava.base.client.tabletree.TableTreeTable;
import com.ulcjava.base.client.tabletree.TableTreeTree;
import com.ulcjava.base.development.DevelopmentRunner;

import javax.swing.JTable;
import javax.swing.table.TableModel;

import java.awt.event.MouseEvent;

public class ULCTableTreeTooltipSnippet extends AbstractApplication {
    public void start() {
        ULCFrame frame = new ULCFrame();
        frame.setSize(100, 100);

        ULCTableTree tableTree = new MyULCTableTree(createModel());
        frame.getContentPane().add(new ULCScrollPane(tableTree));

        frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
        frame.setVisible(true);
    }

    private DefaultTableTreeModel createModel() {
        return new DefaultTableTreeModel(createRoot(),
                                         new String[]{"ONE", "TWO"});
    }

    private DefaultMutableTableTreeNode createRoot() {
        DefaultMutableTableTreeNode child1 = new
DefaultMutableTableTreeNode(
                new String[]{"one", "normal entry"});
        child1.add(new DefaultMutableTableTreeNode(
                new String[]{"two", "long entry"}));
        child1.add(new DefaultMutableTableTreeNode(
                new String[]{"three", "very long entry"}));

        DefaultMutableTableTreeNode child2 = new
DefaultMutableTableTreeNode(
                new String[]{"four", "even longer entry"});
        child2.add(new DefaultMutableTableTreeNode(
                new String[]{"five", "the longest entry ever"}));

        DefaultMutableTableTreeNode result = new
DefaultMutableTableTreeNode(
                new String[]{"root", "root"});
        result.add(child1);
        result.add(child2);
        return result;
    }

    public static void main(String[] args) {
        DevelopmentRunner.setApplicationClass(ULCTableTreeTooltipSnippet.cla
ss);
        DevelopmentRunner.run();
    }

    public static class MyULCTableTree extends ULCTableTree {
        public MyULCTableTree(ITableTreeModel model) {
            super(model);
        }

        protected String typeString() {
            return MyUITableTree.class.getName();
        }
    }

    public static class MyUITableTree extends UITableTree {
        protected Object createBasicObject(Object[] args) {
            return new MyUITableTree.MyBasicTableTree();
        }

        private class MyBasicTableTree extends BasicTableTree {
            protected TableTreeTable createTableTreeTable(JTableTree
tableTree,
                                                          TableTreeModel
model,
                                                          TableTreeTree
tree) {
                return new BasicTableTreeTable(tableTree, model, tree) {
                    public String getToolTipText(MouseEvent event) {
                        JTable table = getBasicTable();
                        int row = table.rowAtPoint(event.getPoint());
                        int column = table.columnAtPoint(event.getPoint());
                        if (row >= 0 && column >= 0) {
                            TableModel model = table.getModel();
                            Object value = model.getValueAt(row, column);
                            if (value != null) {
                                return value.toString();
                            }
                        }
                        return "";
                    }
                };
            }
        }
    }
}




-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Solca Jan
Sent: Freitag, 19. Mai 2006 10:49
To: [email protected]
Subject: [ULC-developer] ToolTip in ULCTableTree


Hi

I would like to now the latest status concerning this issue. I haven’t found
any information about context-sensitive tooltip in ULCTableTree in the
release notes.

Cheers
Jan


Gerd Hillebrand Canoo. Com [EMAIL PROTECTED]"
<[email protected]
Tue, 10 Jan 2006 17:42:23 +0100
Previous message: [ULC-developer] show tooltip in tabletree
Next message: [ULC-developer] Unable to see the ULC components in palette
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]



This is a multi-part message in MIME format.

------=_NextPart_000_0031_01C6160D.366BACD0
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

NachrichtHi Robert,

this is a commonly requested feature (see
https://ulc-community.canoo.com/jira/browse/UBA-1098).
Unfortunately, you cannot get this behavior with the current ULC release.
>From Release 6.1 on, you
will be able to implement context-sensitive tooltips by extending
ULCTableTree. If time permits, we
will also include UBA-1098 as out-of-the box functionality.

Best regards,
Gerd Hillebrand
  -----Original Message-----
  From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of
[EMAIL PROTECTED]
  Sent: Dienstag, 10. Januar 2006 15:03
  To: [email protected]
  Subject: [ULC-developer] show tooltip in tabletree


  Hallo,

  ich würde gerne in einem Tabletree Tooltips anzeigen, da manchmal die
Spalte zu schmal ist, alles anzuzeigen. Ich habe eine Subclass von
DefaultTableTreeCellRenderer und rufe da setTooltip auf. Leider hat das
keinen Effekt. Gibt es eine Möglichkeit einen Tooltip für eine
tableTreeZeile zu setzen (für alle Spalten auf einmal wenn es geht) und
anzuzeigen?

  Danke für Infos im Voraus,

  Robert


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

Reply via email to