Chương 1: Tổng quan về hệ thống
1. Giới thiệu về framework Jtrac
1.1 Bối cảnh ra đời của Jtrac
Jtrac là một vấn đề chung đang theo dõi một web ứng dụng mà có thể dễ dàng điều chỉnh
bởi việc thêm vào một trường và drop-down. Những nét đặc trưng bao gồm việc chỉnh
sữa lưu lượng công việc. Những quyền cho phép vị trí trường, sự hợp nhất thư điện tử.
Đính tệp tin và thấy chi tiết lịch sử đã sử dụng.
Jtrac thì được tạo ra sau khi tác giả cảm thấy rằng ông ta có thể viết một số giải pháp tốt
hơn cho công cụ theo dõi sự thiếu xót trong thương mại mà ông ta đang sử dụng. Jtrac
bắt đầu phát triển vào năm 2004. Jtrac là một ý kiến cho quá trình theo dõi vấn đề hoặc
theo dõi lỗi. Nhưng nó được thiết kế chung và bạn có thể theo dõi sự điều chỉnh các
trường và hầu hết bất cứ thứ gì bạn cần.
Jtrac phát triển được sử dụng lưu trữ tại https://jtrac.dev.java.net nhưng chuyển tới
SourceForce gần năm 2006. Phiên bản chế độ làm việc trước được dựa trên nguồn MVC,
JDBC và MS Access nhưng không duy trì trên nguồn nào. Jtrac 2.0 sử dụng đặc điểm
của java 5.0 và hoàn thành lập trình lại là sử dụng Hibernate cho sự liên tục và Acegi
Security framework for spring. Lớp trình bày cho phiên bản 2.0 phần lớn sử dụng Spring
Webflow. Nhưng gần năm 2007 Jtrac chuyển qua sử dụng framework Apache Wicket.
Jtrac thì rất dễ cài đặt và duy nhất sử dụng trong môi trường java 5.0. Bạn có thể cài lên
và chạy nhanh chóng bởi vì Jtrac đến với các dịch vụ web ứng dụng kết lại với một dịch
vụ nhỏ gọi Jetty và một cơ sở dữ liệu nhúng gọi HSQLDB. Bạn cũng có thể chọn để thả
các tệp tin War vào máy chủ ứng dụng cho sự lựa chọn của bạn và bắt đầu sử dụng Jtrac
ngay.
Hiện không có cơ sở dữ liệu thay đổi giữa phiên bản 2.0 và 2.1.0. Hướng dẫn về việc làm
thế nào để nâng cấp sẵn có trong các “Upgrade” phần tài liệu này. Nhiều phần của dịch
vụ ứng dụng web đã được nâng cấp từ phiên bản 6.0.2 lên 6.1.1 nhưng nó không bắt buộc
bạn phải nâng cấp.
96 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2806 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ả tìm kiếm
trên màn hình.
SVTH: Nguyễn Phước Sáng Trang 39
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Tải kết quả tìm kiếm như một bản excel.
Là một trong những dữ liệu trong bản tính. Nó rất dễ dàng phân tích dữ liệu và làm việc
như tạo pivot-table và biểu đồ. Nhiều người sử dụng đã xuất ra tệp tin excel điều chỉnh
tính năng để thực hiện các yêu cầu báo cáo.
3.12. Điều chỉnh đơn giản
Hầu hết người sử dụng dùng trên màn hình Jtrac: Dashboard, Create, View, Search and
Results. Danh mục chính được thiết kế đơn giản và dễ sử dụng. Chụp màn hình của kết
quả tìm kiếm được hiển thị bên dưới màn hình.
SVTH: Nguyễn Phước Sáng Trang 40
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Kết quả tìm kiếm trên màn hình.
3.13 Thông qua tham chiếu của các mục
Bạn có thể thiết lập mối quan hệ có hướng giữa các mục . Chẳng hạn bạn có thể đánh dấu
mục như là một bản sao của mục khác. Bạn có thể dễ dàng điều khiển mối liên kết giữa
các mục ( và mặt sau) khi việc nhìn một mục đặc biệt nào.
Tùy chọn để thêm vào những tiết mục liên quan khi nhìn vào một mục sau khi nó tạo ra.
Điều chỉnh được thiết kế vì vậy mà bạn phải tùy chọn thực hiện tìm kiếm trước khi chọn
một mục có liên quan.
SVTH: Nguyễn Phước Sáng Trang 41
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
3.14 Truy cập chỉ được đọc
Khi bạn cài đặt dự án bạn có thể định nghĩa liệu có phải dự án này có thể nhìn bởi những
người sử dụng có đăng nhập vào.
Chỉ rõ nếu sự truy cập dấu tên chỉ đọc là cho phép per – space
3.15. Sự tích hợp thư điện tử
Mọi trạng thái thay đổi cho một mục sẽ bắt thư điện tử thông báo theo mặc định. Bạn có
thể chọn thêm nhiều người sử dụng vào “danh sách thông báo” lúc đó việc tạo ra mục
mới hay cập nhập lại quá trình trước cho mục cũ.
Thêm nhiều người sử dụng vào danh sách thông báo sau khi tạo hay nâng cấp một mục
SVTH: Nguyễn Phước Sáng Trang 42
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Nội dung của thư điện tử thường định đạng dạng theo kiểu HTML và được đặt ở ngoài
trong cách giống như những cái nhìn màn hình trong Jtrac khi nhìn vào mục nào đó.
Những người sử dụng không cần phải quen với cách khác hay định dạng có thể dễ dàng
hơn như là sơ đồ văn bản.
Cho ví dụ một địa chỉ mail gởi bởi JTrac.
Người quản trị chính có thể thiết lập máy chủ theo SMTP/ Thư điện tử mà Jtrac cần phải
sử dụng trong những trang “ thiết lập quản lý”. Trong trang này có thể truy cập vào danh
sách tùy chỉnh. Hơn nữa Jtrac có thể sử lý được máy chủ về thư điện tử mà nó yêu cầu
quyền sử dụng hay thậm chí có một kết nối an toàn qua HTTPS.
SVTH: Nguyễn Phước Sáng Trang 43
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 44
Đặng Minh Tuấn
3.16. Hỗ trợ đa ngôn ngữ
Jtrac hỗ trợ đầy đủ cho quốc tế vì vậy bạn có thể thay đổi giao diện cho người sử dụng tức
thời bởi việc soạn văn bản cho các bạn. Thêm một bản dịch là rất dễ dàng và không yêu
cầu bất kỳ tài chuyên môn về khả năng phát triển Java. Trong thấy phần này hướng dẫn
người phát triển nhiều chi tiết hơn thì xin đóng góp bản dịch cho dự án JTrac.
Jtrac đã có sẵn các bản dịch xin hãy theo dõi dưới đây.
• Greek - el
• Spanish - es
• Spanish (Argentina) - es_AR
• Spanish (Mexico) - es_MX
• French - fr
• Hungarian - hu
• Italian - it
• Japanese - ja
• Dutch - nl
• Polish - pl
• Portugese (Brazil) - pt_BR
• Russian - ru
• Chinese (China) - zh_CN
• Chinese (Taiwan) - zh_TW
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 45
Đặng Minh Tuấn
3.17. Sự chứng thực hỗ trợ LDAP/CAS
Jtrac có hỗ trợ gắn liền với sự ủy nhiệm quyền người sử dụng chống lại một LDAP hay
Active Directory server. JTrac cũng hỗ trợ cho phù hợp với sự cài đặt một CAS ( Central
Authentication services ). Hướng dẫn cài đặt này có nhiều chi tiết về việc cấu hình làm
sao để sử dụng CAS.
4. Một số framework liên quan tới dự án.
4.1. Dự án phụ thuộc.
• Biên dịch: Sau đây là một danh sách các phụ thuộc biên dịch cho dự án Jtrac.
Những phụ thuộc là bắt buộc để chạy các ứng dụng:
GroupId ArtifactId Version Classifier Type Optional
Antlr Antlr 2.7.6 - jar
Asm Asm 1.5.3 - jar
Cglib Cglib 2.1_3 - jar
commons-codec commons-codec 1.3 - jar
commons-
collections
commons-collections 3.1 - jar
commons-lang commons-lang 2.1 - jar
commons-pool commons-pool 1.3 - jar
dom4j dom4j 1.6.1 - jar
javax.activation Activation 1.1 - jar
Jfree Jcommon 1.0.0 - jar
org.apache.lucene lucene-core 2.0.0 - jar
org.slf4j slf4j-api 1.4.2 - jar
Oro Oro 2.0.8 - jar
• Lần chạy: Sau đây là danh sách các phụ thuộc lần chạy cho dự án Jtrac. Những phụ
thuộc là bắt buộc để chạy các ứng dụng:
GroupId ArtifactId Version Classifier Type Optional
cas Casclient 2.1.1 - jar
geronimo-spec geronimo-spec-jta 1.0.1B-rc4 - jar
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 46
Đặng Minh Tuấn
hsqldb Hsqldb 1.8.0.1 - jar
jaxen Jaxen 1.1-beta-9 - jar
net.sf.ehcache Ehcache 1.2.4 - jar
org.beanshell Bsh 2.0b4 - jar
org.slf4j jcl104-over-slf4j 1.4.2 - jar
org.slf4j slf4j-log4j12 1.4.2 - jar
• Thử nghiệm: Sau đây là một danh sách các phụ thuộc biên dịch cho dự án Jtrac.
Những phụ thuộc là bắt buộc để chạy thử nghiệm các ứng dụng:
GroupId ArtifactId Version Classifier Type Optional
org.openqa.selenium.client-
drivers
selenium-
java-client-
driver
0.9.0 - jar
org.openqa.selenium.server selenium-
server
0.9.0 - jar
org.springframework spring-test 2.5.1 - jar
4.2. Dự án phụ thuộc bắt cầu
Sau đây là một danh sách những phần phụ thuộc của dự án Jtrac. Phần phụ thuộc bắt cầu
là các phụ thuộc của dự án.
• Biên dịch: Sau đây là một danh sách các phụ thuộc biên dịch cho dự án Jtrac.
Những phụ thuộc là bắt buộc để chạy các ứng dụng:
GroupId ArtifactId Version Classifier Type Optional
antlr Antlr 2.7.6 - jar
asm Asm 1.5.3 - jar
cglib Cglib 2.1_3 - jar
commons-codec commons-codec 1.3 - jar
commons-collections commons-collections 3.1 - jar
commons-lang commons-lang 2.1 - jar
commons-pool commons-pool 1.3 - jar
dom4j dom4j 1.6.1 - jar
javax.activation Activation 1.1 - jar
jfree Jcommon 1.0.0 - jar
org.apache.lucene lucene-core 2.0.0 - jar
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 47
Đặng Minh Tuấn
org.slf4j slf4j-api 1.4.2 - jar
oro Oro 2.0.8 - jar
• Lần chạy: Sau đây là danh sách các phụ thuộc lần chạy cho dự án Jtrac. Những phụ
thuộc là bắt buộc để chạy các ứng dụng:
GroupId ArtifactId Version Classifier Type Optional
log4j log4j 1.2.13 - jar
• Thử nghiệm: Sau đây là một danh sách các phụ thuộc biên dịch cho dự án Jtrac.
Những phụ thuộc là bắt buộc để chạy thử nghiệm các ứng dụng:
GroupId ArtifactId Version Classifier Type Optional
junit Junit 3.8.1 - jar
• Nhà cung cấp: Sau đây là danh sách các phụ thuộc được nhà cung dự án Jtrac.
Những phụ thuộc là bắt buộc để chạy các ứng dụng nhưng được cung cấp theo
mặc định khi sử dụng thư viện.
GroupId ArtifactId Version Classifier Type Optional
javax.servlet servlet-api 2.4 - jar
4.3. Danh sách sự phụ thuộc
• Jtrac: Là một nguồn tài nguyên mở và dễ dàng tùy chỉnh vấn đề theo dõi ứng
dụng web viết trên nền java.
• Jaxen: Jaxen là một nguồn tài nguyên mở của các thư viện XPATH được viết trên
nền java. Nó có thể liên kết nhiều đối tượng của mô hình khác nhau bao gồm
DOM, XOM, dom4j và JDOM. Là nó có thể viết để thích ứng với cây XML như
biện soạn mã byte javahay java beans như XML, vì bạn có thể truy vấn cây này với
XPATH.
• Acegi Security System for Spring: Hệ thống bảo mật cho framework Spring.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 48
Đặng Minh Tuấn
• Lang : Common.lang là một lớp tiện ích cho các lớp được kế thừa “java.lang”,
hoặc được coi là một tiêu chuẩn để chúng tồn tại trong java.lang .
• Codec: Mã chứa trong một gói đơn giản trong mã hóa và giải mã bởi định dạng
các biến như base64 và hexaldecimal, Ngoài việc giải mã được mở rộng và mã
hóa, gói codec cũng được duy trì một lựa chọn của tiện ích giải mã.
• Unnamed - jfree:jfreechart:jar:1.0.0: JFreeChart là một lớp thư viện viết bằng
java cho việc tạo biểu đồ. Tiện ích trong Java2D API , hiện thời nó hỗ trợ thanh
biểu đồ, biểu đồ hình tròn, biểu đồ dòng. Vẽ XY và thời gian vẽ.
• Unnamed - jfree:jcommon:jar:1.0.0: Jcommon đươc dùng miễn phí là mục đích
chung sử dụng các lớp thư viện tại các dự án trên trang www.jfree.org bao gồm
JFreeChart và JFreeReport.
• Junit: JUnit được viết trong khuôn khổ để kiểm tra framework hồi quy bởi Erich
Gamma và Kent Beck. Nó được sử dụng cho người phát triển thực thi chạy thử
nghiệm trên Java.
• Hibernate: Quan hệ truy vấn dữ liệu vững bền trong Java.
• dom4j: dom4j: là một framework XML linh động cho Java.
• AntLR: Tham khảo thêm tại địa chỉ:
• Cglib:Tham khảo thêm tại địa chỉ:
• Asm :Tham khảo thêm tại địa chỉ:
• Unnamed - geronimo-spec:geronimo-spec-jta:jar:1.0.1B-rc4
Hỗ trợ tối đa của cho DOM, SAX và JAXP.
• JavaMail API: JavaMail API cung cấp một nền độc lập và giao thức độc lập
framework để xây dựng mail và ứng dụng thư điện tử.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 49
Đặng Minh Tuấn
• JavaBeans Activation Framework (JAF): JavaBeans Active FrameWork là tiêu
chuẩn mở rộng của nền java mà để cho bạn tận dụng những tiêu chuẩn của dịch vụ
tới: xác nhận kiểu của một phần dữ liệu tùy ý, đóng gói sự truy cập tới nó,tìm ra hệ
thống có giá trị trên nó và khởi tạo thích hợp việc thực hiện cho hệ thống.
• Spring Framework: Spring Framework
Tham khảo thêm trên địa chỉ:
• Spring Framework: Web MVC
Spring Framework: Web MVC
Tham khảo thêm trên địa chỉ:
• Spring Framework: Test
Spring Framework: Test
Tham khảo thêm trên địa chỉ:
• spring-modules-lucene
Tham khảo thêm trên địa chỉ: https://springmodules.dev.java.net/
• Lucene Java
Apache Lucene Java
Tham khảo thêm trên địa chỉ:
• Wicket:Wicket là một framework ứng dụng web java.phân mối quan tâm và dễ
dàng phát triển đến một cấp độ hoàn toàn mới. Trang Wicket có thể đã được bắt
trước. Xem trước và sau bằng cách sử dụng tiêu chuẩn của công cụ thiết kế HTML.
Nội dung động và xử lý tất cả các hình thức sử lý mã ở Java bằng cách sử dụng lớp
đầu tiên mô hình thành phần bởi dữ liệu bean POJO mà dễ dàng sử dụng các công
nghệ mới.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 50
Đặng Minh Tuấn
• SLF4J API Module:The slf4j API
Tham khảo thêm trên địa chỉ:
• Wicket Extensions: Wicket Extensions là một thư viện lớn trong framework
Wicket.
• SLF4J LOG4J-12 Binding: Kết hợp lại slf4j log4j-12 .
• Log4j
Tham khảo thêm tại địa chỉ:
• JCL Implemented Over SLF4J
Tham khảo thêm tại địa chỉ:
• Unnamed - poi:poi:jar:2.5.1-final-20040804
• JavaSVN: Thư viện chỉ có trong phiên bản phụ.
• Driver database sql 2005: Sử dụng bộ điều khiển JDBC để kết nối SQL 2005.
Thư viện của bộ điều khiển là sqljdbc4.jar.
• Unnamed - javax.servlet:servlet-api:jar:2.4
Commons DBCP: Kết nối cơ cở dữ liệu tới khu vực chung.
Commons Pool: Khu vực lớp đối tượng chung.
• Ehcache: Ehcache được sử dụng rộng rãi trong Java và được phân bố trong bộ nhớ
đệm.
• Selenium Java Client Driver
Tham khảo thêm tại địa chỉ:
• Selenium Server
Tham khảo thêm tại địa chỉ:
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 51
Đặng Minh Tuấn
Chương 3. PHÁT TRIỂN ỨNG DỤNG
Yêu cầu:
Do nhu cầu quản lý dự án trong nước ngày càng tăng nên đòi hỏi phải có một phần mềm
quản trị chuyên nghiệp để quản lý các mô hình dự án lớn có phân công và cấp quyền rõ
ràng. Về vấn đề bản quyền kỹ thuật sử dụng một hệ thống mở như phần mềm quản lý dự
án Jtrac giúp ta dễ dàng hơn trong việc tiếp cận và phát triển các ứng dụng từ nguồn có
sẵn. Hệ thống Jrac quản trị các dự án khá tốt và sẽ mang lại nhiều tiện ích cho những
người sử dụng.
Yêu cầu phải hoạt động được trên hệ điều hành Windows hiện đang được sử dụng rộng
rãi trong nước , nên việc nâng cấp hệ thống cho phù hợp với nền tảng đó hoàn toàn phù
hợp với xu thế hiện nay. Ngoài ra do sử dụng các framework mã nguồn mở chạy trên nền
Java có thể mở rộng được qua các hệ điều hành khác như linux, MacOX.
Phạm vi bài toán
- Xây dựng mã nguồn Jtrac trên IDE.
- Địa phương hóa hệ thống jtrac.
- Nâng cấp cơ sở dữ liệu lên SQL Server 2005.
- Thiết kế giao diện web đồ họa mới cho hệ thống.
- Phát triển hệ thống con.
- Mô tả classdiagram cho hệ thống.
- Thiết lập thêm quyền tạo report cho người quản trị.
- Xây dựng hệ thống tùy biến để phân tích cấu trúc report của dự án.
- Nhúng framework tạo report JfreeChart vào hệ thống Jtrac.
- Phát triển hệ thống tùy chọn trong phần tạo report.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
- Mở rộng thêm các kiểu report cho hệ thống như: pieChart3D, XYBarChart3D,
LineChart….
- Tạo report động theo cơ sở dữ liệu có sẵn.
- Deloy hệ thống hoàn thành có thể chạy độc lập trên web server như tomcat, jetty,
glassfish.
1. Hệ thống phát triển các chức năng mở rộng.
1.1. Địa phương hóa hệ thống tương thích với người dùng.
SVTH: Nguyễn Phước Sáng Trang 52
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 53
Đặng Minh Tuấn
Hình minh họa sau khi đã việt hóa.
Jtrac là dự án hỗ trợ đa ngôn ngữ và thực hiện chuyển đổi ngôn ngữ rất dễ dàng. Những
ngôn ngữ hỗ trợ trong phiên bản 2.1.0 được trình bày dưới đây.
Ngôn ngữ Quốc gia ID
Arabic Saudi Arabia ar_SA
Chinese (Simplified) China zh_CN
Chinese (Traditional) Taiwan zh_TW
Dutch Netherlands nl_NL
English Australia en_AU
English Canada en_CA
English United Kingdom en_GB
English United States en_US
French Canada fr_CA
French France fr_FR
German Germany de_DE
Hebrew Israel iw_IL
Hindi India hi_IN
Italian Italy it_IT
Japanese Japan ja_JP
Korean South Korea ko_KR
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 54
Đặng Minh Tuấn
Portuguese Brazil pt_BR
Spanish Spain es_ES
Swedish Sweden sv_SE
Thai (Western digits) Thailand th_TH
Thai (Thai digits) Thailand th_TH_TH
Các ngôn ngữ hỗ trợ được hỗ trợ thêm cho hệ thống Jtrac chúng ta có thể thêm một ngôn
ngữ mới dễ dàng và danh sách các ngôn ngữ hỗ trợ thêm biểu diễn dưới đây.
Ngôn ngữ Quốc gia ID
Albanian Albania sq_AL
Arabic Algeria ar_DZ
Arabic Bahrain ar_BH
Arabic Egypt ar_EG
Arabic Iraq ar_IQ
Arabic Jordan ar_JO
Arabic Kuwait ar_KW
Arabic Lebanon ar_LB
Arabic Libya ar_LY
Arabic Morocco ar_MA
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 55
Đặng Minh Tuấn
Arabic Oman ar_OM
Arabic Qatar ar_QA
Arabic Sudan ar_SD
Arabic Syria ar_SY
Arabic Tunisia ar_TN
Arabic United Arab Emirates ar_AE
Arabic Yemen ar_YE
Belorussian Belorussia be_BY
Bulgarian Bulgaria bg_BG
Catalan Spain ca_ES
Chinese Hong Kong zh_HK
Croatian Croatia hr_HR
Czech Czech Republic cs_CZ
Danish Denmark da_DK
Dutch Belgium nl_BE
English India en_IN
English Ireland en_IE
English New Zealand en_NZ
English South Africa en_ZA
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 56
Đặng Minh Tuấn
Estonian Estonia et_EE
Finnish Finland fi_FI
French Belgium fr_BE
French Luxembourg fr_LU
French Switzerland fr_CH
German Austria de_AT
German Luxembourg de_LU
German Switzerland de_CH
Greek Greece el_GR
Hungarian Hungary hu_HU
Icelandic Iceland is_IS
Italian Switzerland it_CH
Latvian Latvia lv_LV
Lithuanian Lithuania lt_LT
Macedonian Macedonia mk_MK
Norwegian (Bokmål) Norway no_NO
Norwegian (Nynorsk) Norway no_NO_NY
Polish Poland pl_PL
Portuguese Portugal pt_PT
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 57
Đặng Minh Tuấn
Romanian Romania ro_RO
Russian Russia ru_RU
Slovak Slovakia sk_SK
Slovenian Slovenia sl_SI
Spanish Argentina es_AR
Spanish Bolivia es_BO
Spanish Chile es_CL
Spanish Colombia es_CO
Spanish Costa Rica es_CR
Spanish Dominican Republic es_DO
Spanish Ecuador es_EC
Spanish El Salvador es_SV
Spanish Guatemala es_GT
Spanish Honduras es_HN
Spanish Mexico es_MX
Spanish Nicaragua es_NI
Spanish Panama es_PA
Spanish Paraguay es_PY
Spanish Peru es_PE
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Spanish Puerto Rico es_PR
Spanish Uruguay es_UY
Spanish Venezuela es_VE
Turkish Turkey tr_TR
Ukrainian Ukraine uk_UA
Vietnamese Vietnam vi_VN
Vào đường dẫn thư mục …~\ jtrac\target\classes của dự án ta tạo ra một tệp tin
messages_vi_VN.properties. Ta chuyển các thư tín trong tệp tin này sang tiếng việt thì
chúng ta đã việt hóa được cho hệ thống và bắt đầu sử dụng theo tiếng việt.
Tiến hành chuyển đổi sang tiếng việt cho trang cho trang chủ như sau:
Trong gói info.jtrac tìm tệp tin: JtracImpl.java
Chuyển mã như sau: private String defaultLocale = "eng"; --> private String
defaultLocale = "vi_VN";
Trong gói info.jtrac.wicket tìm tệp tin: JtracApplication.java
Chuyển mã như sau:
public Class getHomePage() {
Session.get().setLocale(StringUtils.parseLocaleString(jtrac.getDefaultLocale()));
return DashboardPage.class;
}
SVTH: Nguyễn Phước Sáng Trang 58
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 59
Đặng Minh Tuấn
Lưu ý rằng Jtrac cần phải khởi động lại khi có sự thay đổi tập tin để lấy lại được hiệu ứng.
Tuy nhiên, Sự chuyển đổi đổi ngôn ngữ cho người sử dụng cần phải thực hiện dễ dàng và
vào bất kỳ thời gian nào từ điểm “Edit Your Profile” trên màn ảnh tùy chọn và lấy được
hiệu ứng khi người dùng lưu lại.
1.2. Nâng cấp hệ thống cơ sở dữ liệu
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Hình minh họa cơ sở dữ liệu.
1.2.1. Xây dựng cơ sở dữ liệu trên SQL Server 2005.
SVTH: Nguyễn Phước Sáng Trang 60
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Cơ sở dữ liệu mặc định mà Jtrac sử dụng là HSQLDB và đoạn mã lệnh của HSQLDB
được trình bày trong tệp tin “jtrac.script” trong thư mục “DB” ta có thể vào mục trên để
xem và tham khảo thêm.
Thực hiện tạo cơ sở dữ liệu SQL Server 2005 cho dự án Jtrac đó là chuyển đổi kiểu dữ
liệu của HSQLDB giống với cấu trúc của SQL Server 2005 và thực hiện chuyển đổi các
kiểu như sau:
• BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT
NULL PRIMARY KEY Æ BIGINT IDENTITY(1,1).
• VARCHAR(255) ÆNVARCHAR(255).
• INTEGER Æ INT.
• DOUBLE Æ MONEY.
• TIMESTAMP Æ DATETIME.
• LONGVARCHAR ÆNTEXT.
• BOOLEAN Æ BIT.
Tiếp theo thực hiện chỉnh sửa cấu trúc sao cho phù hợp với tập lệnh của SQL Server
2005. Sau khi chỉnh sửa ta được một tệp lệnh cho SQL Server 2005 như sau:
SVTH: Nguyễn Phước Sáng Trang 61
Đặng Minh Tuấn
CREATE TABLE ATTACHMENTS(ID BIGINT IDENTITY(1,1) NOT NULL
PRIMARY KEY, PREVIOUS_ID BIGINT, FILE_NAME NVARCHAR(255),
FILE_PREFIX BIGINT,ITEM_ID BIGINT,CONSTRAINT FKD3F3CBB0761CC46C
FOREIGN KEY(PREVIOUS_ID) REFERENCES ATTACHMENTS(ID))
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
CREATE TABLE CONFIG(PARAM NVARCHAR (255) NOT NULL PRIMARY
KEY, VALUE NVARCHAR (255))
CREATE TABLE HISTORY(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY, VERSION INT NOT NULL, TYPE INT,ITEM_ID BIGINT NOT NULL,
ACTUAL_EFFORT MONEY, ATTACHMENT_ID BIGINT, COMMENT NTEXT,
TIME_STAMP DATETIME,LOGGED_BY BIGINT NOT NULL,ASSIGNED_TO
BIGINT,SUMMARY NVARCHAR(255),DETAIL NTEXT,STATUS INT ,SEVERITY
INT,PRIORITY INT,CUS_DBL_01 MONEY,CUS_DBL_02 MONEY,CUS_DBL_03
MONEY, CUS_INT_01 INT, CUS_INT_02 INT, CUS_INT_03 INT, CUS_INT_04
INT, CUS_INT_05 INT, CUS_INT_06 INT, CUS_INT_07 INT, CUS_INT_08 INT,
CUS_INT_09 INT,CUS_INT_10 INT,CUS_STR_01 NVARCHAR(255),CUS_STR_02
NVARCHAR(255), CUS_STR_03 NVARCHAR (255), CUS_STR_04
NVARCHAR(255), CUS_STR_05 NVARCHAR(255), CUS_TIM_01 DATETIME,
CUS_TIM_02 DATETIME, CUS_TIM_03 DATETIME, CONSTRAINT
FK373FE494584066C0 FOREIGN KEY(ATTACHMENT_ID) REFERENCES
ATTACHMENTS(ID))
SVTH: Nguyễn Phước Sáng Trang 62
Đặng Minh Tuấn
CREATE TABLE ITEM_ITEMS(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,ITEM_ID BIGINT NOT NULL,RELATED_ITEM_ID BIGINT NOT NULL,TYPE
INT )
CREATE TABLE ITEM_TAGS(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,TAG_ID BIGINT NOT NULL,TYPE INT ,ITEM_ID BIGINT)
CREATE TABLE ITEM_USERS(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,USER_ID BIGINT NOT NULL,TYPE INT ,ITEM_ID BIGINT)
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
CREATE TABLE ITEMS(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,VERSION INT NOT NULL,TYPE INT ,PARENT_ID BIGINT,SPACE_ID
BIGINT NOT NULL, SEQUENCE_NUM BIGINT, TIME_STAMP DATETIME,
PLANNED_EFFORT MONEY, LOGGED_BY BIGINT NOT NULL,ASSIGNED_TO
BIGINT,SUMMARY NVARCHAR(255),DETAIL NTEXT,STATUS INT ,SEVERITY
INT ,PRIORITY INT ,CUS_DBL_01 MONEY,CUS_DBL_02 MONEY,CUS_DBL_03
MONEY,CUS_INT _01 INT ,CUS_INT_02 INT ,CUS_INT_03 INT ,CUS_INT_04
INT ,CUS_INT_05 INT ,CUS_INT_06 INT ,CUS_INT_07 INT ,CUS_INT_08 INT ,
CUS_INT_09 INT , CUS_INT_10 INT ,CUS_STR_01
NVARCHAR(255),CUS_STR_02 NVARCHAR(255), CUS_STR_03
NVARCHAR(255), CUS_STR_04 NVARCHAR(255) , CUS_STR_05
NVARCHAR(255), CUS_TIM_01 DATETIME, CUS_TIM_02 DATETIME,
CUS_TIM_03 DATETIME, CONSTRAINT FK5FDE7C0B2C23C49 FOREIGN
KEY(PARENT_ID) REFERENCES ITEMS(ID))
SVTH: Nguyễn Phước Sáng Trang 63
Đặng Minh Tuấn
CREATE TABLE METADATA(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,VERSION INT NOT NULL, TYPE INT ,NAME NVARCHAR (50),
DESCRIPTION NTEXT, PARENT_ID BIGINT,XML_STRING NTEXT,
CONSTRAINT FKE52D7B2FD9D39965 FOREIGN KEY(PARENT_ID)
REFERENCES METADATA(ID))
CREATE TABLE SPACE_SEQUENCE(ID BIGINT NOT NULL PRIMARY
KEY,NEXT_SEQ_NUM BIGINT)
CREATE TABLE SPACES(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY KEY,
VERSION INT NOT NULL, TYPE INT ,PREFIX_CODE NVARCHAR(10),NAME
NVARCHAR(50), DESCRIPTION NTEXT, GUEST_ALLOWED BIT,
METADATA_ID BIGINT, CONSTRAINT SYS_CT_55 UNIQUE(PREFIX_CODE),
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
CONSTRAINT FKCA95302D6205CC0 FOREIGN KEY(METADATA_ID)
REFERENCES METADATA(ID))
SVTH: Nguyễn Phước Sáng Trang 64
Đặng Minh Tuấn
CREATE TABLE TAGS(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,TYPE INT ,NAME NVARCHAR(255) NOT NULL, DESCRIPTION
NTEXT,CONSTRAINT SYS_CT_58 UNIQUE(NAME))
CREATE TABLE USER_SPACE_ROLES(ID BIGINT IDENTITY(1,1) NOT NULL
PRIMARY KEY, USER_ID BIGINT, SPACE_ID BIGINT, ROLE_KEY
NVARCHAR(255) NOT NULL,CONSTRAINT FK474D77D02EAA8854 FOREIGN
KEY(SPACE_ID) REFERENCES SPACES(ID))
CREATE TABLE USERS(ID BIGINT IDENTITY(1,1) NOT NULL PRIMARY
KEY,TYPE INT ,PARENT BIGINT,LOGIN_NAME NVARCHAR(50) NOT NULL,
NAME NVARCHAR(50), PASSWORD NVARCHAR(255), EMAIL NVARCHAR
(50), LOCALE NVARCHAR(20), LOCKED BIT,METADATA_ID BIGINT,
CONSTRAINT SYS_CT_62 UNIQUE(LOGIN_NAME), CONSTRAINT
FK6A68E086205CC0 FOREIGN KEY(METADATA_ID) REFERENCES
METADATA(ID),CONSTRAINT FK6A68E08FC0C04DB FOREIGN KEY(PARENT)
REFERENCES USERS(ID))
ALTER TABLE ATTACHMENTS ADD CONSTRAINT FKD3F3CBB0B57E4540
FOREIGN KEY(ITEM_ID) REFERENCES ITEMS(ID)
ALTER TABLE HISTORY ADD CONSTRAINT FK373FE4949F34E6BD FOREIGN
KEY(ASSIGNED_TO) REFERENCES USERS(ID)
ALTER TABLE HISTORY ADD CONSTRAINT FK373FE494CD057065 FOREIGN
KEY(LOGGED_BY) REFERENCES USERS(ID)
ALTER TABLE HISTORY ADD CONSTRAINT FK373FE494B57E4540 FOREIGN
KEY(ITEM_ID) REFERENCES ITEMS(ID)
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
ALTER TABLE ITEM_ITEMS ADD CONSTRAINT FK8B19EB94B57E4540
FOREIGN KEY(ITEM_ID) REFERENCES ITEMS(ID)
SVTH: Nguyễn Phước Sáng Trang 65
Đặng Minh Tuấn
ALTER TABLE ITEM_ITEMS ADD CONSTRAINT FK8B19EB94AF302D2C
FOREIGN KEY(RELATED_ITEM_ID) REFERENCES ITEMS(ID)
ALTER TABLE ITEM_TAGS ADD CONSTRAINT FK806065C5B57E4540 FOREIGN
KEY(ITEM_ID) REFERENCES ITEMS(ID)
ALTER TABLE ITEM_TAGS ADD CONSTRAINT FK806065C5AC3A5E54
FOREIGN KEY(TAG_ID) REFERENCES TAGS(ID)
ALTER TABLE ITEM_USERS ADD CONSTRAINT FK8BC291DCB57E4540
FOREIGN KEY(ITEM_ID) REFERENCES ITEMS(ID)
ALTER TABLE ITEM_USERS ADD CONSTRAINT FK8BC291DC2E9BEA40
FOREIGN KEY(USER_ID) REFERENCES USERS(ID)
ALTER TABLE ITEMS ADD CONSTRAINT FK5FDE7C09F34E6BD FOREIGN
KEY(ASSIGNED_TO) REFERENCES USERS(ID)
ALTER TABLE ITEMS ADD CONSTRAINT FK5FDE7C0CD057065 FOREIGN
KEY(LOGGED_BY) REFERENCES USERS(ID)
ALTER TABLE ITEMS ADD CONSTRAINT FK5FDE7C02EAA8854 FOREIGN
KEY(SPACE_ID) REFERENCES SPACES(ID)
ALTER TABLE SPACE_SEQUENCE ADD CONSTRAINT FK5847EDAB4A0FA7B
FOREIGN KEY(ID) REFERENCES SPACES(ID)
ALTER TABLE USER_SPACE_ROLES ADD CONSTRAINT
FK474D77D02E9BEA40 FOREIGN KEY(USER_ID) REFERENCES USERS(ID)
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Tiếp theo là mở SQL Server 2005 tạo ra một cơ sở dữ liệu mới lấy tên bất kỳ ví dụ”
Jtrac_test” rồi chạy tập lệnh đã chỉnh sửa xong thì ta có được cơ sở dữ liệu cho dự án
Jtrac. Hình sau đây trình bày cơ sở dữ liệu của Jtrac:
Hình trên trình bày cơ sở dữ liệu của Jtrac.
1.2.2 Liên kết với cơ sở dữ liệu mới.
Jtrac sử dụng Hibernate để lấy dữ liệu. Để kết nối tới cơ sở dữ liệu SQL Server 2005 ta
cần một số bộ điều khiển hỗ trợ cho Java ví dụ như JDBC-ODBC Bridge, JAVA-DB,
Microsoft sql server 2005. Ở đây em sử dụng bộ điều khiển Microsoft sql server 2005 và
SQL Server 2005. Vào địa chỉ sau để tải bộ điều khiển Microsoft SQL Server 2005:
SVTH: Nguyễn Phước Sáng Trang 66
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 67
Đặng Minh Tuấn
ng=en
Sau khi tải tệp tin sqljdbc_2.0.1008.2_enu về máy thì thực hiện giải nén tệp tin và chép
tệp sqljdbc4.jar vào thư mục theo đường dẫn ~\target\jtrac\WEB-INF\lib. Khi đã thực
hiện các thao tác trên thì đã sẽ phải khai báo thông tin kết nối trong tập tin jtrac.properties
với nội dung như sau:
database.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
database.url=jdbc:sqlserver://localhost:1433;databaseName=jtrac_test
database.username=demos
database.password=123
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.show_sql=false
Sau khi thực hiện các bước trên thì dự án Jtrac đã chạy cơ sở dữ liệu với SQL Server 2005
. Lưu ý nên sử dụng bộ điều khiển trên để việc kết nối cơ sở dữ liệu được ổn định ít xảy ra
lỗi hơn.
1.3 Phát triển hệ thống con với chức năng báo cáo report
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Sơ đồ mở rộng hệ thống báo cáo.
SVTH: Nguyễn Phước Sáng Trang 68
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Chú thích: những lớp được tô đỏ đậm là những lớp mở rộng của hệ thống báo cáo còn các
lớp còn lại là của hệ thống đã tồn tại sẵn.
Nội dung phần báo cáo mở rộng.
+ FORM
• ReportSpaces
Cơ sở kỹ thuật:
1. ClassDiagram
2. Wicket Webmarkup: File ReportSpaces.html
3. Java Code: File ReportSpaces.java
4. Package: info.jtrac.wicket.reports
Nội dung:
Truy xuất cơ sở dữ liệu lấy lên một danh sách Space. Thông qua form người dùng có thể
chọn Space tương ứng để tạo report. Gọi form ReportFieldCustomize sau khi người dùng
chọn Space.
• ReportFieldCustomize
Cơ sở kỹ thuật:
1. ClassDiagram
SVTH: Nguyễn Phước Sáng Trang 69
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
2. Wicket Webmarkup: File ReportFieldCustomize.html
3. Java Code: File ReportFieldCustomize.java
4. Package: info.jtrac.wicket.reports
Nội dung:
Thông qua Space được truyền vào hiển thị các trường có sẵn. Phân tích cho người sử
dụng kiểu báo cáo có thể tạo. Qua đó người dùng có thể tùy chọn trường cần để xuất báo
cáo.
Chú ý: hiện nay chỉ có hỗ trợ xuất báo cáo theo kiểu biểu đồ.
• ReportChartType
Cơ sở kỹ thuật:
1. ClassDiagram
SVTH: Nguyễn Phước Sáng Trang 70
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
2. Wicket Webmarkup: File ReportChartType.html
SVTH: Nguyễn Phước Sáng Trang 71
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
3. Java Code: File ReportChartType.java
4. Package: info.jtrac.wicket.reports
Nội dung:
Sau khi người dùng chọn trường cần xuất báo cáo form này sẽ hiển thị danh sách các kiểu
biểu đồ cho người dùng tùy chọn.
• XYBarChartPage
Cơ sở kỹ thuật:
1. ClassDiagram
2. Wicket Webmarkup: File XYBarChartPage.html
3. Java Code: File XYBarChartPage.java
4. Package: info.jtrac.wicket.reports
Nội dung:
SVTH: Nguyễn Phước Sáng Trang 72
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 73
Đặng Minh Tuấn
Sử dụng các lớp tiện ích như: ChartImage, DynamicImageMap, MapArea và panel
MappedChart để tạo ra biểu đồ cột. Sử dụng panel ChartOption để tùy chọn và cấu
hình dữ liệu xuất ra biểu đồ cột.
Chú ý: những form báo cáo sau này đều có cấu hình tương tự như form xuất biểu đồ cột
này.
+ Panel
• ChartOption
Cơ sở kỹ thuật:
1. ClassDiagram
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
2. Wicket Webmarkup: File ChartOption.html
3. Java Code: File ChartOption.java
4. Package: info.jtrac.wicket.reports
Nội dung:
Hiển thị form chọn cấu hình cho người dùng tùy chỉnh để xuất dữ liệu động vào báo cáo
kiểu biểu đồ.
SVTH: Nguyễn Phước Sáng Trang 74
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
+ Tiện ích
• ReportUtils
Cơ sở kỹ thuật:
1. ClassDiagram
2. Thừa kế lớp: java.io.Serializable
3. Java Code: File ReportUtils.java
4. Package: info.jtrac.report.util
Nội dung:
SVTH: Nguyễn Phước Sáng Trang 75
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Là lớp tiện ích dùng để chuyển các thông tin như Space, Field mà người dùng đã chọn
qua lại giữa các form. Nó còn chứa hàm tiện ích được sử dụng để phân tích cách tạo kiểu
báo cáo giữa các trường trong Space.
+ Class
• FollowField
Cơ sở kỹ thuật:
1. ClassDiagram
2. Thừa kế lớp: java.io.Serializable
3. Java Code: File FollowField.java
4. Package: info.jtrac.domain
SVTH: Nguyễn Phước Sáng Trang 76
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Nội dung:
Chứa các tùy chọn cho panel ChartOption. Còn bao gồm việc lấy dữ liệu thông qua các
Field tùy chọn tương ứng.
Các Field tùy chọn đã đăng ký là:
- ID: id của từng Item.
- Summary: Tóm tắt của Item.
- DateTime: Ngày tạo Item.
- Perspective: Tạo báo cáo theo tiến độ thực hiện.
- History: Tạo báo cáo theo lịch sử thực hiện của từng Item.
- Assign_To: Gán cho.
- Logged_By: Đăng nhập bởi.
- Status: Trạng thái.
+ Mở rộng
ColumnHeading Class
Thêm hàm getColumnHeadings4Report()
Thêm các trường id, Summary, Time_Stamp vào danh sách ColumnHeading.
ItemSearch Class
Thêm biến: columnHeadings4Report.
Bên trong constructor: ItemSearch(Space s, Component c) thêm đoạn mã sau:
SVTH: Nguyễn Phước Sáng Trang 77
Đặng Minh Tuấn
public ItemSearch(Space space, Component c) {
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
this.space = space;
this.columnHeadings = ColumnHeading.getColumnHeadings(space);
this.columnHeadings4Report=ColumnHeading.getColumnHeadings4Report(space);
}
2. Ứng dụng kỹ thuật cho hệ thống con
2.1 Các đặc điểm của JfreeChart
JfreeChart là thư viện biểu đồ miễn phí được viết trên nền Java. Nó được thiết kế
cho nhiều ứng dụng, applets, servlets và JSP. Jfreechart được phân bố với các mã
nguồn khác tới người sử dụng của quyền hạn sử dụng, mà cho phép sử dụng
JfreeChart trong sản xuất hoặc phần mềm miễn phí.
Ví dụ biểu đồ của Jfreechart
Đặc điểm
SVTH: Nguyễn Phước Sáng Trang 78
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 79
Đặng Minh Tuấn
JfreeChart có thể vẽ đường biểu đồ, cột biểu đồ(bình thường và chồng lên, tùy
chỉnh hiệu ứng hình 3D) biểu đồ hình tròn, phân mảnh, biểu đồ thời gian( bao gồm
những chuyển động, cao thấp đóng và mở của biểu đồ), biểu đồ Gantt, biểu đồ đo
mét( số và la bàn), biểu đồ ký hiệu, biểu đồ kết hợp và nhiều hơn nữa..
Những đặc điểm bỗ sung bao gồm:
• Dữ liệu có thể tiếp cận từ bất kỳ sự thi hành nào của giao diện đã được định
nghĩa.
• Xuất ra tệp tin hình ảnh dạng PNG và JPEG( sử dụng thư viện của java là
ImageIO để thực hiện xuất tệp tin theo yêu cầu).
• Xuất ra theo định dạng hình ảnh 2D thực hiện bao gồm:
- PDF qua iText.
- SVG qua Batik.
• Chú thích công cụ.
• Phóng tỷ lệ theo yêu cầu.
• Những sự kiện chuột ở trên biểu đồ.
• Những chú giải.
• Phát sinh trang HTML image.
• Công việc trong ứng dụng, applets, Servlet, JSP.
JfreeChart được viết trên nền Java nên khi chạy ứng dụng cần phải sử dụng JDK 1.3.1
hay phiên bản cao hơn. Nó cũng sẽ làm việc khá tốt với chế độ cơ bản trên GNU
ClassPath 0.92 hoặc cao hơn.
2.2 Những lợi thế của wicket
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 80
Đặng Minh Tuấn
Những trang và thành phần trong Wicket là những đối tượng Java thực sự mà hổ
trợ đóng gói, thừa kế và sự kiện.
Dễ dàng cho người phát triển: Bởi vì wicket là java và HTML, chúng ta có thể
thúc đẩy cái mà bạn biết về Java hay là biên soạn trang HTML để viết những cho
ứng dụng.
Tách vấn đề liên quan: Wicket không trộn lẫn nhãn phụ với mã Java và thêm cú
pháp không đặc biệt vào những hồ sơ nhãn phụ của ta. Trong phần của HTML và
Java chỉ là song song và liên hệ kết hợp duy nhất với Wicket ID. Mà những thuộc
tính trong HTML và thuộc tính thành phần trong Java. Từ đó Wicket HTML chính
là HTML và Wicket Java chính là Java. Người viết mã và người thiết kế có thể
làm độc lập và không cần một công cụ hỗ trợ đặc biệt nào.
An toàn: Wicket mặc định là an toàn. Địa chỉ không trình bày thông tin và mọi
thành phần đường dẫn là phiên liên quan. Những bước này phải được lấy chia sẽ
thông tin giữa các phiên. Đó là những dự án liên quan đến phiên bản sau của
wicket tới mã hóa địa chỉ hỗ trợ tính an toàn cao cho website.
Trong suốt, sự xếp hỗ trợ nhóm biến đổi: Tất cả các ứng dụng của Wicket sẽ
những bó tự động không phải là công việc bỗ sung, Wicket cho phép quay lại bản
sao trạng thái. Phiên bản tiếp theo của Wicket sẽ hỗ trợ máy khách chuyển đổi
trạng thái.
Hỗ trợ nút trở lại: Wicket hỗ trợ quản lý cấu hình trạng thái. Khi người sử dụng
xác nhận biểu mẫu hoặc địa chỉ từ trang đã được truy cập với nút trở lại trên trình
duyệt. Wicket có khả năng trở lại đối tượng trang của trạng thái trước khi trả lại
trạng thái. Ta có thể viết ứng dụng cho web hỗ trợ nút trở lại rất dễ dàng.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 81
Đặng Minh Tuấn
Những phần dừng lại được: Những phần dừng lại được thì rất dễ tạo. Không
phải bạn có thể dễ dàng mở rộng thành phần đã tồn tại với Java extends nhưng ta
có thể tạo thành bảng với sự kết hợp này cho nhóm thành phần.
Đơn giàn, linh hoạt, cấp phát định dạng theo khuôn mẫu: Bình thường và sử
dụng tính hợp lệ trong Wicket. Nó thì dễ dàng tùy chỉnh và định vị nội dung hiển
thị của biểu mẫu thông báo tính hợp lệ.
Kiểu phiên an toàn: Wicket khử bỏ nhu cầu quản lý những thuộc tính
HttpSession bằng tay. Trang và thành phần đối tượng lưu trữ trong phiên và các
ứng dụng ta có thể tạo ra tùy chỉnh phiên ở các lớp con cũng như các thuộc tính
của kiểu an toàn. Mọi đối tượng lưu trữ trong phiên có thể tự động tham gia sắp
xếp các bản sao.
Factory tùy biến: Wicket thì rất dễ dàng mở rộng. Đa số các hoạt động là tùy
biến thông qua Factory hoặc phương thức Factory.
Mô hình rời rạc: Mô hình đối tượng trong Wicket có thể dễ dàng phân biệt trong
thuật ngữ của bộ nhớ và mạng sử dụng liên kết lại. Khi mô hình được sử dụng nó
có thể “tác động” tới mẫu chính nó với thông tin từ kho lưu trữ. Khi mô hình
không còn sử dụng nhất thời thông tin có thể khởi động lại để giảm kích thướt của
đối tượng.
Border Component: Wicket Component Boder cho phép trang trí trang trong
kiểu dùng lại. Đây là cách đặc biệt cho việc thừa kế những cấu trúc điều khiển
chung hay trình bày hiển thị.
Hỗ trợ mọi đặc tính cơ bản của HTML: Wicket hỗ trợ thẻ hình, ‘link’, biểu mẫu
và mọi thứ khác là ta sử dụng phát triển ứng dụng cho web. Wicket component có
thể theo chương trình thay đổi thẻ HTML.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 82
Đặng Minh Tuấn
Những chuyển đổi tự động: Một biểu mẫu có tính hiệu lực, mô hình có thể nâng
cấp sử dụng bộ chuyển đổi Wicket. Hầu hết các bộ chuyển đổi bình thường là có
sẵn và nó dễ dàng viết bộ biến đổi mới.
Ảnh động: Wicket làm ảnh sử dụng, chia sẽ và phát sinh dễ dàng. Ảnh động có
thể tạo dễ dàng bởi việc thực thi đơn giản và phương thức vẽ.
Trang ListView: ListView trong Wicket có sức mạng rất lớn. Bạn có thể làm bất
kỳ thành phần nào trong một hàng ListView, ngay cả với ListView khác.
PagebleListView hỗ trợ điều khiển kết nối và danh sách lớn.
Tree Component: Ra khỏi phần tree component cho việc điều khiển và chọn
điểm.
Nơi cấp phát: Trang HTML, ành, chuỗi tài nguyên mọi thứ có thể địa phương
hóa.
2.3 Tương tác framework JfreeChart hỗ trợ báo cáo
• Nhúng framework JfreeChart:
Kỹ thuật:
File: pom.xml.
Thao tác: nhúng thêm đoạn mã XML vào file pom.xml nằm trong thư mục jtrac.
Mã:
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
jfree
jfreechart
1.0.11
gnujaxp
gnujaxp
Cài đặt:
SVTH: Nguyễn Phước Sáng Trang 83
Đặng Minh Tuấn
Sử dụng maven 2 để cài đặt lại cho Jtrac, sử dụng đoạn lệnh sau để cấu hình file
ant cho hệ thống Jtrac.
mvn antprops:generate.
Đây là bước sẽ không chỉ cho tải tất cả các tệp tin jar yêu cầu khi đó có thể mất
thời gian cho lần đầu tiên nhưng nó nhưng tạo ra một đặc điểm chuẩn cho tệp tin
và nó sẽ chứa tất cả thông tin cần thiết cho việc xây dựng tập lệnh và để Ant hoạt
động. Tệp tin phát sinh này gọi là “build-deps.properties”.
Lưu ý rằng bạn sẽ cần thực hiện bước này bất cứ lúc nào nếu thay đổi tệp tin
“pom.xml”, trong trường hợp này rất ít khi xảy ra và thường thì phiên bản mới của
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 84
Đặng Minh Tuấn
Jtrac phụ thuộc ( như Spring hay Hibernate) là có giá trị. Vẫn tiếp tục theo dõi sự
thay đổi các phiên bản của Jtrac là phụ thuộc hay cụ thể đổi cho “pom.xml” để
tránh bất cứ vấn đề gì xảy ra.
Nếu lệnh này không thực hiên được lệnh trên có thể là do máy không kết nối được
internet . Đây là một phần mà có thể giúp đỡ bạn ở sau một HTTP proxy. Điều này
đã được báo cáo để làm việc ngay cả khi các ủy nhiệm đòi hỏi phải xác thực
NTLM. Bạn có thể mở rộng tham số khi chạy lệnh Maven như sau:
mvn antprops:generate -Dhttp.proxyHost=172.19.56.56.
Lưu ý ràng nếu cổng proxy của bạn khác với cổng mặc định 80 thì bạn sẽ phải
thêm vào tham số “http.proxyPort”.
• Tương tác một đối tượng JfreeChart vào hệ thống:
- Kỹ thuật
Xây dựng các lớp tiện ích cho hệ thống báo cáo biểu đồ như sau:
ChartImage
Package: info.jtrac.report.util
Kế thừa: org.apache.wicket.markup.html.image.Image
Nội dung: Wicket Image được xây dựng từ JfreeChart, trình bày những thông tin
trả về và cho phép tạo thành hình biểu đồ. Lớp này được viết bởi Jonny Wray.
DynamicImageMap
Package: info.jtrac.report.util
Kế thừa: org.apache.wicket.markup.html.WebMarkupContainer
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Nội dung: Nhãn phụ của sản phẩm cho yếu tố trong trang HTML biểu đồ với việc
lập lại khu vực được vẽ biểu đồ.
MapArea
Package: info.jtrac.report.util
Kế thừa: org.apache.wicket.markup.html.WebMarkupContainer
Nội dung: Một phân vùng khu vực được vẽ biểu đồ mà điều này thêm một
mối liên kết Ajax tới vùng vào vùng như một chú thích của công cụ bình
thường.
MappedChart
Package: info.jtrac.wicket.reports
Kế thừa: org.apache.wicket.markup.html.panel.Panel
Nội dung: là panel render ra biểu đồ báo cáo có các chart entity động.
- Mã nguồn.
Sử dụng đoạn mã bên dưới để khai báo một biểu đồ báo cáo mới
SVTH: Nguyễn Phước Sáng Trang 85
Đặng Minh Tuấn
Web Markup:
Java code:
Panel newReport = new MappedChart(String panelId, JFreeChart chart, int width, int
height)
Phụ chú:
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 86
Đặng Minh Tuấn
String panelId = Tên của panel được khai báo trong web makup.
JFreeChart chart = đối tượng chart được sử dụng để tạo biểu đồ báo cáo.
int width = độ rộng của biểu đồ.
int height = chiều cao của biểu đồ.
2.4 Cải tiến hệ thống biểu đồ cho Jtrac
Cải tiến của hệ thống biểu đồ nhờ hệ thống tùy chọn có thể thừa kế và mở rộng ra được
nhiều kiểu biểu đồ khác nhau. Với tính năng hỗ trợ được nhiều kiểu dữ liệu có thể xuất
được báo cáo động giúp ích rất nhiều trong quá trình quản trị dự án.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Phần tùy chọn của báo cáo.
2.5 Phần mở rộng của hệ thống tạo báo cáo
Sử dụng ChartOption Panel để tạo báo cáo dạng biểu đồ.
- Về phần giao diện
SVTH: Nguyễn Phước Sáng Trang 87
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Tạo báo cáo theo tiến độ dự án.
Tạo báo cáo theo lịch sử.
Tùy chọn số I là trường tạo báo cáo theo tiến độ làm việc hoặc theo
lịch sử từng Item.
Tùy chọn số II là sắp xếp báo cáo theo id, thời gian, tóm tắt .
SVTH: Nguyễn Phước Sáng Trang 88
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Tùy chọn số III là đối tượng được báo cáo như gán cho, đăng nhập,
trạng thái.
Nhúng vào hệ thống
SVTH: Nguyễn Phước Sáng Trang 89
Đặng Minh Tuấn
Web markup:
Java code:
Cách lấy dữ liệu:
private CategoryDataset createDataset(FollowField optional, String itemID,
FollowField option1, FollowField option2) {
DefaultCategoryDataset defaultcategorydataset = new
DefaultCategoryDataset();
if(optional == FollowField.History){
Item item = getJtrac().loadItemByRefId(itemID);
if(item.getHistory()!=null) {
List historyList = new ArrayList(item.getHistory());
for(History history : historyList)
{
defaultcategorydataset.addValue(Double.parseDouble(history.getCustomValue(rut
il.getField().getName())), option2.getFollowField(history),
option1.getFollowField(history));
}
}
}
else{
List itemList = getJtrac().findItems(itemSearch);
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
for(Item item : itemList)
{
defaultcategorydataset.addValue(Double.parseDouble(item.getCustomValue(rutil.
getField().getName())),option2.getFollowField(item),
option1.getFollowField(item) );
}
}
return defaultcategorydataset;
}
SVTH: Nguyễn Phước Sáng Trang 90
Đặng Minh Tuấn
Cách nhúng vào form:
ChartOption chartPanel = new
ChartOption("optionPanel",itemSearch,FollowField.DateTime) {
@Override
public Panel addReport(FollowField optional, String itemID,
FollowField option1, FollowField option2) {
CategoryDataset data = createDataset(optional, itemID, option1,
option2);
StringBuilder title = new StringBuilder();
title.append(localize("report.titleSpace"));
title.append(" "+ rutil.getSpace().getName());
title.append("\n" + localize("report.titleField"));
title.append(" " + rutil.getField().getLabel());
JFreeChart jfreechart =
ChartFactory.createBarChart3D(title.toString(), localize(option2.getName()),
rutil.getField().getLabel(), data, PlotOrientation.VERTICAL, true, true, false);
return new MappedChart("panel", jfreechart, 600, 324) {
@Override
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
protected void onClickCallback(AjaxRequestTarget target,
ChartEntity entity) {
throw new UnsupportedOperationException("Not supported
yet.");
}
};
}
};
Có thể sử dụng ChartOption để xuất được nhiều kiểu biểu đồ khác nhau như:
Pie chart
JfreeChart có thể tạo ra biểu đồ hình tròn mà dữ liệu sử dụng phải phù hợp với
PieDataset. Hình sau biểu diễn ví dụ về biểu đồ PieChart
Ví dụ trình bày biểu đồ Pie Chart.
Chúng ta có thể trình bày biểu đồ theo hiệu ứng 3D như trình bày hình sau:
SVTH: Nguyễn Phước Sáng Trang 91
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Ví dụ trình bày biểu đồ Pie Chart theo hiệu ứng 3D.
Bar Chart
Jfreechart có thể tạo ra biểu đồ hình cột sử dụng dữ liệu phù hợp với
CategoryDataset. Sau đây là hình trình bày biểu đồ này:
SVTH: Nguyễn Phước Sáng Trang 92
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
Chúng ta có thể trình bày biểu đồ theo hiệu ứng 3D như trình bày hình sau:
Line Chart
Có thể được tạo ra giống như CategoryDataset mà được sử dụng cho biểu đồ cột
và trình bày như hình sau:
Ví dụ biểu đồ đường thẳng
SVTH: Nguyễn Phước Sáng Trang 93
Đặng Minh Tuấn
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 94
Đặng Minh Tuấn
3. Giải pháp triển khai
Hệ thống Jtrac có thể khai triển cho những công ty lớn vừa và nhỏ ở Việt Nam
thực hiện quản trị dự án cho doanh nghiệp, nó có thể quản trị một hay nhiều dự án
tùy thuộc vào quy mô và nhu cầu của cơ quan chức năng cần sử dụng. Hiện nay
tình hình kinh tế đang phát triển nên nhu cầu quản lý các dự án được nâng cao và
chúng ta có thể ứng dụng ngay hệ thống vào thực tế sẽ đem lại nguồn lợi đáng kể.
Chức năng report được sử dụng cho người quản trị dự án và trưởng nhóm thực
hiện chức năng báo cáo tiến trình công việc của những dự án trong hệ thống đang
sử dụng. Chức năng này giúp người sử dụng thống kê công việc một cách dễ dàng
hơn và làm cho người xem nhìn vào thì thấy được chi tiết quá trình làm việc.
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 95
Đặng Minh Tuấn
Chương 4: Đánh giá và kết luận
4.1 ĐÁNH GIÁ
“Nghiên cứu và phát triển dự án Jtrac” là một vấn đề mới mẻ hiện nay, nó mang
tính thực tế cao, nhất là trong giai đoạn hiện nay – khi Việt Nam đang tiến hành các
chính sách công nghiệp hóa, hiện đại hóa đất nước, đẩy mạnh Công nghệ thông tin,
đưa tin học hóa vào cuộc sống, việc thiết lập website riêng và quản lý dự án cho các
công ty ngày càng trở thành là nhu cầu thiết yếu. Dưới sự hướng dẫn và gợi ý của
thầy Nguyễn Chánh Thành, chúng tôi thực hiện đề tài này nhằm đưa ra một giải
pháp quản lý phù hợp cho các dự án có quy mô lớn.
Hiện nay nguồn tài nguyên mở đang phát triển mạnh các dự án phát triển trên
nguồn tài nguyên này rất lớn và Jtrac là một trong số đó nó đã sử dụng rất nhiều tài
nguyên mở chẳng hạn như các framework Spring, hibernate, etc…. việc nghiên cứu
và phát triển ứng dụng cho các dự án nguồn mở là có lợi cho công việc sau này,
Ngoài ra, do sự hạn hẹp cả về thời gian và trình độ nên việc nghiện cứu hệ thống
Jtrac đã có hoàn thành những yêu cầu cơ bản, nếu đưa vào thực tế sử dụng thì chắc
chắn phải cần nâng cấp theo các định hướng mà chúng tôi.
Tuy nhiên, với đồ án này, chúng tôi đã hoàn thành các yêu cầu đặt ra, bao gồm:
- Việt hóa: Đã chuyển hóa sang ngôn ngữ tiếng việt, việc này làm cho người sử
dụng dễ hiểu hơn.
- Chuyển đổi cơ sở dữ liệu: dùng cơ sở dữ liệu cho hệ thống Jtrac là SQL
Server 2005, việc chuyển đổi cơ sở dữ liệu này giúp hệ thống có thể quản lý
GVHD:Nguyễn Chánh Thành Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng
SVTH: Nguyễn Phước Sáng Trang 96
Đặng Minh Tuấn
với quy mô lớn hơn và chạy ổn định hơn cơ sở dữ liệu ban đầu của hệ thống
đó là HSQLDB.
- Tìm hiểu thêm được một số framework và một số web ứng dụng liên quan
đến hệ thống Jtrac như framework Spring, Hibernate, web ứn dụng wicket,
etc... Và tìm hiểu sau hơn về hệ thống Jtrac là cách quản lý dự án cho người
sử dụng hệ thống.
4.2 Kết luận
Việc nghiên cứu và phát triển ứng dụng cho hệ thống Jtrac là rất có ích cho vấn đề
khai triển các dự án nguồn mở của em về sau này. Tiếp xúc với mã nguồn mở nhanh
hơn.
Mặt dù đã cố gắng và đầu tư rất nhiều nhưng do thời gian có hạn nên đề tài còn
nhiều hạn chế và việc nghiên cứu chưa được hoàn thiện. Do dự án liên quan đến
nhiều framework của các mã nguồn mở nên cần có nhiều thời gian hơn để tiếp tục
nghiên cứu và phát triển.
Chúng em xin ghi nhận đóng góp quý báu của thầy cô và các bạn để việc nghiên cứu
của chúng em được nhanh chóng hơn.
Các file đính kèm theo tài liệu này:
- Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng.pdf