Tìm hiểu về hệ thống Jtrac và phát triển ứng dụng

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.

pdf96 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2684 | Lượt tải: 0download
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:

  • pdfTìm hiểu về hệ thống Jtrac và phát triển ứng dụng.pdf