SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
Lightweight Xtext Editors 	

as 	

SWT Widgets
Moritz Eysholdt, itemis AG
AGENDA
• Motivation	

• Use Cases	

• Architecture	

• API + Example
OnThe	

Shoulders	

Of	

Giants
BUT
???
LIGHTWEIGHT
Xtext Editor as WorkbenchPart
SWT Widget
syntax highlighting
live validation
content assistquick fix
quick assist
formatting
auto edit
USE CASES
RCP Dialog Properties Hover Inline More
Eclipse RCP Mail Example with exchanged message body editor
RCP Dialog Properties Hover Inline More
Template Proposal Editor of any Xtext Language (here: Xtend)
RCP Dialog Properties Hover Inline More
Xtend formatter configuration preview
read-only!
RCP Dialog Properties Hover Inline More
in / as properties view for a graphical editor
editable!
as part of hover windows
read-only!
RCP Dialog Properties Hover Inline More
Editing Embedded-Xtext
RCP Dialog Properties Hover Inline More
as part of diagrams
editable!
• Eclipse Forms	

• Spread Sheet Formulas	

• Data Queries	

• Multi Page Editors	

• Conditional Breakpoint Editor
RCP Dialog Properties Hover More
ARCHITECTURE
org.eclipse.xtext.ui.editor.embedded
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
1. construct a new editor builder
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
1. construct a new editor builder
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
2. configuration
1. construct a new editor builder
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
2. configuration
1. construct a new editor builder
3. create editor on SWT Composite
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
3. create editor on SWT Composite
2. configuration
1. construct a new editor builder
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
4. initialize document
3. create editor on SWT Composite
2. configuration
1. construct a new editor builder
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
4. initialize document
3. create editor on SWT Composite
2. configuration
1. construct a new editor builder
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
4. initialize document
3. create editor on SWT Composite
2. configuration
1. construct a new editor builder
get text,
set text
create editor in 4 steps
org.eclipse.xtext.ui.editor.embedded
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
prefix,
editablePart,
postfix
prefix,
editablePart,
postfix
editor knows
viewer and document
org.eclipse.xtext.ui.editor.embedded
org.eclipse.xtext.ui.editor
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
XtextSourceViewer
XtextDocument
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
org.eclipse.xtext.ui.editor.embedded
org.eclipse.xtext.ui.editor
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
XtextSourceViewer
XtextDocument
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
document and viewer
same as in Xtext’s
WorkbenchPart-editor
org.eclipse.jface
text
org.eclipse.xtext.ui.editor.embedded
org.eclipse.xtext.ui.editor
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
XtextSourceViewer
XtextDocument
text : String
Document
Viewer
TextViewer
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
Document impl
wraps text
org.eclipse.jface
text
org.eclipse.xtext.ui.editor.embedded
org.eclipse.xtext.ui.editor
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
XtextSourceViewer
XtextDocument
text : String
Document
Viewer
org.eclipse.swt.widgets
Control
TextViewer
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
Viewer impl
wraps SWT Control
org.eclipse.jface
text
org.eclipse.xtext.ui.editor.embedded
org.eclipse.xtext.ui.editor
getViewer()
getDocument()
createPartialEditor(
String prefix,
String editablePart,
String postfix
) : EmbeddedEditorModelAccess
EmbeddedEditor
newEditor(IEditedResourceProvider) : Builder
EmbeddedEditorFactory
getEditablePart():String
updateModel(
String prefix,
String editablePart,
String suffix
)
EmbeddedEditorModelAccess
XtextSourceViewer
XtextDocument
text : String
Document
Viewer
org.eclipse.swt.widgets
Control
TextViewer
readOnly()
showErrorAndWarningAnnotations()
withResourceValidator(IResourceValidator)
withParent(Composite parent): EmbeddedEditor
Builder
<< creates >>
<< creates >>
<< creates >>
API / EXAMPLE
In the Eclipse RCP Mail Example,
change the text editor to be an Xtext editor
needed modifications in View.java
public class View extends ViewPart {	
!
	 public void createPartControl(Composite parent) {	
	 	 Composite top = new Composite(parent, SWT.NONE);	
!
	 	 // ...	
!
	 	 	
	 	 	
	 	 	
	 	 	
	 	 	
	 	 	
	 	 	
	 	 	
	 }	
!
	 // ...	
}
View.java
public class View extends ViewPart {	
!
	 public void createPartControl(Composite parent) {	
	 	 Composite top = new Composite(parent, SWT.NONE);	
!
	 	 // ...	
!
	 	 ArithmeticsActivator activator = ArithmeticsActivator.getInstance();	
	 	 Injector injector = activator.getInjector(ORG_ECLIPSE_XTEXT_EXAMPLE_ARITHMETICS_ARITHMETICS);	
	 	 	
!
!
	 	 	
!
!
	 }	
!
	 // ...	
}
View.java
obtain injector
public class View extends ViewPart {	
!
	 public void createPartControl(Composite parent) {	
	 	 Composite top = new Composite(parent, SWT.NONE);	
!
	 	 // ...	
!
	 	 ArithmeticsActivator activator = ArithmeticsActivator.getInstance();	
	 	 Injector injector = activator.getInjector(ORG_ECLIPSE_XTEXT_EXAMPLE_ARITHMETICS_ARITHMETICS);	
	 	 	
	 	 MailResourceProvider provider = injector.getInstance(MailResourceProvider.class);	
	 	 EmbeddedEditorFactory factory = injector.getInstance(EmbeddedEditorFactory.class);	
	 	 	
!
!
	 }	
!
	 // ...	
}
View.java
get services from injector
public class View extends ViewPart {	
!
	 public void createPartControl(Composite parent) {	
	 	 Composite top = new Composite(parent, SWT.NONE);	
!
	 	 // ...	
!
	 	 ArithmeticsActivator activator = ArithmeticsActivator.getInstance();	
	 	 Injector injector = activator.getInjector(ORG_ECLIPSE_XTEXT_EXAMPLE_ARITHMETICS_ARITHMETICS);	
	 	 	
	 	 MailResourceProvider provider = injector.getInstance(MailResourceProvider.class);	
	 	 EmbeddedEditorFactory factory = injector.getInstance(EmbeddedEditorFactory.class);	
	 	 	
	 	 EmbeddedEditor editor = factory.newEditor(provider).withParent(top);	
	 	 EmbeddedEditorModelAccess model = editor.createPartialEditor("", "module HelloWorld", "", false);	
	 }	
!
	 // ...	
}
View.java 1. create builder
2. (skipped) configure
3. create editor
4. init document
public class MailResourceProvider implements IEditedResourceProvider {	
!
	 @Inject private IResourceSetProvider resourceSetProvider;	
	 @Inject private FileExtensionProvider ext;	
!
	 @Override	
	 public XtextResource createResource() {	
	 	 ResourceSet resourceSet = resourceSetProvider.get(null);	
	 	 URI uri = URI.createURI("synthetic:/mail." + ext.getPrimaryFileExtension());	
	 	 XtextResource result = (XtextResource) resourceSet.createResource(uri);	
	 	 resourceSet.getResources().add(result);	
	 	 return result;	
	 }	
}	
Init Resource incl. ResourceSet
Questions?

