How do you effectively control commands, menus and handlers in a large pluggable application to get a consistent use of the commands across the complete application? This is definitely one of the areas where the Eclipse IDE is not a good sample application. Just notice how all team providers add commands with the same text and function and how multiple identical menu items some times show up...
Here the Adapter framework of Eclipse can be a big help if used properly.
While the Adapter framework arguably is one of the more difficult to understand and use properly, the is also a framework that will solve many of the problems you might face is larger non-trivial applications. Especially when used in conjunction with the menus extension point and handlers. This presentation will show how to use the adapter framework of the Eclipse framework with special emphasis on the menus and handlers.
Learn how VSE Script Server now optionally prints all input and output data into the server log using the new optional configuration parameters.For more information, visit http://ibm.co/PNo9Cb.
WEB BUSINESS PLATFORMS ON
THE ‘CLOUD’ – AN ENGINEERING
PERSPECTIVE
Harshavardhan “Harsh” Jegadeesan
Business Suite Core
SAPLabs, India
As part of cloud symposium, at ACM Bangalore Compute 2009
Cisco Localisation Toolkit: General OverviewGary Lefman
The Cisco Localisation Toolkit is an extensible product-agnostic tool for localising any internationalised product. This overview presents the localisation challenges that Cisco faced, and how the Cisco Localisation Toolkit solved them.
Learn how VSE Script Server now optionally prints all input and output data into the server log using the new optional configuration parameters.For more information, visit http://ibm.co/PNo9Cb.
WEB BUSINESS PLATFORMS ON
THE ‘CLOUD’ – AN ENGINEERING
PERSPECTIVE
Harshavardhan “Harsh” Jegadeesan
Business Suite Core
SAPLabs, India
As part of cloud symposium, at ACM Bangalore Compute 2009
Cisco Localisation Toolkit: General OverviewGary Lefman
The Cisco Localisation Toolkit is an extensible product-agnostic tool for localising any internationalised product. This overview presents the localisation challenges that Cisco faced, and how the Cisco Localisation Toolkit solved them.
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...Tonny Madsen
”Har du tænkt på at skifte til et leverandøruafhængigt udviklingsmiljø? Det er gratis, og du får ét udviklingsmiljø, som du kan programmere alt fra Java, C, C++ og PHP til databaser og webserver i. Vi får dig til at se værdien af værktøjet, og se flere forskellige eksempler på brugen af Eclipse i praksis.
Kom og hør formanden for eclipse.dk, Tonny Madsen, Direktør, RCP Kompaniet fortælle om Eclipse.
Eclipse er component-baseret, og du får indsigt i hvordan du sammensætter Eclipse til netop dine behov.”
In Danish
”Medbring din laptop, netbook, mac el.lign. og få i løbet af denne workshop dine første hands-on erfaringer med Eclipse.”
Arrangement for IDA.
In Danish
For PROSA:
Onsdag 26.1. Introduktion til Eclipse
Eclipse er et fremstormende open source-udviklingsmiljø (Eclipse IDE), der oprindeligt er udviklet med henblik på Java.
Kom og mød Tonny Madsen, formand for Eclipse Danmark, foreningen for både professionelle, virksomheder og brugere.
Tonny er til daglig direktør i RCP Company, der har specialiseret sig i udvikling, uddannelse og konsulentydelser inden for Eclipse.
Han vil give jer et overblik over platformen, både teknisk, projektmæssigt, organisering, muligheder, fremtiden etc.
An overview of the code that makes up the skeleton of a basic RCP application. This includes the basics for advisors and perspectives. This module also describes the basics of how to launch and debug an RCP application.
ITU - MDD – Model-to-Model TransformationsTonny Madsen
This presentation describes the use Model-to-Model transformations (M2M). It focus on the why, what and how.
This presentation is developed for MDD 2010 course at ITU, Denmark.
ITU - MDD - Textural Languages and GrammarsTonny Madsen
This presentation describes the use and design of textural domain specific language - DSL. It has two basic purposes:
Introduce you to some of the more important design criteria in language design
Introduce you to BNF
This presentation is developed for MDD 2010 course at ITU, Denmark.
EclipseCon '08 - Lessons Learned from an Enterprise RCP ApplicationTonny Madsen
During the implementation of a major financial application for a large financial institution, we learned a lot about how to use Eclipse RCP as an application platform and especially some of the short-comings of the current platform.
This long talk goes through some of the lessons we learned and discusses some of the changes that could be made to Eclipse RCP to get a better platform for enterprise applications.
This presentation describes the use of XText.
This presentation assumes a good knowledge of Data Modeling and Grammars as previously presented.
This presentation is developed for MDD 2010 course at ITU, Denmark.
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Tonny Madsen
Eclipse RCP – about of the box – is a fantastic platform for building applications. Especially if these are for engineer-like users
When Eclipse RCP is used for enterprise applications – like for banks – one of major shortcomings is found in the missing ability to control screen flows.
This talk describes how screen flow was implemented in a major banking application where we expect to add 2-300 screen flows, some very simple and some very complex.
javagruppen.dk - e4, the next generation Eclipse platformTonny Madsen
After 13 years, the Eclipse framework gets it second make-over. The new work is termed e4 and will be included in Eclipse 4.0.
In the first make-over the run-time was replaced in Eclipse 3.0 with OSGi to get a better and more stable foundation for plug-ins. This time the user interface and contributions are modernized for use in Eclipse 4.0.
In this session, we will see some of the insides of the new paradigms in e4.
Eclipse Summit Europe '10 - Test UI Aspects of Plug-insTonny Madsen
Testing the UI of an Eclipse plug-in is usually considered rather difficult and something that is best left for specialized tools. Also, the test is often considered very fragile and is expected to be updated whenever you make even the smallest change to your UI.
But that need not be so. By using a few rather simple tools and a few just as rules, you can test all the UI parts of an application...
This presentation was made for Eclipse Summit Europe 2010.
I translate Framework Design Guideline to Korean.
This Book is very impressed to me.
So I want to share Krzysztof Cwalina's Knowledge.
I re-edit his presentation and add my opinion.
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejen (In Dan...Tonny Madsen
”Har du tænkt på at skifte til et leverandøruafhængigt udviklingsmiljø? Det er gratis, og du får ét udviklingsmiljø, som du kan programmere alt fra Java, C, C++ og PHP til databaser og webserver i. Vi får dig til at se værdien af værktøjet, og se flere forskellige eksempler på brugen af Eclipse i praksis.
Kom og hør formanden for eclipse.dk, Tonny Madsen, Direktør, RCP Kompaniet fortælle om Eclipse.
Eclipse er component-baseret, og du får indsigt i hvordan du sammensætter Eclipse til netop dine behov.”
In Danish
”Medbring din laptop, netbook, mac el.lign. og få i løbet af denne workshop dine første hands-on erfaringer med Eclipse.”
Arrangement for IDA.
In Danish
For PROSA:
Onsdag 26.1. Introduktion til Eclipse
Eclipse er et fremstormende open source-udviklingsmiljø (Eclipse IDE), der oprindeligt er udviklet med henblik på Java.
Kom og mød Tonny Madsen, formand for Eclipse Danmark, foreningen for både professionelle, virksomheder og brugere.
Tonny er til daglig direktør i RCP Company, der har specialiseret sig i udvikling, uddannelse og konsulentydelser inden for Eclipse.
Han vil give jer et overblik over platformen, både teknisk, projektmæssigt, organisering, muligheder, fremtiden etc.
An overview of the code that makes up the skeleton of a basic RCP application. This includes the basics for advisors and perspectives. This module also describes the basics of how to launch and debug an RCP application.
ITU - MDD – Model-to-Model TransformationsTonny Madsen
This presentation describes the use Model-to-Model transformations (M2M). It focus on the why, what and how.
This presentation is developed for MDD 2010 course at ITU, Denmark.
ITU - MDD - Textural Languages and GrammarsTonny Madsen
This presentation describes the use and design of textural domain specific language - DSL. It has two basic purposes:
Introduce you to some of the more important design criteria in language design
Introduce you to BNF
This presentation is developed for MDD 2010 course at ITU, Denmark.
EclipseCon '08 - Lessons Learned from an Enterprise RCP ApplicationTonny Madsen
During the implementation of a major financial application for a large financial institution, we learned a lot about how to use Eclipse RCP as an application platform and especially some of the short-comings of the current platform.
This long talk goes through some of the lessons we learned and discusses some of the changes that could be made to Eclipse RCP to get a better platform for enterprise applications.
This presentation describes the use of XText.
This presentation assumes a good knowledge of Data Modeling and Grammars as previously presented.
This presentation is developed for MDD 2010 course at ITU, Denmark.
Eclipse Summit Europe '08 - Implementing Screen Flows in Eclipse RCP Applicat...Tonny Madsen
Eclipse RCP – about of the box – is a fantastic platform for building applications. Especially if these are for engineer-like users
When Eclipse RCP is used for enterprise applications – like for banks – one of major shortcomings is found in the missing ability to control screen flows.
This talk describes how screen flow was implemented in a major banking application where we expect to add 2-300 screen flows, some very simple and some very complex.
javagruppen.dk - e4, the next generation Eclipse platformTonny Madsen
After 13 years, the Eclipse framework gets it second make-over. The new work is termed e4 and will be included in Eclipse 4.0.
In the first make-over the run-time was replaced in Eclipse 3.0 with OSGi to get a better and more stable foundation for plug-ins. This time the user interface and contributions are modernized for use in Eclipse 4.0.
In this session, we will see some of the insides of the new paradigms in e4.
Eclipse Summit Europe '10 - Test UI Aspects of Plug-insTonny Madsen
Testing the UI of an Eclipse plug-in is usually considered rather difficult and something that is best left for specialized tools. Also, the test is often considered very fragile and is expected to be updated whenever you make even the smallest change to your UI.
But that need not be so. By using a few rather simple tools and a few just as rules, you can test all the UI parts of an application...
This presentation was made for Eclipse Summit Europe 2010.
I translate Framework Design Guideline to Korean.
This Book is very impressed to me.
So I want to share Krzysztof Cwalina's Knowledge.
I re-edit his presentation and add my opinion.
Lotusphere 2009
Session BP113
Zero to Portlet in 20 minutes or less
Paul T. Calhoun | CTO | NNSU
Agenda
Work Smarter Not Harder – The Portlet Factory Demystified
Zero to Portlet – Don't Blink !!
The Details – The Nitty Gritty
References – Places to get more info
Q & A
Track Keynote for the Requirements Definition & Management Track at the IBM Rational Software Conference 2009
Requirements Definition and Management encompasses all of the activities that revolve around eliciting, defining, elaborating, understanding, organizing, reviewing, and communicating business, user, and software requirements, as well as defining solutions based on those business goals and objectives. These activities are done because they help ensure that the applications that are developed solve the real business and customer problems. This track explores the experiences of organizations with tools, techniques, and processes used to effectively define and manage requirements and analyze systems. Analysts, architects, developers, project managers, and others interested in methodology and tools for defining, managing, and analyzing requirements should attend this track.
Presentation from DDD Sydney, May 28th, 2016
Buzz word! More buzz words! And another buzz word!! Now that that's out of the way, if you're thinking of heading down the microservices path, then how do you do it? How do you build the services? What do you need to think about if you're starting from scratch? What if you're converting a legacy app? How do we deal with versioning? Do we have to use a NoSQL solution, just because Netflix does? Do we need to use docker/containers? What about the code? Show me the code! Well, that's what this session is all about. Designing and building microservices in .NET and then handling a bunch of other concerns that a microservices approach will force you to think about. Sounds interesting, doesn't it? You betcha.
Multi-Dimensional Context-Aware Adaptation of Service Front-endsJean Vanderdonckt
This presentation contains the slides regarding the FP7 Serenoa project participating to the W3C Standardization action on Model-Based User Interface Design. Thsi was held during the FP7 Days on Internet of Services collaboration (Brussels, 16-17 October 2012). See http://ec.europa.eu/information_society/events/cf/ios12/stream-calendar.cfm?id=182&split=false
L0043 - Interfacing to Eclipse Standard ViewsTonny Madsen
Eclipse contains a large number of standard views that can be extended to support new languages or data models. This model focus on the interface to the most common Eclipse views: Problems View, Outline View, and the Properties View.
The graphical sub-system of the Eclipse platform is made up of two components: SWT, the Standard Widget Toolkit ;and JFace, an architecture-independent modeling layer. This module describes how JFace extends SWT with viewers, commands, wizards, dialogs, and field assist.
L0018 - SWT - The Standard Widget ToolkitTonny Madsen
The graphical sub-system of the Eclipse platform is made up of two components: SWT, the Standard Widget Toolkit; and JFace, an architecture independent modeling layer. This module describes how to use SWT in views and editors and how different resources must be managed.
L0016 - The Structure of an Eclipse Plug-inTonny Madsen
This is a detailed description of the different parts that makes up an Eclipse plug-in. The module focuses on the purpose of the different files of a plug-in such as plugin.xml and the OSGi manifest file, MANIFEST.MF. The module also describes how plug-ins are developed in Eclipse with PDE, the Plug-in Development Environment
L0001 - The Terminology of the Eclipse PlatformTonny Madsen
This is a basic walk-through of all the central concepts of the Eclipse platform and how these fit together. The primary goal of this module is to establish a common terminology.
This presentation describes Eclipse Modeling Framework – EMF. It has two basic purposes:
Introduce you to the EMF techniques needed in the rest of the course
Introduce you to the architecture and components of the EMF project
This presentation is developed for MDD 2010 course at ITU, Denmark.
This presentation shows how Eclipse plug-ins are developed. It has two purposes:
Introduce you to the architecture and techniques of a major component based application
Introduce you to basic Eclipse plug-in development – this will hopefully ease the needed programming in the rest of the course
This presentation is developed for MDD 2010 course at ITU, Denmark.
eclipse.dk - Eclipse RCP Under the HoodTonny Madsen
Denne event er en kombination af en tutorial day og en live demonstration af en "full featured" Eclipse RCP applikation hvor udviklingen kommenteres on-the-fly.
Medbring din laptop og prøv selv hvordan man forholdsvis let kan starte en Eclipse RCP applikation. Det er meget vigtigt at du allerede har Eclipse 3.6 installeret på maskinen.Følgende emner vil blive demonstreret / omtalt
Eclipse RCP Arkitektur
Konfiguration (OSGi console, plugin.xml, manifest.mf...)
Packaging
Extension Points
UI / SWT / JFace
Editors / Views
Building and Testing
EclipseCon '09 - The Happy Marriage of EMF, Data binding, UI Forms and Field ...Tonny Madsen
Imagine you have to develop a larger Eclipse RCP based application with many dozens - maybe hundreds - of views, dialogs and wizards all based on a large common EMF based data model. How do you make sure you get a consistent and modern interface that can be extended in the future without redesigning everything again and again?
This presentation describes different modeling techniques. It has three basic purposes:
Give you an overview of some of the different types of models
Give you a set of tools to decide how to create a (good) model for a problem
Give you an overview of some of the different modeling techniques
This presentation is developed for MDD 2010 course at ITU, Denmark
IDA - Fra forretningside til bundlinie: Eclipse følger dig hele vejenTonny Madsen
”Har du tænkt på at skifte til et leverandøruafhængigt udviklingsmiljø? Det er gratis, og du får ét udviklingsmiljø, som du kan programmere alt fra Java, C, C++ og PHP til databaser og webserver i. Vi får dig til at se værdien af værktøjet, og se flere forskellige eksempler på brugen af Eclipse i praksis.
Kom og hør formanden for eclipse.dk, Tonny Madsen, Direktør, RCP Kompaniet fortælle om Eclipse.
Eclipse er component-baseret, og du får indsigt i hvordan du sammensætter Eclipse til netop dine behov.”
Eclipse is probably best known as a first class Java IDE, but it is so much more than that.
In this talk, I will present the different tools that makes up the Eclipse Modeling Project from the simple (EMF) to the very complex (QVT/O). The emphasis will be on the immediately useful techniques with plenty of demonstrations.
Presentation made for notesnet.dk 2010-10-26
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
How world-class product teams are winning in the AI era by CEO and Founder, P...
EclipseCon '11 - Using Adapters to Handle Menus and Handlers in Large Scale Applications
1. Using Adapters to Handle Menus and Handlers in
Large Scale Applications
How do you effectively control commands, menus and handlers in a large pluggable
application to get a consistent use of the commands across the complete application?
This is definitely one of the areas where the Eclipse IDE is not a good sample application.
Just notice how all team providers add commands with the same text and function and
how multiple identical menu items some times show up...
Here the Adapter framework of Eclipse can be a big help if used properly.
While the Adapter framework arguably is one of the more difficult to understand and use
properly, the is also a framework that will solve many of the problems you might face is
larger non-trivial applications. Especially when used in conjunction with the menus
extension point and handlers. This presentation will show how to use the adapter
framework of the Eclipse framework with special emphasis on the menus and handlers.
Redistribution and other use of this material requires written permission from The RCP Company.
L0001 - 2010-11-27
2. The Agenda
The problem with commands and
handlers in large Eclipse based
applications
The Adapter framework of Eclipse
How to use the Adapter framework to
solve the problem with focus on the
actual code used
2
L0001 - 2010-11-27
3. Complexity of Handler Expressions
Expressions for handlers (activeWhen and
enabledWhen) are often difficult to get
correct
If the expression depends on internal
state a property tester is needed
The flow is more complicated
The tests get more involved
3
L0001 - 2010-11-27
4. The Problems
If we want to implement a specific
command for a large number of different
domain objects, then a large portion of
the code for the handles will be identical
E.g. handlers for “cut”, “print”, connect”,
etc
4
L0001 - 2010-11-27
5. The Problems
Multiple - basically identical - commands
In large enterprise applications, this is
almost impossible to manage
How about key bindings?
5
L0001 - 2010-11-27
6. The Idea
Given
a specific object in the domain
model (here a customer Benjamin”)
a command, we like to perform on
the object (here “Show Segment”)
...use the Adapter Manager of Eclipse to
get the type specific behavior for the
object
If no specific behavior can be found, the
command is not active
Use the same method in the generic
handler
6
L0001 - 2010-11-27
7. Why Adapters?
UI Concerns
Label Provider
Domain Model
Contact
Tree Providers
Content Providers
Segment
Customer
Domain Model
Contract Functionality
Edit
Print
Offer
Price Item
Call
Save
7
L0001 - 2010-11-27
8. Why Adapters?
UI Concerns
Label Provider
Domain Model
}
Contact
Tree Providers
Content Providers
Segment
Customer
Manager
Domain Model
Contract Functionality
Edit
Print
Offer
Price Item
Call
Save
8
L0001 - 2010-11-27
9. Adding Adapters
Implement the interface directly
Sub-class IAdaptable
Declare using org.eclipse.core.runtime.adapters
Register directly at run-time
<extension point="org.eclipse.core.runtime.adapters">
<factory
adaptableType="com.rcpcompany.ex.adapterhandlers.model.Segment"
class="com.rcpcompany.ex.adapterhandlers.adapters.SegmentAdapterFactory">
<adapter type="com.rcpcompany.ex.adapterhandlers.functionality.IDoShowSegment" />
</factory>
</extension>
9
L0001 - 2010-11-27
11. A Few Closing Remarks
The way the adapt expression works, it is best to place the the adapter in
the same plug-in as the domain model - see BugZilla #82973 for a long and
complicated description for the background
The adapt expression is going to be invoked often, so use stateless adapter
object rather than stateful adapters to the same adapter object can be re-
used
Put the interfaces for the relevant functionality - e.g. IDoShowSegment - in a
separate plug-in along with the declaration of the same commands
11
L0001 - 2010-11-27
12. Summing Up
All handlers will have almost identical
12
L0001 - 2010-11-27
13. Resources
This presentation is based on the same outline as the following blog entry
http://blog.rcp-company.com/2010/02/using-adapters-in-handlers-to-
control.html
13
L0001 - 2010-11-27
14. About Me
Tonny Madsen, Founder and Owner of The RCP Company
20 years of experience in system development in major
companies
9 years of experience with Eclipse and Eclipse RCP
Chairman of Eclipse.dk
Extern Lecturer at IT-University on Model Driven Development and
Domain Specific Languages
Regular speaker at EclipseCon, Eclipse Summit Europe, Eclipse
Summit India, etc
Reached via
tonny.madsen@rcp-company.com
Phone: +45 70 22 25 92
Twitter: tonnymadsen
Blog: http://blog.rcp-company.com/
LinkedIn: http://linkedin.com/in/tonnymadsen
14
L0001 - 2010-11-27
Editor's Notes
\n
\n
\n
Before &#x201C;checkEnabled&#x201D; was implemented in Eclipse (3.3 I believe), you also had to specify a visibleWhen expression which was a or&#x2019;ed together version of the activewhen expression for all relevant handlers. A difficult position\n
This often happens because the involved teams cannot\n
\n
This can entail all sorts of problems, where the top two are:\n- conflicts between the different involved interface - what is getNsme()\n- often you don&#x2019;t want have you UI concerns and application functionality in your domain model - separation of concerns\n\n
Here we solve the problems by having a manager that can return the correct class given one of the domain objects and a wanted functionality\n\nThe participants:\n- The Adabtable Type: the types that can be adapted\n- The Adapter: the type that can be adapted to\n- Factory:entity that can adapt a specific adaptable type to a number of adapters\n- Manager: manager of factories\n\n