SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

Eclipse & android setup
Eclipse & android setupEclipse & android setup
Eclipse & android setup
China Bigs
 
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
Nicolas Fränkel
 

La actualidad más candente (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
 

Destacado (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
 

Similar a Integrating external products into eclipse

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
Dipesh Mukerji
 
WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012WinJS at NYC Code Camp 2012
WinJS at NYC Code Camp 2012
Dmitri Artamonov
 

Similar a Integrating external products into eclipse (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
 

Último

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
heathfieldcps1
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Último (20)

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
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
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
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
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
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
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
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 

Integrating external products into eclipse

  • 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

Notas del editor

  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