Contenu connexe

Tendances

Deep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explainedDeep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explainedHolger Schill
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean ArchitectureMattia Battiston
 
Jetpack Compose a new way to implement UI on Android
Jetpack Compose a new way to implement UI on AndroidJetpack Compose a new way to implement UI on Android
Jetpack Compose a new way to implement UI on AndroidNelson Glauber Leal
 
XXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng HưngXXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng HưngVõ Thái Lâm
 
Why TypeScript?
Why TypeScript?Why TypeScript?
Why TypeScript?FITC
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework OverviewEric Nelson
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript BasicsMindfire Solutions
 
Exception handling
Exception handlingException handling
Exception handlingAnna Pietras
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Nelson Glauber Leal
 
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScriptObject Oriented Programming In JavaScript
Object Oriented Programming In JavaScriptForziatech
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeKarsten Thoms
 
Javascript this keyword
Javascript this keywordJavascript this keyword
Javascript this keywordPham Huy Tung
 
The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)Scott Wlaschin
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practicesfelixbillon
 

Tendances (20)

Deep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explainedDeep dive into Xtext scoping local and global scopes explained
Deep dive into Xtext scoping local and global scopes explained
 
Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
 
Jetpack Compose a new way to implement UI on Android
Jetpack Compose a new way to implement UI on AndroidJetpack Compose a new way to implement UI on Android
Jetpack Compose a new way to implement UI on Android
 
XXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng HưngXXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng Hưng
 
NestJS
NestJSNestJS
NestJS
 
Why TypeScript?
Why TypeScript?Why TypeScript?
Why TypeScript?
 
Entity Framework Overview
Entity Framework OverviewEntity Framework Overview
Entity Framework Overview
 
Javascript
JavascriptJavascript
Javascript
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Exception handling
Exception handlingException handling
Exception handling
 
Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021Android Jetpack Compose - Turkey 2021
Android Jetpack Compose - Turkey 2021
 
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScriptObject Oriented Programming In JavaScript
Object Oriented Programming In JavaScript
 
Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
 
Integrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio CodeIntegrating Xtext Language Server support in Visual Studio Code
Integrating Xtext Language Server support in Visual Studio Code
 
Javascript this keyword
Javascript this keywordJavascript this keyword
Javascript this keyword
 
Monadic Java
Monadic JavaMonadic Java
Monadic Java
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Java 17
Java 17Java 17
Java 17
 
The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practices
 

En vedette

