0

Scrollbar in Listbox moves to last selected item

asked 操你啦微拍福利台湾妹民主党总统参选人桑德斯痛批美国药企抬高药价

發布時間︰

等到後來,四個漫長無邊的年頭一過去,我發現,我又可以在從前的那 個世界里生活了,這我自己也深感意外。因為我們這些從陰間地府返回人世 的人,衡量一切事物都用一種新的標準。良心上有條人命,對于參加過世界 大戰的官兵和對于和平世界的人,分量自然不同。我自己個人的罪過,在這 操你啦 使然。很難說誰是完美無缺的正面人物,誰是陰險狡詐的反面角色。茨威格 讓我們看到,寫小說並不是非要捏出一個天使、一個惡魔不可。那種非黑即 白的狀況在生活中並不存在,在小說中也大可不必。那樣的典型描寫頗有臉 譜化公式化之嫌。茨威格對艾迪特是傾注了滿腔同情的。他把這個受到命運 殘酷打擊、惡意播弄的姑娘寫成一個天真無邪、美麗可愛的少女,但是保留 著高傲、任性等貴族小姐的特色,稍不順心便大發脾氣,因此在霍夫米勒悔 婚之後,她才會痛不欲生,憤而自盡。但是在茨威格的筆下,霍夫米勒也並 沒有被寫成天生的惡棍,恣意玩弄女性的感情。他有正義的沖動、行善的願 望,在軍官階層中應該說還是個佼佼者,所以被人看成“奇人”,俠義的少 年,高尚的善人,而且對艾迪特除了同情之外,也確有幾分真摯的柔情。然 而他意志薄弱,優柔寡斷,瞻前顧後,顧慮重重,經過幾番動搖彷徨,最後 訂婚、悔婚,決定自殺,匆匆出走,抱恨終天。這一切都是出于性格上的弱 點而不是由于邪惡的動機。本來,人是社會的動物,不能要求人不受環境、 不受社會輿論、不受階級成見的影響而單憑自己的感情行事。這就產生了許 多悲劇,有的是因為屈服于社會輿論而遺恨終生,有的則是因為反抗社會輿 論而遭到不幸。茨威格在這里讓我們看到,外界的影響如何激起主人公心里 洶涌的波濤,內心的潮漲潮落如何左右主人公感情的起伏、行動的進退,心 靈的危機如何最終鑄成這一對青年男女的悲劇命運。微拍福利   藍波找上門的時候,我正在店里切醬牛肉。他是一個人來的,寧嘉沒露面。 “這就是全部在場的人?”台湾妹 話裝在樓下辦公室的一個角落里,門房已經把听筒擱在耳邊。我急躁地把他 2019-07-29 16:02:29 +0800

anvibb gravatar image anvibb
3 1

Hi, guys! I have some trouble with scrollbar in the Listbox component - when I set the model to it and selecting several listitems, the scrollbar moves down to the last selected item, but I need to keep it on top. We've used simple zul as a view:

<zk>
<window xmlns="http: //www.zkoss.org/2005/zul" xmlns:xsi="http: //www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http: //www.zkoss.org/2005/zul http: //www.zkoss.org/2005/zul/zul.xsd"
        use="com.otr.sufd.zkossforms.table.SetDocColumnsView"
        closable="true" border="normal" title="Customize columns" ctrlKeys="" height="400px" width="300px">
    <borderlayout width="100%" height="100%">
        <center>
            <listbox id="table" checkmark="true" vflex="true" fixedLayout="true" multiple="true" width="100%">
                <listhead>
                    <listheader align="left">Column title</listheader>
                </listhead>
            </listbox>
        </center>

        <south size="36" autoscroll="true">
            <toolbar align="end">
                <button label="OK" id="okButton" height="24px" width="75px" mold="os"/>
                <button label="Reset" id="resetButton" height="24px" width="75px"/>
                <button label="Cancel" id="cancelButton" height="24px" width="75px" mold="os"/>
            </toolbar>
        </south>
    </borderlayout>
