SlideShare une entreprise Scribd logo
1  sur  37
Integrating external products into Eclipse Eclipse Day India 2011 Presenters:  Aditya Madduri Girish Kumar Balre
Agenda Need for Integration Challenges in Integration Eclipse Integration Points Discussing different scenarios: Web Services Testing Tool  Win32 Applications Swing Applications
Leverage Eclipse’s predefined facilities and usability Enforce company standards Multiple tools under ONE application (e.g., IDE) Improved usage of the screen real estate Increased functionality thereby increased productivity Retaining Legacy Applications Huge customer base Huge effort for full migration Need for Integration
Challenges in Integration Communication  Between different technologies Between different languages Attaching to Eclipse UI Hosting foreign technology inside Eclipse UI Event Handling, and  Wiring between views, menus etc
Eclipse Integration Points Editor/View integration Outline/Properties View integration Problems View Integration Toolbar/menu actions Perspective Preferences
Agenda… Need for Integration Challenges in Integration Discussing different scenarios Web apps  Win32 apps Swing apps
Integrating Web Applications Need a web server Eclipse ships Jetty Server Configure any server using WTP Launching application Toolbar/Menu actions Needs Artifacts – Use Wizards Links to different pages Views SWT Trees Communicate between Web app & Eclipse controls Eclipse  Web App (change URLs) Web App  Eclipse (???)
Example: Progress Actional Diagnostics Progress Actional Diagnostics Progress Web Application with comprehensive Web Services testing capabilities having using browser front end  Rich functionality Extensive support  for various bindings Pseudo code™ view, no XML required Raw view Pseudo code view
Example: Progress Actional Diagnostics (contd.) Integration with Eclipse IDE General Wizards to create a Web Service Test Allow user to begin testing immediately sans  wizards using Untitled WS Test File(a la Untitled Text File)  Editor Persist/load changes from custom file on Left pane Left pane and right pane need to be kept in synch Maintain state- mark as dirty when messages sent/received
Example: Progress Actional Diagnostics (contd.) Web Application Root Contract Binding Operation Messages Right Pane: Browser Component Left Pane: Tree for intuitive navigation
Example: Progress Actional Diagnostics (contd.) Changes to the tree should reflect in the browser and vice-versa SWT Tree Browser Component
Example: Progress Actional Diagnostics (contd.) Synching between the Tree and the Browser Tree  Browser Straightforward - Just need to change the URL set on the browser component Browser  Tree Complicated - ???
Example: Progress Actional Diagnostics (contd.) Producer Consumer Communication Model The design pattern for sending messages between two or more clients. Consumer/subscriber     Producer/publisher    Eclipse Editor WS Web Application Send Messages Listens Messages
Example: Progress Actional Diagnostics (contd.) Consumer/subscriber On receiving Message Eclipse Editor Parses the message Listens to Messages Updates the artifact file  with test’s current state Updates and refreshes the tree
Agenda… Need for Integration Challenges in Integration Discussing different scenarios Web apps Win32 apps Swing apps
Integrating Win32 Applications Use case: Hosting and Integrating a win32 application inside a Eclipse IDE. Hosting:Bringing a win32 app to open inside an Eclipse UI Integrating: The win32 app needs to Respond to Eclipse’s menu actions (Open, Save, Exit) Respond to resizing, minimizing, closing Fire events to other Eclipse views
Desktop Integrating Win32 Applications  (contd.) Hosting:Opening a win32 app to open inside an Eclipse Solution: Each window has a handle (hWnd) property i.e., a UID Win32 API offers a SetParent function. An application can use  	the SetParent function to set the  parent window of a pop-up,  overlapped, or child window. org.eclipse.swt.widgets.Controlhas a handle property which is the hWnd i.e., this control’s unique identification ID Window1 Window 2 Child Window 1 Window 3
Interprocess communication ,[object Object]
Message-based IPC
Procedure call IPC
Shared memory IPCIntegrating Win32 Applications  (contd.) Integrating: This involves the win32 app to Responds to Eclipse’s menu actions Responds to resizing, minimizing, closing Is capable to firing events to other Eclipse views Process2 Process1
Example: Progress OpenEdgeAppBuilder IDE API ,[object Object]
hideView
deleteView
getViewHwnd
setChildWindow
addWindow
setViewTitleInter process communication Socket Communication Eclipse IDE   Win32 Application AppicationAPI ,[object Object]
hideView
deleteView
getViewHwnd
setChildWindow
addWindow
setViewTitleEclipse Framework (org.eclipse.swt.internal.win32) ,[object Object]
setWindowPosition
showWindow
getWindow

