2011-01-20 19 views
9

CellTable kullanarak düzenlenebilir bir ızgara oluşturmaya çalışıyoruz. durumunun kullanılması, hesap tablolarına 10 anahtar giriş için kullanılan muhasebeciler için oldukça yüksek hacimli veri girişidir. Spreadsheet- stil klavye navigasyonunu olabildiğince yakından kopyalamaya çalışıyoruz.GWT CellTable içinde klavye gezinti

  1. bir TextInputCell için düzenleme modunda içine almak için Giriş tuşuna basınız zorunda kalmamak için herhangi bir yolu var mı? TextInputCell.onBrowserEvent()'u onEnterKeyDown() numaralı çağrıyı çağırarak, numaralı bir olayı almayı denedim, ancak çalışmadı.

  2. Tab veShift kullanmak için herhangi bir yolu var mı - Tab sütunların yerine sol ok ve sağ ok arasında gezinmek için? CellTable, sol ve sağ okları kullanmak ve genişletmek zor olan kodlu gibi görünüyor.

cevap

6

Çok fazla çalışmayı denedikten sonra, CellTable'ın ihtiyaç duyduğumuz şeyi yapacak kadar genişletilemeyeceğini belirledik. GWT'nin Grid sınıfını genişleterek, ihtiyaçlarımız için yeterince iyi performans göstermesi için CellTable'dan tasarım ipuçları aldık.

Kullanım durumumuzda, sayfa görünümlerinin% 80'i 10 satırdan daha az görüntülenecek ve hiçbir zaman 10'dan fazla sütun içermeyeceğiz (<% 0,5'inde 500'den fazla satır var). Tam teşekküllü bir sinek ağırlığı modeli yerine, tembel bir yükleme deseni kullandık. Izgara başlangıçta doldurulduğunda, verileri temeldeki değer nesnelerinden göstermek için yalnızca görüntüleme araçları kullanılır. Her ekran gösterimli küçük aracına bir FocusHandler eklenir. Bir kullanıcı bir ekran parçacığına tıkladığında veya sekmeyi tıklattığında, FocusHander düzenlenebilir widget'lar ile o satırın yalnızca görüntülü widget'larını değiştirir.

Yalnızca gösterilebilir widget'lar, TextBox ve CheckBox gibi hafif widget'larla sınırlıdır, bu nedenle oluşturma süresi kabul edilebilir. 100 satır x 5 sütun 2 saniyeden daha kısa sürede işlenir. Öneri Kutuları, Tarih Kutuları ve Diğer Kompozitler yalnızca düzenlenebilir gereçler olarak kullanılmak üzere sınırlandırılmıştır.

Avantajları

  1. Esneklik
  2. genişletilebilirlik standart widget herhangi birini kullanmak için - biz tarafından gelişimin HücreTablosu
  3. Kolaylığı yapılan uygulama seçimler sınırlı değiliz - daha az prototyped geliştirme 3 gün daha
  4. gereksinimlerine uyacak kadar iyi performans sergiliyor Eğer

Dezavantajları

  • Değil HücreTablosu kadar ölçeklenebilir

    beklediğiniz gibi
  • Sekmeler kutudan çalışacak.
  • Biz kendimizi Class Model
+1

uygulamanız Açık Kaynak mı korumak zorunda Bu uygulama satır binlerce işlemek için gitmiyor. Aynı problemim var. Eğer deneyebilirsem awsome olurdum! Teşekkürler! – Jacob

+0

Üzgünüz, bu bir müşterinin projesi için oluşturuldu. Tüm kodlara sahipler. – piehole

+0

Diğer ihtiyaçlar için geçici çözümlere iyi düzeyde genel bakış, cevap için teşekkürler – Forhad