1. Slide: "An Introduction to the Window System"

-- introduce yourself.

-- Say what is window system? - part of application framework, system for managing windows in application, using Swing, level above Swing

2. Slide: "Agenda"

-- Problem statement: talk about that we will learn why we need more then Swing, what tasks are problematic and needs a lot of time to implement

-- Solution: Say that solution is of course NetBeans window system.

-- Demos: Talk about - we will show creating TopComponent in platform using apisupport and show way to port existing Swing app

-- API overview: will show important classes, basic pieces of winsys API

3. Slide: "Demo"

-- Open very basic java application, which consists of just one frame.

-- Point out that outside frame, OS features are working OK, but inside frame there are functionality missing.  

-- Show that this is not how regular applications look, “Hello world approach ” is not enough, it's just nothing, all problems are yet to come.

4. Slide: "Problems"

-- Describe how real applications look like using list of things on slide. Mention also persistence of layout and native look and feel.

-- Emphasize that this needs a lot of programming effort to get it right and slick.

-- Say that app developers need to concentrate on the problem itself, not this “framework”

5. Slide: "Agenda -> Problems"

-- Moving to Solution part

6. Slide: "Solution: TopComponent"

-- point out that a 'TopComponent' is the same as a 'JPanel', but for the NetBeans Platform

-- logical window management - views and documents, different searching and movement policies

-- window state - minimized, undocked (floating)

-- selection management - concept of activated nodes, propagation into menu and toolbars, navigator, palette, properties 

7. Slide: "Agenda: Demos"

-- Moving to the demo part - show what I talked about on previous slides

8. Slide: "Demo: Create a TopComponent"

- go through the 'Window Component' wizard to show how easy it is to create a 'TopComponent'

- show the cool things that a 'TopComponent' provides: docking/undocking, minimizing, maximize mode, full screen mode, layout reset, document area features (searching through documents, right side popup menu, Ctrl+Tab choosing)

-- Make sure to say something like: "In 6.0, the TopComponent was enhanced to include docking/undocking, so if you had built your application on 5.5, it would automatically have had a new feature as soon as you had ported it to 6.0 -- without you having done any work at all. In fact, that means the NetBeans engineering team is part of your development team, enhancing your application's infrastructure for free.'

- emphasize your previous statement by showing new transparent DnD and transparent sliding windows

9. Slide: "Demo: Porting an Application"

- take the 'Anagram Game' and port it to a 'TopComponent'
-- explain the 'stages of compliance': http://platform.netbeans.org/tutorials/60/nbm-porting-basic.html
-- refer to the above document as a guide for how to port your own application
-- make very clear that it is unacceptable to consider an application successfully ported if you still have a 'JFrame' at the end of it 
-- note: do a demo in steps available at http://platform.netbeans.org/tutorials/60/nbm-porting-basic.html

10. Slide: "Agenda: API Overview"

-- Closing with rough overview of “what is technical background”, rough overview of window system API

11. Slide: "What are its main classes?"

-- show javadoc of each of this class, describe each
---- TopComponent - already said, basic building block. Show open, close, activated nodes
---- WindowManager - 
---- Mode - a group of TopComponent, don't need to touch directly
---- TopComponentGroup - “task oriented” set of windows, which opens and closes in specific time. Examples are netbeans IDE GUI builder, debugger.

12. Slide: "Advanced Topics"

-- own layout, modes:
---- mention that initial layout is defined in xml layers
---- window system saves its layout in set of xml files in user directory as part of netbeans configuration
---- syntax is complex, exceeding scope

-- top component group:
---- show that it's defined in xml layer
---- show how to call call tcGroup.open and close on places where desired, maintains user preferences

13. Slide: "Questions & Answers"


Project Features

Project Links

About this Project

edu was started in November 2009, is owned by Antonin Nebuzelsky, and has 87 members.
By use of this website, you agree to the NetBeans Policies and Terms of Use (revision 20160708.bf2ac18). © 2014, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo
Please Confirm