Contenu connexe

Tendances

Writing and Testing JavaScript-heavy Web 2.0 apps with JSUnit
Writing and Testing JavaScript-heavy Web 2.0 apps with JSUnitWriting and Testing JavaScript-heavy Web 2.0 apps with JSUnit
Writing and Testing JavaScript-heavy Web 2.0 apps with JSUnitAlex Chaffee
 
React 101 by Anatoliy Sieryi
React 101 by Anatoliy Sieryi React 101 by Anatoliy Sieryi
React 101 by Anatoliy Sieryi Binary Studio
 
Eclipse & android setup
Eclipse & android setupEclipse & android setup
Eclipse & android setupChina Bigs
 
Installing JDK and first java program
Installing JDK and first java programInstalling JDK and first java program
Installing JDK and first java programsunmitraeducation
 
Automated Xcode 7 UI Testing
Automated Xcode 7 UI TestingAutomated Xcode 7 UI Testing
Automated Xcode 7 UI TestingJouni Miettunen
 
Servlet and jsp development with eclipse wtp
Servlet and jsp development with eclipse wtpServlet and jsp development with eclipse wtp
Servlet and jsp development with eclipse wtpodilodif
 
Mobile Worshop Lab guide
Mobile Worshop Lab guideMobile Worshop Lab guide
Mobile Worshop Lab guideMan Chan
 
2013 Human Talks - Vaadin Teaser in 10 minutes
2013 Human Talks - Vaadin Teaser in 10 minutes2013 Human Talks - Vaadin Teaser in 10 minutes
2013 Human Talks - Vaadin Teaser in 10 minutesNicolas Fränkel
 
iOS UI Testing in Xcode
iOS UI Testing in XcodeiOS UI Testing in Xcode
iOS UI Testing in XcodeJz Chang
 
Compiling With Eclipse
Compiling With EclipseCompiling With Eclipse
Compiling With Eclipsesatriahelmy
 
Testing iOS10 Apps with Appium and its new XCUITest backend
Testing iOS10 Apps with Appium and its new XCUITest backendTesting iOS10 Apps with Appium and its new XCUITest backend
Testing iOS10 Apps with Appium and its new XCUITest backendTestplus GmbH
 
SwtBot: Unit Testing Made Easy
SwtBot: Unit Testing Made EasySwtBot: Unit Testing Made Easy
SwtBot: Unit Testing Made EasyAnkit Goel
 

Tendances (19)

Installing the java sdk
Installing the java sdkInstalling the java sdk
Installing the java sdk
 
Writing and Testing JavaScript-heavy Web 2.0 apps with JSUnit
Writing and Testing JavaScript-heavy Web 2.0 apps with JSUnitWriting and Testing JavaScript-heavy Web 2.0 apps with JSUnit
Writing and Testing JavaScript-heavy Web 2.0 apps with JSUnit
 
JsUnit
JsUnitJsUnit
JsUnit
 
React 101 by Anatoliy Sieryi
React 101 by Anatoliy Sieryi React 101 by Anatoliy Sieryi
React 101 by Anatoliy Sieryi
 
Class 1
Class 1Class 1
Class 1
 
Eclipse & android setup
Eclipse & android setupEclipse & android setup
Eclipse & android setup
 
Installing JDK and first java program
Installing JDK and first java programInstalling JDK and first java program
Installing JDK and first java program
 
Automated Xcode 7 UI Testing
Automated Xcode 7 UI TestingAutomated Xcode 7 UI Testing
Automated Xcode 7 UI Testing
 
