SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
1
Getting Started
Extending NetBeans IDE
(Learn how to create NetBeans plugins for fun and profit!)

2
Me
 Twitter: @geertjanw
 Facebook: www.facebook.com/geertjanw
 E-Mail: geertjan.wielenga@oracle.com

3
Free Tool Box
 HTML
 JavaScript
 CSS
 Java EE
 NetBeans

4
What is NetBeans?
Increase Developer Productivity
 Ready to use out of the box
 Support for latest Java

specifications & standards
 Support for HTML,

JavaScript, and CSS
 Intuitive workflow

 Debugger, Profiler,

Editing & Refactoring Tools
 Binaries and ZIPs for Mac OS,

Linux, and Windows
Simply download and run on any operating system!
5
What is NetBeans?
Increase Developer Productivity
 Works out of the box
 Freely available

 Open source
 Support for Java standards &

other popular platforms, such as HTML5
 Deeply integrated Maven support

 Extensible Java desktop framework
 Powerful, award winning GUI Builder
 Profiling and debugging tools
 Customizable and extensible

6
What is NetBeans?
Increase Developer Productivity
 Works out of the box
 Freely available

 Open source
 Support for Java standards &

other popular platforms, such as HTML5
 Deeply integrated Maven support

 Extensible Java desktop framework
 Powerful, award winning GUI Builder
 Profiling and debugging tools
 Customizable and extensible
 Task: What are your favorite two features in NetBeans IDE?
7
NetBeans IDE
Menu Items
Toolbar Buttons
Keyboard Shortcuts
8
NetBeans IDE
Menu Items
Toolbar Buttons
Windows
Keyboard Shortcuts

Positions
Groups

9
NetBeans IDE
Options Window
Menu Items
Primary Tabs
Toolbar Buttons
Secondary Tabs
Windows
Keyboard Shortcuts
Positions
Groups
10
Progress Bar
Status Bar
NetBeans IDE
Output
Options Window
Menu Items
Primary Tabs
Toolbar Buttons
Secondary Tabs
Windows
Keyboard Shortcuts
Positions
Groups
11
Files
Editors
Popup Menus Progress Bar
Status Bar
NetBeans IDE
Output
Options Window
Menu Items
Primary Tabs
Toolbar Buttons
Secondary Tabs
Windows
Keyboard Shortcuts
Positions
Groups
12
Files
Projects
External Tools Editors
Popup Menus Progress Bar
Status Bar
NetBeans IDE
Output
Options Window
Menu Items
Primary Tabs
Toolbar Buttons
Secondary Tabs
Windows
Keyboard Shortcuts
Positions
Groups
13
Key Concepts
 Module
 Action
 Filesystem
 TopComponent
 Options Window
 Lookup
14
Module
 Most features in NetBeans IDE are found within a single module.
 If a feature is complex and consists of different parts, it consists of multiple modules.
 A module is:
– a JAR file
– with special manifest entries
– distributed as an NBM file

15
Module
 Most features in NetBeans IDE are found within a single module.
 If a feature is complex and consists of different parts, it consists of multiple modules.
 A module is:
– a JAR file
– with special manifest entries
– distributed as an NBM file

 Task: Choose your favorite two modules in Tools | Plugins | Available Plugins.

16
Workshop
 Let’s create a module!

17
Actions
 Actions are invoked from menu items, toolbar buttons, and keyboard shortcuts.
 Actions consist of
– ActionListener
– Display name

– Icon
 Some actions are always enabled and some actions are contextually enabled.

18
Actions
 Actions are invoked from menu items, toolbar buttons, and keyboard shortcuts.
 Actions consist of
– ActionListener
– Display name

– Icon
 Some actions are always enabled and some actions are contextually enabled.

 Task:

19

Find two always enabled actions and two contextually enabled actions
…and explain why!
Filesystem
 Features in modules are registered in an XML file called “layer.xml” file.
 Each module has at most one “layer.xml” file.
 Entries in the “layer.xml” file:
– Come from annotations in Java classes.
– Come from manually typing in the file.

 When NetBeans IDE starts, it merges all “layer.xml” files and creates the filesystem.
 The filesystem has fixed folders, e.g., “Menu” and “Toolbars”.
20
Workshop
 Let’s create an Action and register it in the Filesystem!

21
Workshop
 Try to create an Action without using a wizard!

22
Workshop
 Create a new Module that registers an Action in the Toolbar!

23
TopComponents
 TopComponents are windows.
 Windows are displayed in modes, i.e., positions or tabs.
 Predefined modes include “editor”, “explorer”, “output”, and “properties”.
 Annotations on the TopComponent define its default Mode.

24
TopComponents
 TopComponents are windows.
 Windows are displayed in modes, i.e., positions or tabs.
 Predefined modes include “editor”, “explorer”, “output”, and “properties”.
 Annotations on the TopComponent define its default Mode.

 Task:

25

Identify three windows displayed by default in
the “explorer”, “editor”, and “output” mode.
Workshop
 Let’s create a TopComponent!

26
Workshop
 Try to create a TopComponent without using a wizard!

27
Options Window
 The Options window is a centralized dialog for all customizations in NetBeans IDE.
 Each module can contribute new panels to the Options window.
 There are primary panels and secondary panels.
 Changes in the Options window can be persisted across restarts of NetBeans IDE.

28
Options Window
 The Options window is a centralized dialog for all customizations in NetBeans IDE.
 Each module can contribute new panels to the Options window.
 There are primary panels and secondary panels.
 Changes in the Options window can be persisted across restarts of NetBeans IDE.

 Task:

29

Go to the Miscellaneous category in the Options window and
make the tabs of NetBeans IDE appear along the bottom and
then experiment with other settings you find there.
Workshop
 Let’s create a new Options panel!

30
Lookup
 Lookup provides context sensitivity to NetBeans IDE.
 Task:

31

Make a change in an editor and look at what happens to the Save button.
Click the Save button and notice what happens.
Do you think the Save button is in the same module as the editor?
Try to make some guesses about how it works.
Lookup
 Lookup provides context sensitivity to NetBeans IDE.
 Task:

Make a change in an editor and look at what happens to the Save button.
Click the Save button and notice what happens.
Do you think the Save button is in the same module as the editor?
Try to make some guesses about how it works.

 Context sensitivity is provided by an event listening mechanism:
– The Save action is listening to the global context for a typed object.
– When a change is made in the editor, the typed object is published into the global context.
– The Save action calls a method on the type.

32
Workshop
 Let’s listen to the global context for Projects!

33
Workshop
 Display information about all the selected projects

in a window displayed in the Properties mode.

34
Summary

35
Key Concepts
 Module
 Action
 Filesystem
 TopComponent
 Options Window
 Lookup

36
Me
 Twitter: @geertjanw
 Facebook: www.facebook.com/geertjanw
 E-Mail: geertjan.wielenga@oracle.com

37
38

Más contenido relacionado

La actualidad más candente

IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenIBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenPaul Withers
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projectsVincent Massol
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesJesse Gallagher
 
Take control. write a plugin. part II
Take control. write a plugin. part IITake control. write a plugin. part II
Take control. write a plugin. part IIBaruch Sadogursky
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and HowRussell Maher
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeHolasz Kati
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and TychoMickael Istria
 
NetBeans Plugin Development Workshop
NetBeans Plugin Development WorkshopNetBeans Plugin Development Workshop
NetBeans Plugin Development Workshopelliando dias
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With SeleniumMarakana Inc.
 
Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeanselliando dias
 
Springboot introduction
Springboot introductionSpringboot introduction
Springboot introductionSagar Verma
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to MavenJoao Pereira
 
Project Presentation on Advance Java
Project Presentation on Advance JavaProject Presentation on Advance Java
Project Presentation on Advance JavaVikas Goyal
 
A walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresA walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresMichal Juhas
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1MD Sayem Ahmed
 
Upgrade to java 16 or 17
Upgrade to java 16 or 17Upgrade to java 16 or 17
Upgrade to java 16 or 17Johan Janssen
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 

La actualidad más candente (20)

IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages HeavenIBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
IBM Connect 2014 BP204: It's Not Infernal: Dante's Nine Circles of XPages Heaven
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projects
 
Maven basics
Maven basicsMaven basics
Maven basics
 
CollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPagesCollabSphere 2018 - Java in Domino After XPages
CollabSphere 2018 - Java in Domino After XPages
 
Take control. write a plugin. part II
Take control. write a plugin. part IITake control. write a plugin. part II
Take control. write a plugin. part II
 
Managed Beans: When, Why and How
Managed Beans: When, Why and HowManaged Beans: When, Why and How
Managed Beans: When, Why and How
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
 
NetBeans Plugin Development Workshop
NetBeans Plugin Development WorkshopNetBeans Plugin Development Workshop
NetBeans Plugin Development Workshop
 
Testing Java Web Apps With Selenium
Testing Java Web Apps With SeleniumTesting Java Web Apps With Selenium
Testing Java Web Apps With Selenium
 
BDD using Cucumber JVM
BDD using Cucumber JVMBDD using Cucumber JVM
BDD using Cucumber JVM
 
Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeans
 
Springboot introduction
Springboot introductionSpringboot introduction
Springboot introduction
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to Maven
 
Project Presentation on Advance Java
Project Presentation on Advance JavaProject Presentation on Advance Java
Project Presentation on Advance Java
 
A walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 featuresA walkthrough of JavaScript ES6 features
A walkthrough of JavaScript ES6 features
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
 
Upgrade to java 16 or 17
Upgrade to java 16 or 17Upgrade to java 16 or 17
Upgrade to java 16 or 17
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 

Similar a Extending NetBeans IDE

JMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowJMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowRussell Maher
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityTeamstudio
 
Efficient Automated Test Creation With Selenium IDE Plugins
Efficient Automated Test Creation With Selenium IDE PluginsEfficient Automated Test Creation With Selenium IDE Plugins
Efficient Automated Test Creation With Selenium IDE PluginsSamit Badle
 
outgoing again
outgoing againoutgoing again
outgoing againspredslide
 
Hacking the Explored App by Adding Custom Code (UI5con 2016)
Hacking the Explored App by Adding Custom Code (UI5con 2016)Hacking the Explored App by Adding Custom Code (UI5con 2016)
Hacking the Explored App by Adding Custom Code (UI5con 2016)Nabi Zamani
 
Kinect installation guide
Kinect installation guideKinect installation guide
Kinect installation guidegilmsdn
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentMediacurrent
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Editionddrschiw
 
NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!René Winkelmeyer
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE IntroductionAhllen Javier
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfsheenmarie0212
 
IBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivityIBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivitySocialBiz UserGroup
 
1) workbench basics
1) workbench basics1) workbench basics
1) workbench basicstechbed
 
Blugsphere2011 dev
Blugsphere2011 devBlugsphere2011 dev
Blugsphere2011 devAusLUG
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
Commercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev ChalermvongCommercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev ChalermvongQuek Lilian
 
Commercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev ChalermvongCommercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev ChalermvongQuek Lilian
 

Similar a Extending NetBeans IDE (20)

JMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is NowJMP402 Master Class: Managed beans and XPages: Your Time Is Now
JMP402 Master Class: Managed beans and XPages: Your Time Is Now
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
Efficient Automated Test Creation With Selenium IDE Plugins
Efficient Automated Test Creation With Selenium IDE PluginsEfficient Automated Test Creation With Selenium IDE Plugins
Efficient Automated Test Creation With Selenium IDE Plugins
 
outgoing again
outgoing againoutgoing again
outgoing again
 
Recipes for Drupal distributions
Recipes for Drupal distributionsRecipes for Drupal distributions
Recipes for Drupal distributions
 
Hacking the Explored App by Adding Custom Code (UI5con 2016)
Hacking the Explored App by Adding Custom Code (UI5con 2016)Hacking the Explored App by Adding Custom Code (UI5con 2016)
Hacking the Explored App by Adding Custom Code (UI5con 2016)
 
Kinect installation guide
Kinect installation guideKinect installation guide
Kinect installation guide
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven Development
 
Write tests, please
Write tests, pleaseWrite tests, please
Write tests, please
 
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor EditionAd102 - Extreme Makeover -- LotusScript and Java Editor Edition
Ad102 - Extreme Makeover -- LotusScript and Java Editor Edition
 
NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!NLLUG 2012 - XPages Extensibility API - going deep!
NLLUG 2012 - XPages Extensibility API - going deep!
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE Introduction
 
Visual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdfVisual Basic IDE Intro.pdf
Visual Basic IDE Intro.pdf
 
ID E's features
ID E's featuresID E's features
ID E's features
 
IBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivityIBM Domino Designer: Tips and tricks for maximum productivity
IBM Domino Designer: Tips and tricks for maximum productivity
 
1) workbench basics
1) workbench basics1) workbench basics
1) workbench basics
 
Blugsphere2011 dev
Blugsphere2011 devBlugsphere2011 dev
Blugsphere2011 dev
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Commercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev ChalermvongCommercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev Chalermvong
 
Commercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev ChalermvongCommercial Launch Win7 Dev Chalermvong
Commercial Launch Win7 Dev Chalermvong
 

Más de Geertjan Wielenga

The Long Walk to Apache NetBeans
The Long Walk to Apache NetBeansThe Long Walk to Apache NetBeans
The Long Walk to Apache NetBeansGeertjan Wielenga
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETGeertjan Wielenga
 
JFall 2016: Oracle JET Session
JFall 2016: Oracle JET SessionJFall 2016: Oracle JET Session
JFall 2016: Oracle JET SessionGeertjan Wielenga
 
Oracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentOracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentGeertjan Wielenga
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 
Japanese Introduction to Oracle JET
Japanese Introduction to Oracle JETJapanese Introduction to Oracle JET
Japanese Introduction to Oracle JETGeertjan Wielenga
 
geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"Geertjan Wielenga
 
Surviving Life in the JavaScript Ecosystem
Surviving Life in the JavaScript EcosystemSurviving Life in the JavaScript Ecosystem
Surviving Life in the JavaScript EcosystemGeertjan Wielenga
 
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitOracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitGeertjan Wielenga
 
NetBeans Workshop at Hanze University of Applied Science, Groningen
NetBeans Workshop at Hanze University of Applied Science, GroningenNetBeans Workshop at Hanze University of Applied Science, Groningen
NetBeans Workshop at Hanze University of Applied Science, GroningenGeertjan Wielenga
 
Coding for Desktop & Mobile with HTML5 & Java EE
Coding for Desktop & Mobile with HTML5 & Java EECoding for Desktop & Mobile with HTML5 & Java EE
Coding for Desktop & Mobile with HTML5 & Java EEGeertjan Wielenga
 

Más de Geertjan Wielenga (20)

The Long Walk to Apache NetBeans
The Long Walk to Apache NetBeansThe Long Walk to Apache NetBeans
The Long Walk to Apache NetBeans
 
Java Master Class
Java Master ClassJava Master Class
Java Master Class
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JET
 
Session at Oredev 2016.
Session at Oredev 2016.Session at Oredev 2016.
Session at Oredev 2016.
 
JFall 2016: Oracle JET Session
JFall 2016: Oracle JET SessionJFall 2016: Oracle JET Session
JFall 2016: Oracle JET Session
 
Slovenian Oracle User Group
Slovenian Oracle User GroupSlovenian Oracle User Group
Slovenian Oracle User Group
 
Imworld.ro
Imworld.roImworld.ro
Imworld.ro
 
Oracle User Group Holland
Oracle User Group HollandOracle User Group Holland
Oracle User Group Holland
 
State of NetBeans
State of NetBeansState of NetBeans
State of NetBeans
 
Oracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentOracle JET, with JET Mobile Content
Oracle JET, with JET Mobile Content
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
Japanese Introduction to Oracle JET
Japanese Introduction to Oracle JETJapanese Introduction to Oracle JET
Japanese Introduction to Oracle JET
 
Oracle JET
Oracle JETOracle JET
Oracle JET
 
geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"geecon 2016: "What's Oracle Doing with JavaScript?!"
geecon 2016: "What's Oracle Doing with JavaScript?!"
 
Technology Evangelism
Technology EvangelismTechnology Evangelism
Technology Evangelism
 
Technology evangelist
Technology evangelistTechnology evangelist
Technology evangelist
 
Surviving Life in the JavaScript Ecosystem
Surviving Life in the JavaScript EcosystemSurviving Life in the JavaScript Ecosystem
Surviving Life in the JavaScript Ecosystem
 
Oracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript ToolkitOracle JET: Enterprise-Ready JavaScript Toolkit
Oracle JET: Enterprise-Ready JavaScript Toolkit
 
NetBeans Workshop at Hanze University of Applied Science, Groningen
NetBeans Workshop at Hanze University of Applied Science, GroningenNetBeans Workshop at Hanze University of Applied Science, Groningen
NetBeans Workshop at Hanze University of Applied Science, Groningen
 
Coding for Desktop & Mobile with HTML5 & Java EE
Coding for Desktop & Mobile with HTML5 & Java EECoding for Desktop & Mobile with HTML5 & Java EE
Coding for Desktop & Mobile with HTML5 & Java EE
 

Último

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Último (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

Extending NetBeans IDE

  • 1. 1
  • 2. Getting Started Extending NetBeans IDE (Learn how to create NetBeans plugins for fun and profit!) 2
  • 3. Me  Twitter: @geertjanw  Facebook: www.facebook.com/geertjanw  E-Mail: geertjan.wielenga@oracle.com 3
  • 4. Free Tool Box  HTML  JavaScript  CSS  Java EE  NetBeans 4
  • 5. What is NetBeans? Increase Developer Productivity  Ready to use out of the box  Support for latest Java specifications & standards  Support for HTML, JavaScript, and CSS  Intuitive workflow  Debugger, Profiler, Editing & Refactoring Tools  Binaries and ZIPs for Mac OS, Linux, and Windows Simply download and run on any operating system! 5
  • 6. What is NetBeans? Increase Developer Productivity  Works out of the box  Freely available  Open source  Support for Java standards & other popular platforms, such as HTML5  Deeply integrated Maven support  Extensible Java desktop framework  Powerful, award winning GUI Builder  Profiling and debugging tools  Customizable and extensible 6
  • 7. What is NetBeans? Increase Developer Productivity  Works out of the box  Freely available  Open source  Support for Java standards & other popular platforms, such as HTML5  Deeply integrated Maven support  Extensible Java desktop framework  Powerful, award winning GUI Builder  Profiling and debugging tools  Customizable and extensible  Task: What are your favorite two features in NetBeans IDE? 7
  • 8. NetBeans IDE Menu Items Toolbar Buttons Keyboard Shortcuts 8
  • 9. NetBeans IDE Menu Items Toolbar Buttons Windows Keyboard Shortcuts Positions Groups 9
  • 10. NetBeans IDE Options Window Menu Items Primary Tabs Toolbar Buttons Secondary Tabs Windows Keyboard Shortcuts Positions Groups 10
  • 11. Progress Bar Status Bar NetBeans IDE Output Options Window Menu Items Primary Tabs Toolbar Buttons Secondary Tabs Windows Keyboard Shortcuts Positions Groups 11
  • 12. Files Editors Popup Menus Progress Bar Status Bar NetBeans IDE Output Options Window Menu Items Primary Tabs Toolbar Buttons Secondary Tabs Windows Keyboard Shortcuts Positions Groups 12
  • 13. Files Projects External Tools Editors Popup Menus Progress Bar Status Bar NetBeans IDE Output Options Window Menu Items Primary Tabs Toolbar Buttons Secondary Tabs Windows Keyboard Shortcuts Positions Groups 13
  • 14. Key Concepts  Module  Action  Filesystem  TopComponent  Options Window  Lookup 14
  • 15. Module  Most features in NetBeans IDE are found within a single module.  If a feature is complex and consists of different parts, it consists of multiple modules.  A module is: – a JAR file – with special manifest entries – distributed as an NBM file 15
  • 16. Module  Most features in NetBeans IDE are found within a single module.  If a feature is complex and consists of different parts, it consists of multiple modules.  A module is: – a JAR file – with special manifest entries – distributed as an NBM file  Task: Choose your favorite two modules in Tools | Plugins | Available Plugins. 16
  • 18. Actions  Actions are invoked from menu items, toolbar buttons, and keyboard shortcuts.  Actions consist of – ActionListener – Display name – Icon  Some actions are always enabled and some actions are contextually enabled. 18
  • 19. Actions  Actions are invoked from menu items, toolbar buttons, and keyboard shortcuts.  Actions consist of – ActionListener – Display name – Icon  Some actions are always enabled and some actions are contextually enabled.  Task: 19 Find two always enabled actions and two contextually enabled actions …and explain why!
  • 20. Filesystem  Features in modules are registered in an XML file called “layer.xml” file.  Each module has at most one “layer.xml” file.  Entries in the “layer.xml” file: – Come from annotations in Java classes. – Come from manually typing in the file.  When NetBeans IDE starts, it merges all “layer.xml” files and creates the filesystem.  The filesystem has fixed folders, e.g., “Menu” and “Toolbars”. 20
  • 21. Workshop  Let’s create an Action and register it in the Filesystem! 21
  • 22. Workshop  Try to create an Action without using a wizard! 22
  • 23. Workshop  Create a new Module that registers an Action in the Toolbar! 23
  • 24. TopComponents  TopComponents are windows.  Windows are displayed in modes, i.e., positions or tabs.  Predefined modes include “editor”, “explorer”, “output”, and “properties”.  Annotations on the TopComponent define its default Mode. 24
  • 25. TopComponents  TopComponents are windows.  Windows are displayed in modes, i.e., positions or tabs.  Predefined modes include “editor”, “explorer”, “output”, and “properties”.  Annotations on the TopComponent define its default Mode.  Task: 25 Identify three windows displayed by default in the “explorer”, “editor”, and “output” mode.
  • 26. Workshop  Let’s create a TopComponent! 26
  • 27. Workshop  Try to create a TopComponent without using a wizard! 27
  • 28. Options Window  The Options window is a centralized dialog for all customizations in NetBeans IDE.  Each module can contribute new panels to the Options window.  There are primary panels and secondary panels.  Changes in the Options window can be persisted across restarts of NetBeans IDE. 28
  • 29. Options Window  The Options window is a centralized dialog for all customizations in NetBeans IDE.  Each module can contribute new panels to the Options window.  There are primary panels and secondary panels.  Changes in the Options window can be persisted across restarts of NetBeans IDE.  Task: 29 Go to the Miscellaneous category in the Options window and make the tabs of NetBeans IDE appear along the bottom and then experiment with other settings you find there.
  • 30. Workshop  Let’s create a new Options panel! 30
  • 31. Lookup  Lookup provides context sensitivity to NetBeans IDE.  Task: 31 Make a change in an editor and look at what happens to the Save button. Click the Save button and notice what happens. Do you think the Save button is in the same module as the editor? Try to make some guesses about how it works.
  • 32. Lookup  Lookup provides context sensitivity to NetBeans IDE.  Task: Make a change in an editor and look at what happens to the Save button. Click the Save button and notice what happens. Do you think the Save button is in the same module as the editor? Try to make some guesses about how it works.  Context sensitivity is provided by an event listening mechanism: – The Save action is listening to the global context for a typed object. – When a change is made in the editor, the typed object is published into the global context. – The Save action calls a method on the type. 32
  • 33. Workshop  Let’s listen to the global context for Projects! 33
  • 34. Workshop  Display information about all the selected projects in a window displayed in the Properties mode. 34
  • 36. Key Concepts  Module  Action  Filesystem  TopComponent  Options Window  Lookup 36
  • 37. Me  Twitter: @geertjanw  Facebook: www.facebook.com/geertjanw  E-Mail: geertjan.wielenga@oracle.com 37
  • 38. 38