</window>

</zk>

In SetDocColumnsView I filled Listbox by model and make some AfterCompose actions:

public void configureView(List<? extends HeaderElement> columns, Set<String> hiddenIds) {
    setSizable(true);

    final ListModelList tableModel = new ListModelList(columns);
    tableModel.setMultiple(true);
    table.setModel(tableModel);
    table.renderAll();
    for (int i = 0; i < columns.size(); i++) {
        final HeaderElement column = columns.get(i);
        if (column != null) {
            final Listitem listitem = table.getItemAtIndex(i);
            listitem.setLabel(column.getLabel());
            final String columnId = column.getId();
            listitem.setValue(columnId);
            listitem.setSelected(!hiddenIds.contains(columnId));
        }
    }
}
@Override
public void afterCompose() {
    table = (Listbox) getFellow("table");
    final Button okButton = (Button) getFellow("okButton");
    //adds some listeners to buttons
    addForward(Events.ON_OK, okButton, Events.ON_CLICK);
    addForward(Events.ON_CANCEL, cancelButton, Events.ON_CLICK);
    okButton.setFocus(true);
}

And then I show the dialog window by this code:

final SetDocColumnsView dialog = UIUtils.loadComponent(SetDocColumnsView.getUrl());
dialog.configureView(columnList, hiddenIds);
dialog.setPage(getPage());
dialog.doHighlighted();

I've tried to use some advice given in other threads, such as:

Clients.scrollIntoView(table.getItemAtIndex(0))

or call JS function inside my configureView method:

Clients.evalJavaScript("zk.Widget.$('" + dialog.table.getUuid() + "')._scrollToIndex(0);")

or keep all listitems what I need to select in a different Set and post to setSelectedItems method of Listbox, but everything is without success. Also, I've tried to debug a JS function _doScroll in Listbox.js but I don't figure out from where it has been called :(

I will be very appreciated if someone can help me with this problem.

Best regards, Roman

delete flag offensive retag edit

Comments

if your example is simple, please paste it into http://zkfiddle.org/ so that anyone can have a look directly, this increases your chances of getting a response quickly

cor3000 ( 2019-07-29 18:30:05 +0800 )edit

Yeah, I made simple zkfiddle example - http://zkfiddle.org/sample/1a44bo/1-scrollbar-in-listbox-moves-to-last-selected-item which reproduces the problem

anvibb ( 2019-07-30 21:16:58 +0800 )edit

4 Answers

0

answered 2019-08-01 09:12:39 +0800

hawk gravatar image hawk
2415 1 5
http://hawkphoenix.blogsp... ZK Team

Thanks for the zkfiddle example. Remove renderAll() can solve scrolling position issue. Listbox by default will render necessary Listitem for visible range, you don't need to call renderAll() which will enforce rendering all Listitems which is unnecessary for most cases. Please refer to http://zkfiddle.org/sample/1a44bo/2-scrollbar-in-listbox-moves-to-last-selected-item#source-2

link publish delete flag offensive edit
0
link publish delete flag offensive edit
0

answered 2019-07-31 21:05:33 +0800

anvibb gravatar image anvibb
3 1

updated 2019-08-01 09:01:48 +0800

hawk gravatar image hawk
2415 1 5
http://hawkphoenix.blogsp... ZK Team

Thank you for the response, hawk!

I tried to change the selection of items as you advised, but it doesn't solve my problem - when I select several items via ListModeList.setSelection, the scrollbar moves down to the last item. I made an example of that behavior in zkfiddle - http://zkfiddle.org/sample/1a44bo/1-scrollbar-in-listbox-moves-to-last-selected-item

link publish delete flag offensive edit
0

answered 2019-08-01 17:45:43 +0800

anvibb gravatar image anvibb
3 1

Removing renderAll() is helped!

Thank you so much!

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow
1 follower

RSS

Stats

Asked: 2019-07-29 16:02:29 +0800

Seen: 12 times

Last updated: Aug 01

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More