Servlet and jsp development with eclipse wtp
Servlet and jsp development with eclipse wtpServlet and jsp development with eclipse wtp
Servlet and jsp development with eclipse wtp
 
Mobile Worshop Lab guide
Mobile Worshop Lab guideMobile Worshop Lab guide
Mobile Worshop Lab guide
 
 xctest
 xctest xctest
 xctest
 
2013 Human Talks - Vaadin Teaser in 10 minutes
2013 Human Talks - Vaadin Teaser in 10 minutes2013 Human Talks - Vaadin Teaser in 10 minutes
2013 Human Talks - Vaadin Teaser in 10 minutes
 
iOS UI Testing in Xcode
iOS UI Testing in XcodeiOS UI Testing in Xcode
iOS UI Testing in Xcode
 
Compiling With Eclipse
Compiling With EclipseCompiling With Eclipse
Compiling With Eclipse
 
Testing iOS10 Apps with Appium and its new XCUITest backend
Testing iOS10 Apps with Appium and its new XCUITest backendTesting iOS10 Apps with Appium and its new XCUITest backend
Testing iOS10 Apps with Appium and its new XCUITest backend
 
Gwt portlet
Gwt portletGwt portlet
Gwt portlet
 
JAVA_STEP_V7
JAVA_STEP_V7JAVA_STEP_V7
JAVA_STEP_V7
 
SwtBot: Unit Testing Made Easy
SwtBot: Unit Testing Made EasySwtBot: Unit Testing Made Easy
SwtBot: Unit Testing Made Easy
 
Activity
ActivityActivity
Activity
 

En vedette (7)

Soportes contables
Soportes contablesSoportes contables
Soportes contables
 
Pactosocial
PactosocialPactosocial
Pactosocial
 
Windows movie maker
Windows movie makerWindows movie maker
Windows movie maker
 
Artículo gestion hotelera
Artículo gestion hoteleraArtículo gestion hotelera
Artículo gestion hotelera
 
Las tic
Las ticLas tic
Las tic
 
Presentación2q
Presentación2qPresentación2q
Presentación2q
 
Diagrama del reproductor
Diagrama del reproductorDiagrama del reproductor
Diagrama del reproductor
 

Similaire à Integrating external products into Eclipse IDE

Android Tutorial
Android TutorialAndroid Tutorial
Android TutorialFun2Do Labs
 
Kony - End-to-End Proof of Technology
Kony - End-to-End Proof of TechnologyKony - End-to-End Proof of Technology
Kony - End-to-End Proof of TechnologyDipesh Mukerji
 
Google Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEAGoogle Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEAnerazz08
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-eehomeworkping3
 
Technology and Android.pptx
Technology and Android.pptxTechnology and Android.pptx
Technology and Android.pptxmuthulakshmi cse
 
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...Fwdays
 
WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012Dmitri Artamonov
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentProf. Erwin Globio
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation supportAlan Dix
 
Cloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveCloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveDave McCrory
 
Moving to Microsoft Visual Basic .NET
Moving to Microsoft Visual Basic .NETMoving to Microsoft Visual Basic .NET
Moving to Microsoft Visual Basic .NETV Sanchez
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewelljwi11iams
 
Ios development 2
Ios development 2Ios development 2
Ios development 2elnaqah
 

Similaire à Integrating external products into Eclipse IDE (20)

Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
 
Kony - End-to-End Proof of Technology
Kony - End-to-End Proof of TechnologyKony - End-to-End Proof of Technology
Kony - End-to-End Proof of Technology
 
Google Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEAGoogle Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEA
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-ee
 
Technology and Android.pptx
Technology and Android.pptxTechnology and Android.pptx
Technology and Android.pptx
 
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
 
WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012
 
GUI JAVA PROG ~hmftj
GUI  JAVA PROG ~hmftjGUI  JAVA PROG ~hmftj
GUI JAVA PROG ~hmftj
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Android Deep Dive
Android Deep DiveAndroid Deep Dive
Android Deep Dive
 
HCI 3e - Ch 8: Implementation support
HCI 3e - Ch 8:  Implementation supportHCI 3e - Ch 8:  Implementation support
HCI 3e - Ch 8: Implementation support
 
