(1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini...
-
Upload
william-wright -
Category
Documents
-
view
221 -
download
0
description
Transcript of (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini...
![Page 1: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/1.jpg)
(1)
StOpMI Phase 2 or
“What about using NetBeans as a Framework for our GUIs?”
Vito Baggiolini24-May-2002
![Page 2: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/2.jpg)
(2)
Outline• Introduction
– Background– What is Netbeans?– Why Netbeans?
• Netbeans explained– Architecture, APIs, Modularity– Netbeans “added value” and Risks
• Integrating Netbeans with our environment– StOPMi + Netbeans– Integrating existing GUIs
• Outline of StOpMI Phase 2 Project– Proposed mandate & organization
• Conclusions
![Page 3: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/3.jpg)
(3)
Outline• Introduction
– Background– What is Netbeans– Why Netbeans?
• Netbeans explained– Architecture, APIs, Modularity– Netbeans “added value” and Risks
• Integrating Netbeans with our environment– StOPMi + Netbeans– Integrating existing GUIs
• Outline of StOpMI Phase 2 Project– Proposed mandate & organization
• Conclusions
![Page 4: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/4.jpg)
(4)
Background • Many Controls projects are building Java GUIs• GUIs should have full-fledged functionality
– Users are “spoiled” by Windows– Applications are judged by GUIs (“Tip of Iceberg”)
• All GUIs have similar elements– Functionality: Explorer, Menus, Toolbars, Output window, etc.– Building blocks: Buttons, Lists, Dialogs, etc.
• We need a common approach– To share developments (save man-power)– To integrate components from different sources– To have a common GUI Layout and Look & Feel
• StOpMI is a common approach, but it’s not enough
![Page 5: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/5.jpg)
(5)
What is Netbeans?• A GUI development Platform
– Generic building blocks for developing any GUI
• A Java Development Environment (Netbeans IDE)– The Netbeans IDE is just one application built on top of the
GUI development platform
• A mature open source project lead by Sun– Started as a private company in 1997, Open source since 2000– Free version of the Forte IDE
Modulesof the IDE
Framework +Modules =Netbeans IDEEditor Debug.
Javadoc
CVS
…
ANT EJB dev.XML
Platform
Netbeans
![Page 6: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/6.jpg)
(6)
Why Netbeans? • It adds value to plain Swing and StOpMI
– It provides an architecture and development guidelines– It has generic functionality needed by all GUI developers– It can easily be combined with StopMi and Swing
• It is made for collaborative, multi-team development– Open source project: several NB teams + external contributors
• It’s well done and well organized– Technically sound, standard based– Well documented– Quality Assurance done by Sun, tested by large community
![Page 7: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/7.jpg)
(7)
Outline• Introduction
– Background– What is Netbeans– Why Netbeans?
• Netbeans explained– Architecture, APIs, Modularity– Netbeans “added value” and Risks
• Integrating Netbeans with our environment– StOPMi + Netbeans– Integrating existing GUIs
• Outline of StOpMI Phase 2 Project– Proposed mandate & organization
• Conclusions
![Page 8: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/8.jpg)
(8)
What is an “Architecture”• A set of software components
– Framework components: Explorer, Menu, Toolbar, OutputWindow
– Task-specific Modules
• A set of contracts between them (in form of APIs)– Services that the Framework provides to the Modules– Services (information) that the Modules provides to the
Framework
• A set of guidelines– How to produce components – How to fit them into the Framework
![Page 9: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/9.jpg)
(9)
Example of Architecture
Module
write(“log message”)
getNodes()
getActions()
Explorer
Menus
Toolbars
Output Windows
![Page 10: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/10.jpg)
(10)
Netbeans Architecture
Module
API (Services) provided by Framework
API(Services)
provided byFramework
Explorer
Menus
Toolbars
Output Windows
API that has to be provided by Module
![Page 11: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/11.jpg)
(11)
Modular, Configurable, Extensible• Modular
– Netbeans module = “Shrink-wrapped” component that can be plugged into the Netbeans Frame
– It contains code + configuration (Menus, toolbars, nodes)
• Configurable– Modules can be added/removed independently and at run-time– Configuration based on XML => changes without touching
Java code
• Extensible– Writing new Modules– Extend (modify) existing Netbeans components (e.g. Explorer,
WindowManager, …)
![Page 12: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/12.jpg)
(12)
Demo• Generic GUI functionality
– Menus, Toolbars, Shortcuts, status line, help screens– Workspaces, Settings panels, Tree-Tables, Wizards – Persistence
• Explorer– Actions, Icons, Tooltips, keyboard short-cuts– Pop-up menus with dynamic calculation of items
• Dynamic adaptation of features– Grayed-out menu items and icons– Changing icons
• Module activation/desactivation– Modules add/remove menus, toolbars, pop-up menus, etc.– Dependencies between modules are enforced
• 3rd party components– E.g. scripting console
![Page 13: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/13.jpg)
(13)
Why is it good for collaboration?• Collaboration Scenario
– GUI for LHC Operations– Plug-ins from Alarms, BISCoTO, J/Xcluck, CMW Console, etc.
• Architecture and Guidelines– Make sure that components fit together and can be plugged in
• Version management– Each module has a version number– Dependencies between versions of modules can be enforced– No “misterious” incompatibilities
• Flexible configuration– End Users can experiment with ergonomics– Best configuration can then be packed into Module as default
![Page 14: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/14.jpg)
(14)
Risks of Netbeans• One misbehaving module can affect others
– Modules from different providers are not isolated
• Is it too difficult to use?– Requires some learning (not for novice programmers)– Can be mitigated by on-site expertise
• Does it have hidden flaws?– Memory leaks? Nasty bugs?
• Is it too big, too slow?
• What if IBM buys SUN?– Netbeans project would be discontinued – Would NB
community survive?– We still have the sources…
![Page 15: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/15.jpg)
(15)
Outline• Introduction
– Background– What is Netbeans– Why Netbeans?
• Netbeans explained– Architecture, APIs, Modularity– Netbeans “added value” and Risks
• Integrating Netbeans with our environment– StOPMi + Netbeans– Integrating existing GUIs
• Outline of StOpMI Phase 2 Project– Proposed mandate & organization
• Conclusions
![Page 16: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/16.jpg)
(16)
Integrating Netbeans and StopMi 1E
xplo
rer
MenusToolbars
Output Windows
StOpMI Panels
(OPBeans)
StopMe Look&Feel • Taken from StOPMi– Look&Feel– Modules (GUI panels)
written with OPBeans – OPController can be used
internally in Modules
• Taken from Netbeans– Architecture + APIs – Explorer, Menus, Toolbars,
OutputWindow, etc.
• Integration easy because complementary– Netbeans is the “frame”, StOpMI the “content” (Module)– The Architecture & API have to be respected
![Page 17: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/17.jpg)
(17)
Integrating with existing GUIs• Effort depends on level of integration (c.f. next slide)• Integration of existing Swing JPanels is straight-
forward
• Effort to make your GUIs to use Netbeans functionality:– Use Netbeans output Windows: easy– Use Netbeans Menus + toolbar configuration: easy– Use Explorer: need to use Netbeans data structure (Nodes)
• Development Tools– JPanels can be developed with JBuilder/JDeveloper– Netbeans IDE is needed for integration into Netbeans Frame
![Page 18: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/18.jpg)
(18)
Loose vs. Strong Integration• Loose integration: (integrate GUI panels as-is)
Straight-forward limited functionality (e.g. no Explorer) Redundancy, little/no sharing Low dependency on Netbeans
• Strong integration (Use Netbeans components) Good interaction/data sharing with other modules Full fledged functionality Faster development, no re-inventing of wheels Longer, steeper learning phase Strong dependency on Netbeans
![Page 19: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/19.jpg)
(19)
Hypothetical Example of Integration
![Page 20: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/20.jpg)
(20)
• Loose integration– Take the whole BISCoTO expert as a whole – Netbeans Explorer not used– One item in a Netbeans Menu that launches the whole Biscoto
• Strong(er) integration– BISCoTO Navigator reengineered to use Netbeans Explorer– NB Explorer launches BISCoTO Panels– BISCoTO module adds a menus & toolbar with several items– BISCoTO panels use Netbeans output windows + status bars– BISCoTO donates generic panels to StOpMI Phase 2 ;-)
Hypothetical Example of Integration
![Page 21: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/21.jpg)
(21)
Outline• Introduction
– Background– What is Netbeans– Why Netbeans?
• Netbeans explained– Architecture, APIs, Modularity– Netbeans “added value” and Risks
• Integrating Netbeans with our environment– StOPMi + Netbeans– Integrating existing GUIs
• Outline of StOpMI Phase 2 Project– Proposed mandate & organization
• Conclusions
![Page 22: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/22.jpg)
(22)
“StOpMI Phase 2” Project• Mandate
– “Interpret” NetBeans & StOpMI in accelerator controls context– Support users (GUI developers) in adopting and applying it
• Small core team– Help users set up their development environment + tools– Provide training, examples, documentation entry points, FAQ– Provide “helpdesk” + project-specific consultancy to users– Provide additional tools (testing!)– Identify/adapt/write shared components– Migrate existing StOpMI-based applications– Do not write (or reengineer) new and non-StOpMI Applications
• Netbeans developers in projects– Learn NetBeans with help of core team– Write (or reengineer) Applications– Help NB-agnostic colleagues to integrate Swing panels
![Page 23: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/23.jpg)
(23)
Cost/Benefit of your Commitment• Benefits
Full-fledged GUI functionality Relatively fast development Standard, compatible approach Support and maintenance from a dedicated team Sharing of components (in-house and 3rd party)
• Costs Manpower for learning and reengineering Dependency on NetBeans You do not know all the code
![Page 24: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/24.jpg)
(24)
Conclusions
• We need a common approach
• Netbeans seems a valid solution
• StOpMI and Netbeans will be combined
• We can make it work with a consultancy-oriented project team
![Page 25: (1) StOpMI Phase 2 or “What about using NetBeans as a Framework for our GUIs?” Vito Baggiolini 24-May-2002.](https://reader035.fdocuments.in/reader035/viewer/2022062401/5a4d1b207f8b9ab05999514b/html5/thumbnails/25.jpg)
(25)