Eclipse Plugin: Create a simple Wizard (1)

Phần 1: Sơ lược về Eclipse Plugin Architecture

Đã qua rồi cái thời dùng IDE theo kiểu cho gì ăn nấy. Nhớ lại cái thời Q tui đây dùng Visual Studio để viết mấy ứng dụng bằng VC++, nhiều khi bực mình về một số tính năng của IDE này nhưng cũng đành "cắn răng" mà chịu. Hiện tại thì Q tui dùng Eclipse IDE và đang tận hưởng cảm giác "tự do đến bất tận" do IDE này cung cấp. "Tự do" ở đây là thế nào? Bạn có thể thay đổi các tính năng default của Eclipse mà bạn không vừa ý (việc này đòi hòi trình độ cao đấy) hoặc thêm các tính năng chưa có tùy theo yêu cầu của bạn (vừa sức đây :). Đó chính là phát triển các Eclipse Plugin.


Trong bài viết này tui xin trình bày cách viết một Wizard đơn giản trong Eclipse.
Wizard này được thi hành từ menu File\New\Others... hoặc bằng một cú click vào một button trên toolbar.

Mục lục
Phần 1: Sơ lược về Eclipse Plugin Architecture
Phần 2: Cấu trúc của một Wizard
Phần 3: Tạo một wizard đơn giản

-- oOo --


Phần 1: Sơ lược về Eclipse Plugin Architecture
Như sơ đồ bên dưới, Eclipse bao gồm một kernel nhỏ gọi là plugin-loader và hàng trăm plugins xung quanh. Một plugin có thể cung cấp service hoặc sử dụng service của các plugin khác. Hầu hết mọi thứ trong Eclipse là plug-in.


(Nguồn: Eclipse - Building Commercial-Quality Plug-ins)

Chú ý quan trọng: Cho đến version 3.2 thì Eclipse Plugin được load khi cần thiết chứ không được unload. Điều này gây ra các vấn đề về thiếu bộ nhớ nếu user load quá nhiều plugin và các plugin này không được giải phóng khỏi bộ nhớ khi không cần thiết. Hi vọng trong các version mới, Eclipse sẽ cung cấp khả năng unload plugin (xem thêm: http://www.eclipse.org/equinox)

Các plugin được install trong thư mục ECLIPSE_HOME\plugins dưới dạng thư mục hoặc dưới dạng file .jar.
Cấu trúc thư mục cơ bản của 1 plugin như sau:
- 1 file .jar lưu trữ các file Java class
- 1 file plugin.xml: mô tả các extension và extension points
- META-INF/MANIFEST.MF: mô tả các thông tin về plugin id, version, dependencies (tức là plugin này cần có các plugin nào thì mới chạy được).


(source:Eclipse Rich Client Platform: Designing, Coding, and Packaging Java™ Applications)

Eclipse cung cấp một môi trường để phát triển plugin (PDE - Plugin Development Environment). PDE làm đơn giản hóa quá trình khai báo trong các file plugin.xml và manifest. Người phát triển sẽ tập trung hơn trong việc phát triển Java code để thực thi các tính năng của plugin.
Bên lề: nếu Eclipse của bạn chưa cài đặt PDE, bạn hãy vào http://www.eclipse.org/pde/ hoặc dùng tính năng Help\Update.

Những chi tiết phức tạp hơn về plugin xin được đề cập đến sau. Còn bây giờ, để "tạo cảm giác" về plugin, bạn hãy bắt tay vào xây dựng một plugin đầu tiên.

Hiện có (3) phản hồi: