SlideShare a Scribd company logo
1 of 23

      
       MVC in NetBeans 
       and other modular applications 
       
      
     
      
       Jaroslav Tulach

      
       Agenda 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       MVC 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
      
     
      
       
      
     
      
       http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/

      
       Model/View/Presenter 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
      
     
      
       http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/

      
       
      
     
      
       Dialogs & Wizards API 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       
      
     
      
       Actions 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Actions in NetBeans 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Critique of MVC 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       DCI 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
      
     
      
       http://www.artima.com/articles/dci_vision.html

      
       DCI Actions in NetBeans  
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       DCI in NetBeans  
      
     
      Action 
      
     
      Selection 
      
     
      Morphs Selection 
      to Action's model 
      
       
       
       
       
       
       
       
       
       
       
       
       
      
     
      Editor 
      
     
      Explorer 
      
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      
     
      Image 
      viewer

      
       Lookup 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Exposing Window State 
      
     
      
       class   MyWindow   
       extends  org.openide.windows.TopComponent  { 
       private  JEditorPane pane; 
       
       public   org.openide.util.Lookup getLookup() { 
       return  Lookups.singleton(pane.getDocument()); 
       } 
       }

      
       Querying 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Listening 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Create Own Lookup 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Morphing 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Actions MVC and Modularity 
      
     
      Defined together as MVP 
      
       
       
       
       
       
       
       
       
       
       
       
       
      
     
      TopComponent1 
      module A 
      
     
      An Action 
      
     
      Common 
      Interface 
      
     
      TopComponent2 
      module B

      
       Context Actions 
      
     
      
       ,[object Object],
       ,[object Object],
      
     
      
       public class FooAction extends AbstractAction implements LookupListener, ContextAwareAction { 
       private Lookup context; 
       Lookup.Result lkpInfo; 
       public FooAction() { 
       this( Utilities.actionsGlobalContext() ); 
       } 
       private FooAction(Lookup context) { 
       this.context = context; 
       } 
       void init() { 
       Lookup.Template tpl = new Lookup.Template( Whatever.class ); 
       lkpInfo = context.lookup (tpl); lkpInfo.addLookupListener(this); resultChanged(null); 
       } 
       public boolean isEnabled() { 
       init(); return super.isEnabled(); 
       } 
       public Action createContextAwareInstance(Lookup context) { 
       return  new FooAction(context); 
       } 
       }

      
       Into the Future 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Into the Future II 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Conclusion 
      
     
      
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],
       ,[object Object],

      
       Q&A

More Related Content

What's hot

[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework
ptlong96
 
Blossom 2.0 Presentation
Blossom 2.0 PresentationBlossom 2.0 Presentation
Blossom 2.0 Presentation
Tobias Mattsson
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 Metamodel
Dang Tuan
 
Bernard Chalk 21.doc
Bernard Chalk 21.docBernard Chalk 21.doc
Bernard Chalk 21.doc
butest
 
01 persistence and domain modeling
01 persistence and domain modeling01 persistence and domain modeling
01 persistence and domain modeling
thirumuru2012
 

What's hot (15)

Course syllabus from ingenious
Course syllabus from ingeniousCourse syllabus from ingenious
Course syllabus from ingenious
 
Free EJB Tutorial | VirtualNuggets
Free EJB Tutorial | VirtualNuggetsFree EJB Tutorial | VirtualNuggets
Free EJB Tutorial | VirtualNuggets
 
Portlet factory 101
Portlet factory 101Portlet factory 101
Portlet factory 101
 
Ejb (1)
Ejb (1)Ejb (1)
Ejb (1)
 
UI innovation with SAP NetWeaver Gateway
UI innovation with SAP NetWeaver GatewayUI innovation with SAP NetWeaver Gateway
UI innovation with SAP NetWeaver Gateway
 
Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011
 
[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework[S lide] java_sig-spring-framework
[S lide] java_sig-spring-framework
 
Blossom 2.0 Presentation
Blossom 2.0 PresentationBlossom 2.0 Presentation
Blossom 2.0 Presentation
 
Sotona
SotonaSotona
Sotona
 
Unit4wt
Unit4wtUnit4wt
Unit4wt
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 Metamodel
 
Feedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual PracticalFeedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual Practical
 
Bernard Chalk 21.doc
Bernard Chalk 21.docBernard Chalk 21.doc
Bernard Chalk 21.doc
 
01 persistence and domain modeling
01 persistence and domain modeling01 persistence and domain modeling
01 persistence and domain modeling
 
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final2012 04-09-v2-tdp-1167-cdi-bestpractices-final
2012 04-09-v2-tdp-1167-cdi-bestpractices-final
 

Similar to MVC/DCI in NetBeans by Jaroslav Tulach

[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
javablend
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdf
Novell
 
AngularJS for designers and developers
AngularJS for designers and developersAngularJS for designers and developers
AngularJS for designers and developers
Kai Koenig
 
Radu’S Robots
Radu’S RobotsRadu’S Robots
Radu’S Robots
raxorio
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorized
roialdaag
 

Similar to MVC/DCI in NetBeans by Jaroslav Tulach (20)

Spring MVC introduction HVA
Spring MVC introduction HVASpring MVC introduction HVA
Spring MVC introduction HVA
 
MV(C, mvvm) in iOS and ReactiveCocoa
MV(C, mvvm) in iOS and ReactiveCocoaMV(C, mvvm) in iOS and ReactiveCocoa
MV(C, mvvm) in iOS and ReactiveCocoa
 
Design patterns
Design patternsDesign patterns
Design patterns
 
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
[Pilarczyk] Adrenaline programing implementing - SOA and BPM in your application
 
BSM201.pdf
BSM201.pdfBSM201.pdf
BSM201.pdf
 
Pure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextPure Ejb Within An Agile Context
Pure Ejb Within An Agile Context
 
AngularJS for designers and developers
AngularJS for designers and developersAngularJS for designers and developers
AngularJS for designers and developers
 
Business Service Management on the Fly—In under 60 Minutes!
Business Service Management on the Fly—In under 60 Minutes!Business Service Management on the Fly—In under 60 Minutes!
Business Service Management on the Fly—In under 60 Minutes!
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
iOS Design Patterns
iOS Design PatternsiOS Design Patterns
iOS Design Patterns
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Radu’S Robots
Radu’S RobotsRadu’S Robots
Radu’S Robots
 
Models used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVMModels used in iOS programming, with a focus on MVVM
Models used in iOS programming, with a focus on MVVM
 
MVVM for Modern Applications
MVVM for Modern ApplicationsMVVM for Modern Applications
MVVM for Modern Applications
 
Java Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.CatagorizedJava Edge.2008.Web.Frameworks.Catagorized
Java Edge.2008.Web.Frameworks.Catagorized
 
jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture jQquerysummit - Large-scale JavaScript Application Architecture
jQquerysummit - Large-scale JavaScript Application Architecture
 
Architectural Design Pattern: Android
Architectural Design Pattern: AndroidArchitectural Design Pattern: Android
Architectural Design Pattern: Android
 
Class 02 Objective C
Class 02   Objective CClass 02   Objective C
Class 02 Objective C
 
Techdays 2013 the road to end user self service with service manager 2012
Techdays 2013   the road to end user self service with service manager 2012Techdays 2013   the road to end user self service with service manager 2012
Techdays 2013 the road to end user self service with service manager 2012
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

MVC/DCI in NetBeans by Jaroslav Tulach

  • 1. MVC in NetBeans and other modular applications Jaroslav Tulach
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. DCI in NetBeans Action Selection Morphs Selection to Action's model Editor Explorer Image viewer
  • 12.
  • 13. Exposing Window State class MyWindow extends org.openide.windows.TopComponent { private JEditorPane pane; public org.openide.util.Lookup getLookup() { return Lookups.singleton(pane.getDocument()); } }
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Actions MVC and Modularity Defined together as MVP TopComponent1 module A An Action Common Interface TopComponent2 module B
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. Q&A