DevNation
DevNation DevNation
DevNation
 
Cloud Foundry a Developer's Perspective
Cloud Foundry a Developer's PerspectiveCloud Foundry a Developer's Perspective
Cloud Foundry a Developer's Perspective
 
Moving to Microsoft Visual Basic .NET
Moving to Microsoft Visual Basic .NETMoving to Microsoft Visual Basic .NET
Moving to Microsoft Visual Basic .NET
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Vara Framework
Vara FrameworkVara Framework
Vara Framework
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewell
 
Windows 8 BootCamp
Windows 8 BootCampWindows 8 BootCamp
Windows 8 BootCamp
 
Ios development 2
Ios development 2Ios development 2
Ios development 2
 

Dernier

Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 

Dernier (20)

Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 

Integrating external products into Eclipse IDE

  • 1. Integrating external products into Eclipse Eclipse Day India 2011 Presenters: Aditya Madduri Girish Kumar Balre
  • 2. Agenda Need for Integration Challenges in Integration Eclipse Integration Points Discussing different scenarios: Web Services Testing Tool Win32 Applications Swing Applications
  • 3. Leverage Eclipse’s predefined facilities and usability Enforce company standards Multiple tools under ONE application (e.g., IDE) Improved usage of the screen real estate Increased functionality thereby increased productivity Retaining Legacy Applications Huge customer base Huge effort for full migration Need for Integration
  • 4. Challenges in Integration Communication Between different technologies Between different languages Attaching to Eclipse UI Hosting foreign technology inside Eclipse UI Event Handling, and Wiring between views, menus etc
  • 5. Eclipse Integration Points Editor/View integration Outline/Properties View integration Problems View Integration Toolbar/menu actions Perspective Preferences
  • 6. Agenda… Need for Integration Challenges in Integration Discussing different scenarios Web apps Win32 apps Swing apps
  • 7. Integrating Web Applications Need a web server Eclipse ships Jetty Server Configure any server using WTP Launching application Toolbar/Menu actions Needs Artifacts – Use Wizards Links to different pages Views SWT Trees Communicate between Web app & Eclipse controls Eclipse  Web App (change URLs) Web App  Eclipse (???)
  • 8. Example: Progress Actional Diagnostics Progress Actional Diagnostics Progress Web Application with comprehensive Web Services testing capabilities having using browser front end Rich functionality Extensive support for various bindings Pseudo code™ view, no XML required Raw view Pseudo code view
  • 9. Example: Progress Actional Diagnostics (contd.) Integration with Eclipse IDE General Wizards to create a Web Service Test Allow user to begin testing immediately sans wizards using Untitled WS Test File(a la Untitled Text File) Editor Persist/load changes from custom file on Left pane Left pane and right pane need to be kept in synch Maintain state- mark as dirty when messages sent/received
  • 10. Example: Progress Actional Diagnostics (contd.) Web Application Root Contract Binding Operation Messages Right Pane: Browser Component Left Pane: Tree for intuitive navigation
  • 11. Example: Progress Actional Diagnostics (contd.) Changes to the tree should reflect in the browser and vice-versa SWT Tree Browser Component
  • 12. Example: Progress Actional Diagnostics (contd.) Synching between the Tree and the Browser Tree  Browser Straightforward - Just need to change the URL set on the browser component Browser  Tree Complicated - ???
  • 13. Example: Progress Actional Diagnostics (contd.) Producer Consumer Communication Model The design pattern for sending messages between two or more clients. Consumer/subscriber Producer/publisher Eclipse Editor WS Web Application Send Messages Listens Messages
  • 14. Example: Progress Actional Diagnostics (contd.) Consumer/subscriber On receiving Message Eclipse Editor Parses the message Listens to Messages Updates the artifact file with test’s current state Updates and refreshes the tree
  • 15. Agenda… Need for Integration Challenges in Integration Discussing different scenarios Web apps Win32 apps Swing apps
  • 16. Integrating Win32 Applications Use case: Hosting and Integrating a win32 application inside a Eclipse IDE. Hosting:Bringing a win32 app to open inside an Eclipse UI Integrating: The win32 app needs to Respond to Eclipse’s menu actions (Open, Save, Exit) Respond to resizing, minimizing, closing Fire events to other Eclipse views
  • 17. Desktop Integrating Win32 Applications (contd.) Hosting:Opening a win32 app to open inside an Eclipse Solution: Each window has a handle (hWnd) property i.e., a UID Win32 API offers a SetParent function. An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. org.eclipse.swt.widgets.Controlhas a handle property which is the hWnd i.e., this control’s unique identification ID Window1 Window 2 Child Window 1 Window 3
  • 18.
  • 21. Shared memory IPCIntegrating Win32 Applications (contd.) Integrating: This involves the win32 app to Responds to Eclipse’s menu actions Responds to resizing, minimizing, closing Is capable to firing events to other Eclipse views Process2 Process1
  • 22.
  • 28.
  • 34.
  • 40. Example: Progress OpenEdgeAppBuilder (contd.) AppBuilder showView hideView deleteView getViewHwnd setEmbeddedWindow addWindow setViewTitle isIDERunning IDE_Command IDE showView hideView deleteView getViewHwnd setEmbeddedWindow addWindow setViewTitle AppBuilder IDE PVM Eclipse Framework TCP/IP Eclipse Framework showView hideView setPartName PVM SESSION:IDE-DEFAULT-PARENT-HWND hWindow:IDE-PARENT-HWND hWindow:IDE-WINDOW-TYPE
  • 41. Example: Progress OpenEdgeAppBuilder (contd.) AppBuilder IDE Open File Open File openLinkedEditor openABFile File Changes syncFromAB Editor gets Focus File Changes Editor loses Focus syncFromIDE Save File syncFromAB Save File saveLinkedEditor syncFromAB Close File unlinkEditor Close Editor closeABFile
  • 42. Example: DOTNET Designer & controls Inter process communication Socket Communication Eclipse IDE IPC Editor CLR Common Language Runtime Java runtime Prowin32 runtime Designer
  • 43. Example: DOTNET Designer & controls (contd.)
  • 44. Agenda… Need for Integration Challenges in Integration Discussing different scenarios Web apps Win32 apps Swing apps
  • 45. Swing – Need for integration Technology convergence - Eclipse platform as IDE Eclipse is SWT based (Editors, Views etc) Swing and SWT are parallel technologies 2 Options Convert Swing code to SWT Tedious and Costly migration Increases development and testing effort Integrate Swing with SWT – “Swing-SWT Bridge” Swing component dwells in SWT containers Write only bridge code Most preferred option
  • 46. Swing - Eclipse Integration points Editor/View integration Embed the main panel of Swing inside a composite. Trap and delegate Key binding actions Outline/Properties View integration Listen for selection - Update Swing/SWT Problems View Integration Validation markers Double click on problem - select Swing control
  • 47. Swing - Eclipse Integration points (contd.) Toolbar/menu actions Placeholder for Swing Editor specific actions. Preferences Migrate the app preferences to eclipse preferences Project level preferences as relevant Reverse integration – Swing to Eclipse Drive eclipse code from swing actions (For ex: new File wizard) Modal Swing dialogs
  • 48. Swing - Eclipse Integration points (contd.) Use effective code-bridge mechanisms Wrap and Delegate to Swing code/actions. Clean separation between SWT and Swing code. Interface dependencies
  • 49. SWT/AWT Bridge SWT/AWT bridge (Eclipse plugin) – part of SWT Embedding Swing application made easy. has API for creation of Swing Frame from SWT composite. Embeds the Swing frame in to the Bridge
  • 51. Example - Integrated Swing App in Eclipse Editor Existing Swing based graphical editors have been integrated tightly into Eclipse views.
  • 52. UI Threads – SWT & Swing have there own UI threads. Prevent/Pre-empt Deadlocks. Look and Feel – SWT has native look and feel. Swing look and feel has to be configured. Modal dialogs of SWT & Swing are independent Tab traversal, popup menus etc., have to be handled Clubbing various Swing entities in to one eclipse Issues
  • 53. Solutions Issues can be addressed as per their merit. For instance when Swing opens a model dialog it can block SWT SWT code should be written in such a way to delegate the events to the frame composite too
  • 54. Summary Integrated environment – Good for the user Its possible to integrate External products built on foreign technologies inside Eclipse Things to take care Optimal technique to communicate between different environments Try to make full use of Eclipse offered usability
  • 55. References http://web.progress.com/en/actional/actional-diagnostics.html http://web.progress.com/en/downloads.html http://www.eclipse.org/articles/article.php?file=Article-Swing-SWT-Integration/index.html

