对于每个TreeView… >>
<< 在进行DND的设…
对于DND中,设置…

Author Zhou Renjian Create@ 2004-02-29 00:26
whizz Note icon
对于DND中,设置TreeViewer中两个元素相等,要讲究,要不对导致意想不到的效果,譬如说
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null) 
            return false;
        if (!(obj instanceof INoteItem))
            return false;
        INoteItem ni = (INoteItem)obj;
        if (parent == null) {
            if (ni.parent != null) {
                return false;
            }
            if (!(ni.note.equals(note))) {
                return false;
            }
        } else {
            if (ni.parent == null) {
                return false;
            }
            if (!(ni.parent.note.equals(parent.note))) {
                return false;
            }
            if (!(ni.note.equals(note))) {
                return false;
            }
        }
        return true;
    }
    
    public boolean equals(INoteItem obj) {
        if (this == obj)
            return true;
        if (obj == null) 
            return false;
        if (!(obj instanceof INoteItem))
            return false;
        return note.equals(((INoteItem)obj).note);
    }
是两种不同的相同,第一种相同过于严格,会导致dnd时,不能够充分认识到一些祖先和子女之间的密切联系。
第二种则相对宽松,但会导致譬如双击或重新select元素时候,元素不能准确定位,例如双击相同的两个books中的第二个,而展开的是第一个books!从而上两种相同要分开来讨论。















本记录所在类别:
本记录相关记录: