2011-02-01 26 views
5

Tôi có bảng hiển thị đầu ra từ cơ sở dữ liệu, điều này thường có thể lên đến hoặc trên 10.000 hàng. Tôi đang tìm cách triển khai chức năng 'tìm nhanh' cho phép người dùng dễ dàng cuộn đến một hàng có giá trị mà họ tìm kiếm."Tìm nhanh" cho Bảng SWT

Ý tưởng cho việc này rất giống với tìm kiếm nhanh của Chrome hoặc Firefox. Vì vậy:

  1. tài hit 'CTRL + F'
  2. Một hộp bật lên:
  3. quick find example
  4. Người dùng có thể sau đó nhanh chóng lướt qua bảng đẩy/hoặc/\ để mỗi giá trị khớp

Câu hỏi của tôi là, một bảng như vậy đã tồn tại chưa? Tôi đã xem xét NatTableXViewer nhưng cả hai đều có vẻ như bổ sung khá lớn cho một thay đổi tương đối nhỏ.

Một thư viện khác mà tôi đã xem xét là gần phù hợp với billl là Lucene TableSearcher thật không may điều này được thiết kế để lọc thay vì làm nổi bật. Tuy nhiên nó có thể là một con đường đáng để điều tra.

Trả lời

1

Giải pháp tôi chọn không đơn giản như tôi mong đợi nhưng có hiệu suất thỏa đáng.

Các bảng có liên quan là các bảng ảo có thể rất lớn. Vì vậy, trên đầu trang của điều này khi tải tập dữ liệu, chúng tôi bắt đầu một thread để xây dựng một chỉ số trong các hình thức của một danh sách. Bởi vì các bảng này có thể rất lớn (nhưng không thường xuyên), chúng tôi đặt giới hạn 50mb cho danh sách này và dừng lập chỉ mục khi chúng tôi đạt đến nó. Đối với hầu hết các trường hợp, điều này hoàn toàn có thể chấp nhận được nhưng đối với các bảng lớn hơn, điều đó có nghĩa là trong khi nó có thể chậm hơn, nó ổn định hơn nhiều so với các tùy chọn khác.

'Tìm kiếm' là một hộp văn bản SWT đơn giản với ModifyListener lặp lại trong danh sách, thực hiện 'chứa' trên mỗi mục nhập. Khi khớp với hàng và cột được tính từ số chỉ mục (0 = 0,0, 1 = 0,1 ..).

Thật tuyệt khi có giải pháp 'thả vào' đơn giản nhưng tất cả các bảng trên phiếu mua hàng đều có quá nhiều tính năng.

2

Không hoàn toàn giống nhau, nhưng JFace không hỗ trợ chế độ xem lọc. Bạn nhập vào một hộp văn bản và xem nội dung thu nhỏ lại với nội dung phù hợp với bộ lọc. Về cơ bản nó là một cách khác để trình bày chức năng tìm kiếm/tìm kiếm cho người dùng.

Bạn có thể thấy điều này đang hoạt động trong Eclipse Preferences (trường văn bản bộ lọc về cây điều hướng trong hộp thoại). Xem lớp org.eclipse.ui.dialogs.FilteredTree. Tôi không tin rằng có một FilteredTable hoặc tương đương, nhưng cơ sở cơ bản là khá chung chung, vì vậy nó không nên mất nhiều công sức để đặt một với nhau. Hãy xem nguồn FilteredTree và đi từ đó.

+0

Cảm ơn, đã có bộ lọc cho bảng này (sử dụng truy vấn cơ sở dữ liệu để thực hiện lọc). Ý tưởng là tìm kiếm sẽ khen bộ lọc bằng cách cho phép người dùng lướt qua dữ liệu được lọc. –

0

Sử dụng hộp thoại FilteredItemsSelectionDialog

+0

Tìm ở đâu? Nó là một phần của SWT hay JFace? – Mot

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