Schematizing maps IDE and API policy Version 1.0 Schematizing maps IDE and API policy Version: 1.0 Date: 2010-09-23 Revision History Date 23.09.10 Version 01.01.00 Description Initial Draft Author Dominik Pavlović Doc. No.: Page 2 Schematizing maps IDE and API policy Version: 1.0 Date: 2010-09-23 Table of contents 1. Introduction 4 1.1 1.2 1.3 1.4 1.5 Purpose of this document Document organization Intended Audience Scope Definitions and acronyms 1.5.1 Definitions 1.5.2 Acronyms and abbreviations 1.6 References 4 4 4 4 4 4 4 5 2. NetBeans platform 6 3. NetBeans API's 7 Page 3 Schematizing maps IDE and API policy Version: 1.0 Date: 2010-09-23 1. Introduction 1.1 Purpose of this document The purpose of this document is to introduce the tools that will be used during the development of Schematizing maps application. 1.2 Document organization The document is organized as follows: 1.3 Section 1, Introduction, describes contents of this guide, used documentation during developing process etc. Section 2, NetBeans platform, decribes what NetBeans platform is and why did we choose it. Section 3, NetBeans API's, describes the Netbeans API's that will be used in our application during the development process. Intended Audience The intended audience is: Schematizing maps team members Project supervisor Project proponent DSD course teachers 1.4 Scope The development process of “Schematizing maps” project. 1.5 Definitions and acronyms 1.5.1 Definitions Keyword NetBeans Schematizing maps Application 1.5.2 Definitions Java IDE with integrated framework, that simplyfies programming. Project name and also team name. Computer software. Acronyms and abbreviations Acronym or abbreviation IDE GUI API Definitions Integrated Development Environment. Environment that will be used for application development. Can also be described as application for software development. Graphical User Interface. An interface trough which users will interact with the application. Application programming interface Interface implemented by a software programm. Page 4 Schematizing maps IDE and API policy 1.6 Version: 1.0 Date: 2010-09-23 References NetBeans internet pages http://netbeans.org/index.html NetBeans tutorial http://netbeans.org/kb/docs/java/quickstart.html List of NetBeans API's http://bits.netbeans.org/dev/javadoc/overview-summary.html NetBeans download page http://netbeans.org/downloads/ NetBeans installation instructions http://netbeans.org/community/releases/69/install.html Page 5 Schematizing maps IDE and API policy 2. Version: 1.0 Date: 2010-09-23 NetBeans platform NetBeans is an free open source Integrated Development Environment (IDE, later in text) for software developers. It was originally developed as a generic framework for Java Swing applications, based on Java platform, but also supports a large palette of other programming languages, such as: JavaFX, PHP, JavaScript and Ajax, Ruby and Ruby on Rails, Groovy and Grails, and C/C++. Our team choosed NetBeans for the development of the Schematizing maps project application, because of its features, especially the Java Swing API, which makes the development of an Java standalone application easyer and much faster. Swing API is an NetBeans GUI Builder for design of the user interfaces during the development of a Swing desktop application based on the NetBeans Platform. Recommended version of the NetBeans product for our team is NetBeans IDE 6.9.1. This version can be downloaded from http://netbeans.org/downloads/ and installation instructions with the requirements for the installation and usage of the NetBeans for this NetBeans product version can be found on http://netbeans.org/community/releases/69/install.html. Page 6 Schematizing maps IDE and API policy 3. Version: 1.0 Date: 2010-09-23 NetBeans API's Here is a brief overview of the NetBeans API's that we consider important for the development of our application: Actions APIs - “Actions provides system of support and utility classes for 'actions' usage in NetBeans. The Actions API allows users to interact with module code, by invoking actions via menus, toolbars or keyboard shortcuts. ” Since we will have a lot interaction between user and our application every action performed by user (clicking, writing, etc...) could trigger some task in our application, so everything that we can use from this API will save as time or at least, ease the development process. Debugger Core API - “The debuggercore/api module (Debugger Core API) allows to install different debugger implementation to one IDE. The Debugger Core API module defines common structures for integration of debugger implementations into NetBeans IDE. ” Debugger Core - UI - “The debuggercore module (Debugger Core UI) contains shared UI components for all debugger implementations, and defines some SPI for sharing of them. “ Dialogs API - “The DialogsAPI allows creating a user notification, a dialog's description and also permits it to be displayed. “ This could be used for panel titles, labels, notifications, error messages, pop-ups, etc, displayed on GUI. Editor Code Completion - “Code Completion provides users with a list of suggested completions for partially typed texts in the editor and various dialog input fields. “ Allows customizing the code completion mechanism. File System API - “The Filesystems API provides a common API to access files in a uniform manner.” This will be used for importing different maps as templates, creating templates of the schematizing maps, saving them, and saving (exporting) the produced schematizing map to disk in different file formats. I/O APIs - “The Input/Output API is a small API module which contains Input/Output and related interfaces used in driving the Output Window.” Could be used for some feedback to developers during the execution of the application. (One more way of debugging.) Java Platform - “Many Java-based project types need to be able to configure the version and location of Java to be used when building and running the project.” Recommended JDK for use is JDK 6 (1.6). JUnit Tests - “The module makes creating, running and navigation between tests easier.” This API provides a numerous testing abilities, creating mocking objects, etc. Will be used for testing purposes. Project API - “Provides a generic infrastructure for modeling projects.” Tab Control - “The tab control is a swing control used by NetBeans window system, similar in function to a JTabbedPane, which allows the user to see and select tabs that contain different components.” If we are going to use tab's in our project, this could be used. Utilities API - “This module contains general classes needed in NetBeans, extensions to basic JRE concepts, useful methods and other UtilitiesAPI classes.” This will definitely be used during the development process, it contains many useful features that makes the developers life easier. Page 7