2012-09-14

Cardlayout:用 swipe 來切換 view

簡介

我們在 ZK 6.5 版提供了一個新的 component Cardlayout ,讓使用者可以像操作卡片一樣在 component 之間切換。 在 Tablet 上還支援用 swipe 動作來改變畫面。

2012-09-13

Dropupload:用 HTML5 打造新的上傳 component

簡介

在 ZK 6.1 EE 版中,我們設計了一個新的元件 Dropupload。這個元件使用 HTML5 的技術,讓使用者可以透過拖曳的方式指定要上傳的檔案,並保有原本檔案上傳的功能與操作習慣。另外,相較於傳統的 File Upload 方式,Dropupload 也可以省去 pooling server 以取得 progress 的 overhead,大幅降低 server 負荷。

Live Demo

(請到 ZK Blog 觀賞 XD)

新屬性:detection

因應 Drag and Drop 的行為,我們增加了 detection 這個屬性,讓你可以設定當使用者將檔案 drag 到哪裡的時候會顯示 Dropupload 以及提示資訊。detection 接受下列四種值: * none : 無視 DnD 的動作,永遠顯示 Dropupload 與提示資訊。 * browser (default) : 正常狀況下並不會顯示。當使用者將檔案拖曳進 browser 時就會顯示 Dropupload 以及提示資訊。 * self : 正常狀況下會顯示 Dropupload 但不會顯示提示資訊,當使用者將檔案拖曳進 Dropupload 元件的範圍時顯示提示資訊。 * 其他元件的 id : 與 self 相同,但觸發的範圍是指定 id 的元件。

轉換原有的 File Viewer

就跟傳統的 File Upload 一樣,在 Dropupload 可以設定 viewerClass 屬性來使用指定的 File Viewer。而過去寫好的客製化 File Viewer 也可以繼續沿用,只需要作一點小改變: * $init() 的第二個參數從原本的 filenm(String)改變成 file(File)物件。增加 var filenam = file.name 就解決了。此外還可以透過 file.size 取得檔案大小(Bytes)、file.type 取得檔案的 MIME 資訊。 * update() 的第一個參數 send,原本會傳入一個介於 0~100 的整數值,代表已經上傳的百分比;現在則是改為傳入已上傳的資料量(Bytes) 就這麼多了,是不是很簡單呢?

Browser 支援度?

是的,由於 Dropupload 使用 HTML5 的技術,所以有些 browser 無法支援的。目前在 Firefox (v.13)、Chrome (v.19)、Safari (v.5.1.x) 確定是可以正常運作,而在 IE9、Opera v.11.x 無法使用這個功能。

另外,在一些有點年紀的機器上,detection 的設定會無法顯示。

Reference

2012-09-08

iPhone 上文字意外變大的問題

這是在作 ZKForumViewer 遇到的問題。精簡後程式碼如下

2012-09-01

ZK-1310 的故事

來寫一篇 ZK-1310 的檢討報告 (誰叫我亂發 issue)

起因是這一個 forum thread。 在這裡先 murmur 一下,ZK 截至目前為止是沒有 用 MVVM 寫一個 Tree 的官方範例; MVC 版是有,可是... 只能說那個建立 TreeModel 的 code 實在是太銷魂了, 而且在我修改之前的程式碼根本不能跑。 另外也很好奇,自己從 MVC 版改裝成 MVVM 有那麼難嗎? 為什麼一堆歪果人在 forum 上頭掱呢?果然付錢用 ZK 跟拿錢用 ZK 差很多 [淚目]

啊啊... 是檢討報告、不是 complain 大會... [逃]