2011-01-20 44 views
9

Chúng tôi đang cố tạo lưới chỉnh sửa bằng cách sử dụng CellTable. Trường hợp sử dụng là mục nhập dữ liệu khối lượng khá cao cho các kế toán được sử dụng để nhập 10 khóa vào bảng tính. Chúng tôi đang cố gắng sao chép bảng tính theo phong cách bảng tính kiểu chặt chẽ nhất có thể.Điều hướng bằng bàn phím trong GWT CellTable

  1. Có cách nào để tránh phải nhấn Enter để chuyển sang chế độ chỉnh sửa cho TextInputCell không? Tôi đã cố gắng ghi đè TextInputCell.onBrowserEvent() để gọi onEnterKeyDown() khi nhận được sự kiện trọng tâm nhưng điều đó không hiệu quả.

  2. Có cách nào để sử dụng Tabphím Shift - Tab để di chuyển giữa cột thay vì LEFT-mũi tên và mũi tên bên phải? CellTable có vẻ là được mã hoá cứng để sử dụng các mũi tên trái và phải và khó mở rộng.

Trả lời

6

Sau khi thử một chút, chúng tôi đã xác định rằng CellTable không đủ khả năng để làm những gì chúng tôi cần. Chúng tôi đã kết thúc mở rộng lớp Grid của GWT, lấy các dấu hiệu thiết kế từ CellTable để làm cho nó hoạt động tốt đủ cho nhu cầu của chúng tôi.

Trong trường hợp sử dụng của chúng tôi, 80% lượt xem trang sẽ hiển thị dưới 10 hàng và chúng tôi sẽ không bao giờ có hơn 600 hàng bởi 10 cột (< 0,5% số trường hợp có hơn 500 hàng). Thay vì một mô hình ruồi chính thức, chúng tôi sử dụng một mẫu tải lười biếng. Khi Lưới ban đầu được điền, các tiện ích chỉ hiển thị được sử dụng để hiển thị dữ liệu từ các đối tượng giá trị cơ bản. Một FocusHandler được gắn vào mỗi widget chỉ hiển thị. Khi người dùng nhấp hoặc tab vào một tiện ích hiển thị, FocusHander sẽ hoán đổi các tiện ích chỉ hiển thị cho hàng đó bằng các tiện ích có thể chỉnh sửa.

Tiện ích con chỉ hiển thị bị hạn chế đối với các tiện ích nhẹ như TextBox và CheckBox, vì vậy thời gian hiển thị có thể chấp nhận được. 100 hàng x 5 cột hiển thị trong chưa đầy 2 giây. SuggestBoxes, DateBoxes và các Composites khác được giới hạn chỉ được sử dụng làm tiện ích có thể chỉnh sửa.

Ưu

  1. linh hoạt để sử dụng bất kỳ widget chuẩn
  2. Khả năng mở rộng - chúng tôi không bị giới hạn bởi những lựa chọn thực hiện thực hiện trong CellTable
  3. Dễ phát triển - prototyped trong ít hơn 3 ngày phát triển
  4. Thực hiện đủ tốt để phù hợp với cần
  5. của chúng tôi
  6. Tabs làm việc ra khỏi hộp như bạn mong chờ

Nhược

  • Không như khả năng mở rộng như CellTable.thực hiện này sẽ không làm cho hàng ngàn hàng
  • Chúng ta phải duy trì nó mình Class Model
+1

là thực hiện của bạn mã nguồn mở. Tôi có cùng một vấn đề. Tôi sẽ rất phiền nếu tôi có thể thử nó! Cảm ơn! – Jacob

+0

Xin lỗi, điều này đã được xây dựng cho dự án của khách hàng. Họ sở hữu tất cả các mã. – piehole

+0

tổng quan về mức trừu tượng tốt để giải quyết cho những người khác cần, cảm ơn câu trả lời – Forhad

Các vấn đề liên quan