Notes de l'éditeur

  1. Need to provide a WSDL/WADL URLCreates a .mrp file for storing state/data of testingWizards to create a Web Service TestINPUT – WSDL/WADL URLOUTPUT – .mrp fileEditor support to open .mrp fileShow the stored tests state (.mrp file)Show the web-application as part of Editor
  2. File System Sender writes to a file Receiver reads from it But when does the receiver do the read? Often synchronized with file locking or lock files Special types of files can make file-based IPC easierMessage-Based IPC Sender formats data into a formal message With some form of address for receiver OS delivers message to receiver’s message input queue (might signal too) Receiver (when ready) reads a message from the queue Sender might or might not blockProcedure Call IPCInterprocess communication uses same procedure call interface as intraprocess Data passed as parameters Information returned via return values Complicated since destination procedure is in a different address space Generally, calling procedure blocks till call returnsShared Memory IPC Different processes share a common piece of memory Either physically or virtually Communications via normal reads/writes May need semaphores or locks In or associated with the shared memory
  3. AppBuilder: show, hide, delete : proxies for IDE viewgetViewHwnd: get window handlesetEmbeddedWindow: Sets the given view as the parent for the given windowHandleaddWindow: With this API multiple windows can be attached to a view. (add palette and )
  4. Description:1. A .w file can be opened from the IDE by double-clicking the file in the Project Explorer view, or by dragging the file from the the Project Explorer view onto the AppBuilder window. Alternatively, a .w file can be opened from theAppBuilder. In either case, the openLinkedEditor method is called in the IDE to link an OEIDE Editor instance to the AppBuilder. The actual file is opened in the editor and a copy via a temporary file, is opened in the AppBuilder. The editor and the AppBuilder have the same content.2. Using the Edit Code option (Section Editor) in the AppBuilder causes the AppBuilder to synchronize the changes to the temporary file (syncFromAB), and then it invokes the selectSection method to reposition the code to the trigger section for the selected widget. If there are no triggers defined for the selected widget, a default trigger is created when synchronizing. The editor gets updated from the AppBuilder.3. Any of the AppBuilder dialogs and windows can be used to modify the instance of the .w file in the AppBuilder.4. When the OEIDE Editor gets focus, the syncFromAB method is called in the AppBuilder to synchronize the file. The editor gets updated from the AppBuilder.5. Any of the OEIDE functionality, in particular templates, can be used to modify the instance of the .w file in the OEIDE Editor.6. When the editor loses focus, the syncFromIDE method is called in the AppBuilder to synchronize the file. The AppBuilder gets updated from the OEIDE Editor.7. When the file is saved in the IDE, the syncFromAB method is called in the AppBuilder to synchronize the file. The editor gets updated from the AppBuilder.8. When the file is saved in the AppBuilder, the file is synchronized (syncFromAB), and then the saveLinkedEditor method is used to save the file on the IDE side. The editor and the AppBuilder have the same content.9. When the file is closed in the AppBuilder, the unlinkEditor method is called in the IDE so the editor does not try to synchronize with the AppBuilder.10. When the file is closed in the IDE, the instance of the .w file in the AppBuilder is closed.
  5. .NET presentation container is used for users looking for a modern UI with very rich functionality that can be used to present their Progress applications. These customers want to be able to make use of the .NET presentation container with little or no knowledge of any of the .NET languages. SerializationDeserializationCodeDOMASTABL language