2009-03-26 33 views
5

Câu hỏi về RCP Eclipse và thiết kế phối cảnh/xem/biên tập toàn bộ - cách tốt nhất để tạo ứng dụng sẽ hiển thị nhiều cửa sổ trên nhiều màn hình là gì? Hướng dẫn và cuốn sách tôi đã nhìn thấy luôn luôn đóng gói RCP/SWT thiết kế vào quan điểm bên trong quan điểm trong cửa sổ ứng dụng duy nhất.Ứng dụng RCP Eclipse - thiết kế nhiều cửa sổ cho nhiều màn hình

Quy tắc một cửa sổ nên tất cả những người khác hoặc tất cả đều phải bằng nhau (đóng ứng dụng thoát cuối cùng)? Làm thế nào đối phó với các quan điểm và quan điểm? Có điều gì khác mà chúng ta nên biết không?

Môi trường: Eclipse Ganymede, Windows XP.

Trả lời

7

Một bàn làm việc Eclipse đơn có thể tạo nhiều cửa sổ. Mỗi cửa sổ được đặt ra bằng cách sử dụng phối cảnh, vì vậy các cửa sổ khác nhau có thể được đặt theo các góc độ khác nhau hoặc phối cảnh tương tự và bạn có thể chuyển đổi các góc nhìn trong mỗi cửa sổ độc lập với các cửa sổ khác.

Bạn cũng có thể đặt đầu vào cho mỗi cửa sổ. Điều này rất hữu ích nếu mỗi cửa sổ làm việc trên các dữ liệu khác nhau (ví dụ, mỗi cửa sổ có thể được kết nối với một máy chủ khác hoặc có thể hiển thị dữ liệu từ các cơ sở dữ liệu khác nhau mà tất cả đều có cùng lược đồ nhưng dữ liệu khác nhau).

Có thể bạn đang sử dụng các cửa sổ để bạn có thể thấy các góc nhìn khác nhau của cùng một dữ liệu trên các màn hình khác nhau. Trong trường hợp đó bạn không cần lập trình tạo các cửa sổ nhưng chỉ cần thêm hành động được cung cấp bởi bàn làm việc. Điều này có thể được thực hiện bằng cách thay đổi lớp ActionBarAdvisor của bạn:

thêm vào tờ khai lĩnh vực:

private IWorkbenchAction newWindowAction; 

thêm vào mã nơi bạn thực hiện các tác vụ (thường là một phương pháp gọi là makeActions):

newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window); 
    register(newWindowAction); 

thêm vào mã nơi bạn tạo các menu:

menu.add(newWindowAction); 

nơi menu là typica lly menu Window. Nếu bạn không có một menu Window đã có trong ứng dụng của bạn và muốn tạo ra một, dòng sau sẽ làm việc:

MenuManager menu = new MenuManager(
     "&Window", 
     IWorkbenchActionConstants.M_WINDOW); 

này sẽ cung cấp cho bạn một mục menu mà sẽ tạo ra một cửa sổ mới trong cùng một cách như Window-> New Window menu trong IDE Eclipse.

Nếu, mặt khác, bạn muốn mỗi cửa sổ hiển thị dữ liệu khác nhau thì bạn sẽ cần mở các cửa sổ mới theo chương trình. Điều này cho phép bạn thiết lập đầu vào khác nhau cho mỗi cửa sổ. Bạn sẽ cần một dòng mã như sau:

IWorkbenchPage newPage = window.openPage(inputObject); 

nơi inputObject chứa thông tin xác định dữ liệu được hiển thị trong cửa sổ. Nếu bạn muốn thiết lập phối cảnh ban đầu, điều này có thể được thực hiện bằng cách gọi setPerspective trên trang.

Bạn sẽ muốn đặt tiêu đề trong mỗi cửa sổ:

newPage.getWorkbenchWindow().getShell().setText(windowTitle); 

nơi windowTitle là một chuỗi mô tả đầu vào cửa sổ.

Bạn có thể lấy đầu vào cho một cửa sổ như sau:

window.getActivePage().getInput() 

Sau đó bạn có thể dùng skill này cho bất cứ điều gì lớp học mà bạn đang sử dụng như là đầu vào cửa sổ của bạn.

+0

bắt đầu tuyệt vời trên stackoverflow, cảm ơn! – tomash

+0

Đây là RCP3, phải không? – Weltraumschaf

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