ZK 6.5.3 在 iPad / Android Phone(都是 Chrome)上頭連個毛都出不來,不然就是整個 layout 炸光光,回頭用 ZK 6.5.1 就沒事...

偉哉...

我覺得唬爛什麼學習曲線平緩(甚至還向下?真是嚇死爹了... ==")都是騙人的。倒不如隔了一段時間再回頭用某個技術,看看往下寫的順暢度,那才是真實的。

這一年來,頭半年大抵上是 full-time 的狀態寫 ZK,後來則是跟 GWT 混著寫、這兩個月則是都在寫 GWT(放假就放了半個月 Zzzz)。現在臨時要回去 ZK 的 project 加個頁面,我發現我什麼都不記得了.......

這幾天隔了一年多重寫 GXT Chart 也沒那麼痛苦。

大概是我跟 ZK 很不熟吧... [茶]

Post has attachment
我對這個 ZK 現象有著有一堆 blame,G+ 空白太小了寫不下,只好發一篇 blog......

要寫 clinet side code,從(偽)JavaDoc 上完全不知道有什麼 onXXX 可以用(還是說在文件海當中又有哪一個角落有著名 server side 可以下的 onXXX 也一定會有對應 client side 的 onXXX?

是說 server side 也沒多好,在 JavaDoc 也還是看不出來,不過至少 ZK document 多少還是會列一下有哪些 event 會處理...

唉...

版本是遙遠的 ZK 3 最後一版。

想要在新寫的頁面載入時讓某個 Combobox 的呈現指定的值,然後發現怎麼樣都會炸 out of bound。afterCompose() 炸、onCreate() 炸,其他更離譜的招數就跳過。

but... 有另一個古老的頁面,卻(似乎)可以有這樣的功能、至少他呼叫 setSelectedIndex() 沒有炸。繞半個多小時,最後發現...

幹,那個古老的頁面是用 Listbox 的某個 mode、外觀上看起來會像 Combobox

接下來數百字的吐曹我實在懶得打了,只能再次證實(當時)ZK 就是想到什麼作什麼、沒有整體規劃的東西...

幹 他 媽 的...

在 ZK 6.5.1 正常的畫面,到了 ZK 6.5.2 就炸光光。頁面說複雜也沒多複雜,而且我自認 layout 寫法中規中矩、沒有用什麼奇異招數...

連要 debug 都不知道從哪裡開始。

幹......


補上 SSCCE

<zk>
<window width="100%" height="100%" self="@define(content)" border="normal">

<hlayout width="100%" height="100%">
<button label="1" vflex="1" hflex="300px" />
<button label="2" vflex="1" hflex="1" />
</hlayout>
</window>
</zk>

在 6.5.1 當中,button-1 的寬度是 300,在 6.5.2 button-1 會吃滿整個畫面.....

其實還不夠 SSCCE,因為還搞了一層 self="@define(content)"...不過我懶得連那層都拔掉了...

Grid 當中的 Combobox 作 setButtonVisible(false) 以及 setWidth("100%"),結果會比同 column、也是 setWidth("100%") 的 textbox 少上 2px

每當我覺得我理解 combobox + form binding + converter 的時候,就會炸出莫名的東西讓我死爽爽



update:

結果是 comboitem 的 value 值不知道是拿來幹麼用的,也許是搭配 combobox 的 selectedItem? 天知道... [眼神死]

原本要轉換的是 blahblah.foo,值是 WTF 這個 table/entity 的 fieldA、UI 上頭想顯示的是 WTF.fieldB。然後某一個 combobox 的 model 是 WTF,combobox.label 是 WTF.fieldB、description 是 WTF.fieldB...

於是乎,除了另外寫一個更扭曲的 converter,不然此題無解?

再補一個幹

雖然在 GXT 的 TabPanel 有炸過類似的 bug,但沒有 ZK Tabbox 這麼誇張。

<tabpanel> 裡頭裝 <vlayout vflex="1">,這個 vlayout 裡頭有一個 vflex="1" 的 component(是啥不重要,他的大小理論上都會正確),然後如果加上一個 <button width="500px"> 或是 <window width="500px">,只要切換會這個 tabpanel,原本 500px 就會馬上變成最小的大小。

然後如果改用 Groupbox,沒這個問題......(所以之前一直都沒炸到),或是 button / window 改成用 vflex、外面再包一個 vlayout,也不會有這個問題...

無言到一種極致....... 只能罵幹了

懶得作 SSCCE、也找不到 macro 的 client side code(為什麼我不覺得驚訝),不過應該不至於太離譜 [希望 XD]

macro 會預設兩個 style,一個是 display:inline-block。然後如果你對 macro 作 setVisible(false) 然後再 setVisible(true),那個 inline-block 就會不見...

真的是太棒了... 幹
Wait while more posts are being loaded