Hi Alex,

Thanks for pointing out the problem.

This is a bug in ULCTableTree. I have created an issue:
https://www.canoo.com/jira/browse/UBA-7043

In the extension, do the following:

 protected void postInitializeState() {
            super.postInitializeState();
            getBasicTableTree().getBasicTable().addFocusListener(focusListen
er);
            getBasicTableTree().getBasicTable().addMouseListener(new
MouseListener() {

Thanks and regards,

Janak



>-----Original Message-----
>From: [EMAIL PROTECTED]
>[mailto:[EMAIL PROTECTED] Behalf Of Stucki
>Alexander, Bedag
>Sent: Friday, September 01, 2006 7:59 PM
>To: [EMAIL PROTECTED]
>Subject: [ULC-developer] Missing FocusEvents in ULCTableTree
>
>
>Hi All
>
>I would like to have the same behaviour on FocusEvents in ULCTable and
>ULCTableTree.
>In my snippet this is not the case...
>The ULCTableTree does not get any FocusEvent (Mouse and Tab) even on the
>UI side.
>
>What's wrong?
>
>The workaround with the mouseevent does not solve my problem because I
>still do not have the FocusLostEvent.
>Another workaround with the selectionListener is as well not helpfull
>because then I miss the FocusLostEvent also.
>
>I'm using ULC 6.1.
>
>Thanks a lot!
>Alex
>
>***
>
>import java.awt.event.FocusListener;
>import java.awt.event.MouseEvent;
>import java.awt.event.MouseListener;
>import java.util.ArrayList;
>import java.util.List;
>
>import com.ulcjava.base.application.AbstractApplication;
>import com.ulcjava.base.application.ULCBoxPane;
>import com.ulcjava.base.application.ULCComponent;
>import com.ulcjava.base.application.ULCFrame;
>import com.ulcjava.base.application.ULCScrollPane;
>import com.ulcjava.base.application.ULCTable;
>import com.ulcjava.base.application.ULCTableTree;
>import com.ulcjava.base.application.ULCTextField;
>import com.ulcjava.base.application.event.FocusEvent;
>import com.ulcjava.base.application.event.serializable.IFocusListener;
>import com.ulcjava.base.application.table.DefaultTableModel;
>import com.ulcjava.base.application.tabletree.DefaultTableTreeModel;
>import com.ulcjava.base.application.tabletree.ITableTreeNode;
>import com.ulcjava.base.application.util.BorderedComponentUtilities;
>import com.ulcjava.base.client.UITableTree;
>import com.ulcjava.base.development.DevelopmentRunner;
>
>public class MyTableTree extends AbstractApplication {
>
>    public static void main(String args[]) {
>        DevelopmentRunner.setApplicationClass(MyTableTree.class);
>        DevelopmentRunner.run();
>    }
>
>    public void start() {
>        ULCTextField editField = new ULCTextField();
>        ULCComponent borderedEditField =
>BorderedComponentUtilities.createBorderedComponent(editField, "To Do
>Item");
>
>               IFocusListener focusListener = new IFocusListener(){
>                       public void focusGained(FocusEvent arg0) {
>
>System.out.println(this.getClass().getName() + ".focusGained()");
>                       }
>                       public void focusLost(FocusEvent arg0) {
>
>System.out.println(this.getClass().getName() + ".focusLost()");
>                       }
>        };
>
>        Object[] rowOne = new Object[] {
>                    "rowOne:columnOne", "rowOne:columnTwo",
>"rowOne:columnThree"};
>        Object[] rowTwo = new Object[] {
>                    "rowTwo:columnOne", "rowTwo:columnTwo",
>"rowTwo:columnThree"};
>
>        DefaultTableModel defaultTableModel =
>                        new DefaultTableModel(new Object[0][0],
>                                              new String[] {
>                                                  "column1",
>                                                  "column2",
>                                                  "column3"});
>
>        defaultTableModel.addRow(rowOne);
>        defaultTableModel.addRow(rowTwo);
>        ULCTable table = new ULCTable(defaultTableModel);
>        table.addFocusListener(focusListener);
>        ULCScrollPane tablePane = new ULCScrollPane(table);
>        ULCComponent borderedTable =
>BorderedComponentUtilities.createBorderedComponent(tablePane, "table");
>
>        MyTableTreeNode root = new MyTableTreeNode("root");
>        MyTableTreeNode one = new MyTableTreeNode("one");
>        root.addKid(one);
>        MyTableTreeNode two = new MyTableTreeNode("two");
>        root.addKid(two);
>        DefaultTableTreeModel tableTreeModel = new
>DefaultTableTreeModel(root, new String[]{"name"});
>//        ULCTableTree tableTree = new ULCTableTree(tableTreeModel);
>        MyULCTableTree tableTree = new MyULCTableTree(tableTreeModel);
>        tableTree.addFocusListener(focusListener);
>        ULCScrollPane tableTreePane = new ULCScrollPane(tableTree);
>        ULCComponent borderedTableTree =
>BorderedComponentUtilities.createBorderedComponent(tableTreePane,
>"tableTree");
>
>
>        ULCBoxPane rootBox = new ULCBoxPane(true);
>        rootBox.add(ULCBoxPane.BOX_EXPAND_TOP, borderedEditField);
>        rootBox.add(ULCBoxPane.BOX_EXPAND_CENTER, borderedTable);
>        rootBox.add(ULCBoxPane.BOX_EXPAND_BOTTOM, borderedTableTree);
>
>        ULCFrame frame = new ULCFrame("ULC ToDoList Sample");
>        frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
>        frame.add(rootBox);
>        frame.setVisible(true);
>    }
>
>    static class MyTableTreeNode implements ITableTreeNode {
>
>        private List kids = new ArrayList();
>        private ITableTreeNode parent = null;
>        private String name = null;
>
>         MyTableTreeNode(String name){
>               this.name = name;
>         }
>
>               public ITableTreeNode getChildAt(int arg0) {
>                       return
>(kids.size()>0)?(ITableTreeNode)kids.get(arg0):null;
>               }
>
>               public int getChildCount() {
>                       return kids.size();
>               }
>
>               public ITableTreeNode getParent() {
>                       return this.parent;
>               }
>
>               public int getIndex(ITableTreeNode arg0) {
>                       return (kids.size()>0)?kids.indexOf(arg0):0;
>               }
>
>               public Object getValueAt(int arg0) {
>                       return (kids.size() >
>0)?kids.get(arg0).toString():null;
>               }
>
>               public boolean isLeaf() {
>                       return kids.size() == 0;
>               }
>
>               public void setParent(ITableTreeNode parent) {
>                       this.parent = parent;
>               }
>
>               public void addKid(ITableTreeNode kid){
>                       kids.add(kid);
>               }
>
>               public String toString(){
>                       return this.name;
>               }
>    }
>
>    public static class MyULCTableTree extends ULCTableTree {
>        public MyULCTableTree(DefaultTableTreeModel model) {
>               super(model);
>        }
>
>        protected String typeString() {
>            return MyUITableTree.class.getName();
>        }
>    }
>
>    public static class MyUITableTree extends UITableTree {
>    private boolean hasFocus = false;
>
>          FocusListener focusListener = new FocusListener(){
>                       public void
>focusGained(java.awt.event.FocusEvent arg0) {
>
>System.out.println(this.getClass().getName() + ".focusGained() -
>MyUITableTree");
>                       }
>                       public void focusLost(java.awt.event.FocusEvent
>arg0) {
>
>System.out.println(this.getClass().getName() + ".focusLost() -
>MyUITableTree");
>                       }
>        };
>
>        protected void postInitializeState() {
>            super.postInitializeState();
>            getBasicTableTree().addFocusListener(focusListener);
>            getBasicTableTree().addMouseListener(new MouseListener() {
>                public void mouseClicked(MouseEvent e) {
>
>System.out.println(this.getClass().getName() + ".mouseClicked()");
>//                    getBasicTableTree().requestFocus();
>                       fireFocusGainedULC();
>                }
>                public void mousePressed(MouseEvent e) { /* noop */ }
>                public void mouseReleased(MouseEvent e) { /* noop */ }
>                public void mouseEntered(MouseEvent e) { /* noop */ }
>                public void mouseExited(MouseEvent e) { /* noop */ }
>            });
>        }
>    }
>}
>
>
>
>Alex Stucki
>Bedag Informatik AG
>Software-Entwicklung
>Gutenbergstrasse 1
>3011 Bern
>Telefon:       +41 (0)31 633 21 21 (direkt 633 25 35)
>E-Mail:        mailto:[EMAIL PROTECTED]
>www.bedag.ch
>
>
>
>_______________________________________________
>ULC-developer mailing list
>[email protected]
>http://lists.canoo.com/mailman/listinfo/ulc-developer

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

Reply via email to