Turning Ideas Into Code Faster
Turning Ideas Into Code FasterTurning Ideas Into Code Faster
Turning Ideas Into Code Fastermeysholdt
 
Codegeneration Goodies
Codegeneration GoodiesCodegeneration Goodies
Codegeneration Goodiesmeysholdt
 
Parsing Expression With Xtext
Parsing Expression With XtextParsing Expression With Xtext
Parsing Expression With XtextSven Efftinge
 

En vedette (6)

Eclipse meets e4
Eclipse meets e4Eclipse meets e4
Eclipse meets e4
 
Turning Ideas Into Code Faster
Turning Ideas Into Code FasterTurning Ideas Into Code Faster
Turning Ideas Into Code Faster
 
Codegeneration Goodies
Codegeneration GoodiesCodegeneration Goodies
Codegeneration Goodies
 
Parsing Expression With Xtext
Parsing Expression With XtextParsing Expression With Xtext
Parsing Expression With Xtext
 
Future of Xtext
Future of XtextFuture of Xtext
Future of Xtext
 
Xtext Best Practices
Xtext Best PracticesXtext Best Practices
Xtext Best Practices
 

Similaire à Lightweight Xtext Editors as SWT Widgets

CreateJS hackathon in Zurich
CreateJS hackathon in ZurichCreateJS hackathon in Zurich
CreateJS hackathon in ZurichHenri Bergius
 
夜宴50期《YUI3 editor》
夜宴50期《YUI3 editor》夜宴50期《YUI3 editor》
夜宴50期《YUI3 editor》Koubei Banquet
 
yui3 rich text editor
yui3 rich text editoryui3 rich text editor
yui3 rich text editorliuzhitao2000
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryjanet736113
 
Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]GDSC UofT Mississauga
 
My Very First Zf App Part One
My Very First Zf App   Part OneMy Very First Zf App   Part One
My Very First Zf App Part Oneisaaczfoster
 
Implementing auto complete using JQuery
Implementing auto complete using JQueryImplementing auto complete using JQuery
Implementing auto complete using JQueryBhushan Mulmule
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designerddrschiw
 
Ajax toolkit framework
Ajax toolkit frameworkAjax toolkit framework
Ajax toolkit frameworkSunil Kumar
 
Linguistic Abstraction for the Web
Linguistic Abstraction for the WebLinguistic Abstraction for the Web
Linguistic Abstraction for the WebEelco Visser
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Againjonknapp
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEBenjamin Cabé
 
How to create an Angular builder
How to create an Angular builderHow to create an Angular builder
How to create an Angular builderMaurizio Vitale
 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsLars Vogel
 

Similaire à Lightweight Xtext Editors as SWT Widgets (20)

CreateJS hackathon in Zurich
CreateJS hackathon in ZurichCreateJS hackathon in Zurich
CreateJS hackathon in Zurich
 
夜宴50期《YUI3 editor》
夜宴50期《YUI3 editor》夜宴50期《YUI3 editor》
夜宴50期《YUI3 editor》
 
yui3 rich text editor
yui3 rich text editoryui3 rich text editor
yui3 rich text editor
 
Banquet 50
Banquet 50Banquet 50
Banquet 50
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
 
react-slides.pdf gives information about react library
react-slides.pdf gives information about react libraryreact-slides.pdf gives information about react library
react-slides.pdf gives information about react library
 
react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]
 
My Very First Zf App Part One
My Very First Zf App   Part OneMy Very First Zf App   Part One
My Very First Zf App Part One
 
Implementing auto complete using JQuery
Implementing auto complete using JQueryImplementing auto complete using JQuery
Implementing auto complete using JQuery
 
ASP.NET Lecture 6
ASP.NET Lecture 6ASP.NET Lecture 6
ASP.NET Lecture 6
 
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino DesignerAd103 - Have it Your Way: Extending IBM Lotus Domino Designer
Ad103 - Have it Your Way: Extending IBM Lotus Domino Designer
 
Ajax toolkit framework
Ajax toolkit frameworkAjax toolkit framework
Ajax toolkit framework
 
DataFX - JavaOne 2013
DataFX - JavaOne 2013DataFX - JavaOne 2013
DataFX - JavaOne 2013
 
Linguistic Abstraction for the Web
Linguistic Abstraction for the WebLinguistic Abstraction for the Web
Linguistic Abstraction for the Web
 
From Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) AgainFrom Backbone to Ember and Back(bone) Again
From Backbone to Ember and Back(bone) Again
 
Use Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDEUse Eclipse technologies to build a modern embedded IDE
Use Eclipse technologies to build a modern embedded IDE
 
Netfx4
Netfx4Netfx4
Netfx4
 
How to create an Angular builder
How to create an Angular builderHow to create an Angular builder
How to create an Angular builder
 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot Topics
 

Dernier

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 

Dernier (20)

Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 

Lightweight Xtext Editors as SWT Widgets