2008-11-10 19 views
9

Trong Eclipse RCP cách làm việc, tôi nên giữ đối tượng mô hình ở đâu? Và khi chúng được tải hoặc thay đổi, chúng nên nói chuyện với các quan điểm như thế nào?Eclipse RCP: Tôi nên giữ các đối tượng mô hình của mình ở đâu và làm thế nào để họ nói chuyện với các quan điểm?

Tôi đang cố gắng chuyển ứng dụng hiện có của mình sang RCP Eclipse. Nó có thể được xem như một ứng dụng giống như IDE: Tôi mở một tệp, chứa các liên kết đến các tệp nguồn. Các tệp nguồn được hiển thị trong chế độ xem dạng cây. Tôi có thể chỉnh sửa nguồn, và xây dựng các nguồn vào một số đầu ra ...

Ví dụ, khi tôi xử lý lệnh Mở, tôi sẽ tạo đối tượng mô hình để quan điểm của tôi có thể nhìn thấy chúng ở đâu? Tôi muốn tránh việc sử dụng các lớp học quản lý singleton, nhưng đó có thể là cách đơn giản nhất.

Mã thú vị Tôi tìm thấy việc duyệt mã nguồn của JDT là JavaCore, JavaModel, JavaModelManager. và JavaProject.


IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects(); 

public static IJavaProject create(IProject project) { 
    if (project == null) { 
     return null; 
    } 
    JavaModel javaModel = JavaModelManager.getJavaModelManager().getJavaModel(); 
    return javaModel.getJavaProject(project); 
} 

liên quan:

Trả lời

5

Tôi tin rằng điều này là đạt được tốt nhất thông qua Người nghe.

Dữ liệu (mô hình) của bạn nằm trong gói riêng tư và chỉ giao diện của những dữ liệu đó được hiển thị trong gói công khai.

alt text

Bạn sẽ tìm thấy trong wiki section này nguyên tắc, nhưng cũng concrete examples here.


Về mô hình, người phê duyệt giống như osgi sẽ sử dụng plugin máy chủ làm đối tượng có thể truy cập. tức là:

MyPlugin.getDefault().getModel() 

Điều này sẽ cho phép bạn thiết lập/bỏ mô hình cùng với vòng đời của plugin.

Nếu mô hình nằm trong một plugin, nó có thể xác định các điểm mở rộng cho người nghe. Chế độ xem có thể mở rộng các điểm mở rộng này sau đó được tự động đăng ký trong khi tải Plugin mô hình. Các khung nhìn có thể truy vấn mô hình cho các thông tin cần thiết ngay sau khi chúng nhận được thông báo đầu tiên từ mô hình.

Một ví dụ điển hình về ràng buộc dữ liệu có thể được tìm thấy trong this article.

+3

Tôi hiểu MVC.Tôi đã tự hỏi nếu có một thực tế phổ biến trong việc sắp xếp các đối tượng mô hình thay vì tung ra quản lý của riêng tôi bằng cách sử dụng Singleton. –

2

Chúng tôi có xu hướng sử dụng IEditorPart s để lưu giữ bản sao của mô hình (bắt nguồn từ IEditorInput).

Nếu chế độ xem cần biết về mô hình, thì hãy sử dụng khung công tác ISelection và tập trung để di chuyển mô hình xung quanh từ trình chỉnh sửa sang chế độ xem.