HTML5 Development in Java EE and PHP Applications
You can now use all the HTML5 development features (collectively known as Project Easel) in Java Web applications (Ant or Maven based) and in PHP applications. For a more detailed description, see the Java EE and PHP sections of this document.
Create a new PhoneGap application from template. A PhoneGap application is just a flavor of a HTML5 application, so you can turn any HTML5 application into a PhoneGap application very easily.
Build, Deploy and Run Mobile Applications developed using standardised web APIs on Android/iOS Simulator or Device.
PhoneGap Sample Application
Support for Android and iOS Browsers
Basic editing support for Sassy CSS and LESS CSS preprocessor files has been added to Netbeans dev build. The work is still in progress, but the main part is ready to use:
- syntactic and semantic (parser based) coloring for the language constructs,
- indentation, simple reformat of code,
- code folds,
- file templates
For variables and mixins we provide:
- go to declaration,
- mark occurrences,
- instant rename,
- code completion (also shows items from imported files),
- vars, mixins and imported files shown in the navigator,
- find usages and refactor rename among files.
Compilation on Save
When you edit Sass and LESS files, the IDE will automatically compile these into CSS when you save the file. You only need to set the output path (or more precisely, mapping from input to output files) in your project's properties.
Then you only need to tell the IDE where to look for the Sass and/or LESS compiler, via the IDE Options.
When you run a page in a browser with NetBeans integration and modify some SASS or LESS stylesheet then the stylesheet is not only compiled automatically into the corresponding CSS file but this CSS file is also reloaded in the displayed page. So, you can see your changes immediately in the browser.
When SASS or LESS stylesheet is compiled into CSS stylesheet then an extra/debugging information is included by default. This information allows various tools to find the source of the rule generated into CSS. For example, CSS Styles view uses this information to allow you to jump into the definition of the matched rule.
Take care when you edit properties of CSS rules that come from SASS or LESS stylesheet. These modifications are saved into the CSS stylesheet only and are allowed for experimenting only. Once you are happy with the resulting style, you have to transfer these changes into SASS or LESS stylesheet manually. We hope to provide a better user experience in future releases.
Browser DOM view is a replacement for the merged source-browser HTML Navigator that worked (in NetBeans 7.3) for HTML files only. Browser DOM shows the DOM of executed page no matter what its source (HTML, PHP, JSF, etc.) is. Moreover, when the source of the page is HTML then it allows navigation into the source file as it was possible in HTML Navigator.
When a page is executed in a browser with NetBeans integration then you can see its DOM in Browser DOM view. When you mouse over the nodes in this view then you can see the corresponding elements highlighted in the browser (or vice-versa when Inspect mode is turned on in the browser). When an element is highlighted in the browser then we show its box model. In other words, we highlight its content, padding, border and margin and we also display the dimensions of the element.
Styling of hover-based effects
Many interactive pages style some of their elements in a different way when the mouse is hovering over the element. For example, sub-menu of a menu is displayed when you are hovering over the menu only. Hence, it is desirable to have a support for styling of elements in the 'hover' state. Of course, you cannot have your mouse cursor over the styled element (to keep it in the desired state) and over the property editor (that you use to affect the style of the element) simultaneously. Happily, we can keep the elements in 'hover' state for you.
When the Inspect mode is turned on in the browser (using Ctrl+Shift+S shortcut) then all the elements that were in the 'hover' state are kept in this state until the Inspect mode is turned off. You can select such elements and style them in this state as you are used to style any other element.
Saving changes from Chrome Developer Tools
When you edit the files (e.g. CSS files) in your web application inside Chrome Developer Tools, these changes will be saved to NetBeans IDE and preserved in the real file on the disk.
Network monitor helps to analyze REST related communication, WebSocket communication and any network requests which failed. It is available for Chrome with NetBeans Integration and Embedded WebKit Browser.
For each request it displays request and response headers:
and response received from the server:
and call stack which triggered this network request:
For WebSocket communication all text frames are displayed:
The network monitor tries to provide help in certain common situations:
- ability to refresh available libraries
"Dump Document" in embedded browser's context menu.
- chained code completion (issue 218604)
- note: chained completion items are provided on the second 'Ctrl+Space' (issue 229560)
- subword completion (issue 212412)
- "select next/previous element" now supports javadoc comments and line selections (issue 215552)
- "New Java class/interface/enum"-wizard: allow input of fully qualified names (issue 227877)
- New options for code folding (issue 226413)
- Prefix's and suffix's in java formatting. The formatting settings are used in refactoring like; Introduce and Rename, code generation like; generate getters and setters and Code Completion. (issue 228870)
- JDK 8 profiles support
- see WIP at http://wiki.netbeans.org/Java_Hints
- Rename Labels
- Change Constructor Hint
- Include Overloaded Methods in Find Usages
- Search from base class in Java Call Hierarchy
- JavaSE projects now support creation of native bundles taking use of the native packaging technology provided by JavaFX
JavaFX RunTime ClassPath support
- JavaSE projects now enable automatic extension of classpath to include JavaFX artifacts for JDK versions where this is not the case by default (all JDK7u6+, in JDK8 JavaFX RT is on classpath by default). This option is available in Project Properties dialog, Deployment category, under the name "Keep JavaFX RT artifacts on classpath". This option removes the need to add jfxrt.jar dependence to JavaSE project manually, when users need to use JavaFX classes within SE project. The advantage is twofold - changing JavaPlatform changes the respective JavaFX RT as well, plus the JavaFX RT artifacts are prevented from being copied to dist/lib/ as if they were a true project dependency.
- "Search for module dependency from unknown symbol" (issue 212656)
- Explicit FX-enabled Java Platforms have been completely removed (including the Default JavaFX Platform), FX Applications now work with standard NetBeans Java Platforms. No JavaFX specific tab is provided in Java Platforms dialog - its functionality is replaced by the standard JavaSE functionality (JavaDoc and sources can be specified in the standard way). This simplification takes use of the fact that since JDK 7u6 the JavaFX runtime is distributed as part of JDK on all platforms. This also means that NetBeans 7.4 no longer supports the option to choose different JavaFX RT/SDK for use with different JDK; now only the JavaFX RT/SDK from within JDK is used.
Remark: Technically JavaFX RT is not on classpath by default in all supported JDKs. A classpath extension mechanism similar to the one in former FX-enabled Java Platforms is in place; JavaFX RT artifacts are added to classpath wherever needed automatically.
- JavaSE and JavaFX project types have been aligned more tightly. JavaSE build script update mechanism is now shared in JavaFX Projects. The same Java Platforms can be used both in JavaSE and JavaFX Projects. JavaSE projects now enable simpler handling of JavaFX artifacts on classpath (see above). JavaSE Project can now be switched to JavaFX deployment mode, i.e., effectively transformed to JavaFX Application project type.
- New FXML File dialog now works in Maven projects, producing artifacts in Maven-style locations
- JavaFX Maven basic artifact and project template has been added
HTML5 Development in Java EE applications
The following HTML5 development features are now available in Java EE applications (both Ant and Maven based):
- Browser selection for testing with various browsers
- Running on mobile browsers on Android and iOS devices and emulators
- Visual CSS editing
- SASS and LESS editing
- SASS and LESS compilation and redeployment on save
- Network Monitor for REST and WebSocket
The screenshots below illustrate some of these features.
- Resource Library Contract wizard
- @FacesComponent wizard
- Allow "self", "static" and "this" in @return annotation
- Generation of getters and setters for static fields
- Support for deprecated elements (strike-through element names)
- String Auto-Concatenation after Typed Break
- Hint to detect depth of nested blocks
- Hint to detect unreachable statements
- Hint to detect empty statements
- Hint to detect direct use of superglobal arrays
- Hint conditions should use brackets
- Different coloring of single/multi lines comments
- Hint to check whether current use of "@" is proper
- Hint to check the number of line in a method (class, iface, trait?) declaration
- Hint to check the closing PHP delimiter at the end of file
- Rename refactoring improvement (If renaming a class added a possibility to rename its declaration file as well)
- HTML5 (Easel) integration
- CSS preprocessors integration
- Namespace for new PHP classes in the New File wizard
Frameworks & Tools
- Zend Framework 2 supported
- Adding dependencies via Composer
- Static code analysis - support for code inspection (code sniffer, mess detector).
- Code completion for Ext object:
- NetBeans understand to defining objects through Ext.define or Ext.apply methods. On the picture you can see navigator, that displays object defined through the Ext.define method and code completions suggester for such object:
- NetBeans offers code completion for property names in objects that are parameters for methods like Ext.application, Ext.define etc.:
Run Project toolbar button history (issue 193873)
Open files are stored as part of Project Group now, when switching you will get the right set of files as they were when you left the group. see issue 168578
Bundled Ant upgraded to version 1.9.0.
- Bundled Maven upgraded to version 3.0.5.
- Project Group now can have a custom Maven distribution associated for execution, effectively overriding the value from Tools/Options, see issue 197577
- Compile on save now execution maven, not ant builds, CoS on by default. see FaqCompileOnSave
- maven apisupport run platform speedup improvement issue 216929
- maven/ant apisupport - mark non-public packages use and use of transient dependencies in editor and Todo list -
- (optionally) show groupId, artefactId and version in maven project node (+ allow userdefined patterns) (issues 194773, 227578)
- Allow adding global Maven executions to toolbar for easy access, see issue 227283
- Define custom goals for project context menu according to packaging type (issue 200678)
- Show maven build execution as tree of nodes (issue 228506)
- Add context menu item on artifact nodes to copy local repo location (issue 220024)
- Redesign of Maven options dialog
- Folding of goals in the Maven output window
- Enable/disable all breakpoints (only available within a debugging session) (issue 79027)
- "Go to Type Source" action will open the type source of the inspected variable (Java Debugger only) (issue 81925)
- New column "Hit count" in breakpoints view (issue 141545)
- New actions "Properties" and "Create Fixed Watch" on GUI snapshot (issue 227456)
- GUI snapshots can be saved (issue 210802 )
- the conditions of a conditional breakpoints are shown in the tooltip of its icon in the left gutter (issue 109831)
- The Lock_Contention monitoring is available for all profiling tasks.
Inclusive method times
- New columns for CPU profiling
- Sorting by Inclusive Time
- Logical Value of instance in Heapwalker
- Restore selection in heap walker when navigating
- double clicking on a file in the commit dialog will open its diff view (this simplifies the review process before committing) (issue 223178)
- versioning menu entries were reordered (to decrease number of top level menu items and to make the ordering similar in every VCS) (issue 226504, 223545)
Diff between branches
Switching between queues
NetBeans offers the full support for Mercurial rebase command.
Diff between revisions
The diff view allows to select any revisions to compare and displays modifications between the two revisions.
- push, pull, fetch from upstream actions now work on multiple repositories (issue 225058)
- Add "ignore" in "show changes" and "diff" view (issue 228816)
Diff between revisions
The diff view allows to select any revisions to compare and displays modifications between the two revisions. This feature can also be used to compare different branches or tags. (issue 207165)
New Notifications TC is introduced in 7.4 - main goal is to list all notifications displayed in one IDE session and enable users to go back to a notification's details if then need/want to. For more information see the specification
User can now reload system proxy settings and doesn't need to restart IDE. Several changes has been done in General Options panel - the Reload button has been added. The user can also test if the connection can pass with the Test connection button.
- redesign of the search dialog
- search in open editors (issue 5009)
- search results can now be modified. Press DEL key to hide undesired items in the result set. (issue 200020)
- tooltips of search results show surrounding lines (issue 202628)
- search & replace panel of the editor has been redesigned
- Reorder window tabs using keyboard (issue 83247)
- Enhanced editor tabs
- better multi-line support,
- background color per project,
- documents drop down list sorted by project
- Dark color themes for Metal and Nimbus look and feels.
- Look and feel switcher in Options window.
- Filter field in New Project and New File windows.
- Quicksearch in toolbar customizer (issue 187230)
- Documents dialog window
- "Distraction-free" mode (issue 211136)
- Ability to split Editor top components (issue 228448)
- current keymap can now be exported as HTML (issue 226955)
- diff modes can now be toggled via shortcut (issue 170769)
- Support usage of project encoding for .properties files (issue 75906)
- quicksearches can now be enabled/disabled (issue 143367)
- command prefixes of the quicksearches are shown (+tooltip) (issue 220051)
- quicksearch for project(names) (issue 224378)
- Progress indication while importing settings from earlier version on first startup (issue 129666)
- Support for hooking into the import process (issue 224370)
- Allow options Dialog to be modal for RCP apps (issue 207120)
- Apply button in Options dialog (issue 204921)
- Folding of lines (issue 228022)
- Standard shortcut for Test Results window action (issue 198771)
- Automatically open Test Results window (issue 216791)
- Open Test result tab in new tab... (issue 212025)
- User can set shortcuts for rerun and rerun failed unit test (issue 189113)
- Show by default name of successful test when run as focused test (issue 207686)
- Rename test after renaming method (issue 62897)
- Add hints to Junit test generation (issue 162593)
- Go To Test action now also works for integration test (IT) classes (issue 199544)
- User can copy stack trace from test output (issue 223361)
- Double-click on a failing testcase method opens the line with the failing assertation within the testfile (issue 216334)
- TODO action items are now gathered from C/C++ files by default
- Run/Debug launchers support
- Compile single file from project with existing code
For previous release please check out NewAndNoteworthyNB73