Hi Janak
Thanks for your workaround! It works fine. :)
In my focusListener I had to reduce the focusEvents because otherwise a click
on a menu in the menubar gives as well a FocusLostEvent. But this way it seems
to have the 'normal' behaviour...
private FocusListener focusListener = new FocusListener(){
public void focusGained(FocusEvent e) {
if(!e.isTemporary()){
fireFocusGainedULC();
}
}
public void focusLost(FocusEvent e) {
if(!e.isTemporary()){
fireFocusLostULC();
}
}
};
Thanks!
Alex
-----Ursprüngliche Nachricht-----
Von: Janak Mulani [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 6. September 2006 13:44
An: Stucki Alexander, Bedag
Cc: [EMAIL PROTECTED]
Betreff: RE: [ULC-developer] Missing FocusEvents in ULCTableTree
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