Knowledge

Graphical Editing Framework

Source 📝

22: 154:
Eclipse RCP applications. Commonly referred to as GEF4, its components were initially released in version 0.1.0 (with still provisional API) in June 2015 as part of the GEF 3.10.0 (Mars) release. The GEF4 components are to be published in version 1.0.0 as part of the GEF 4.0.0 (Neon) release in June 2016.
149:
and GEF (MVC), a related model-view-controller framework that can be used to realize graphical editors as part of Eclipse Rich Client Platform (RCP) applications. The first release at Eclipse was GEF 2.1.0 in March 2003. The next major version, GEF 3.0.0, was released in June 2004, providing many new
294:
Any user action with the editor can generate a request. The nature of the request is understood by the context of invocation. The context is determined by the EditPart the user interacts with and the active tool. The tool can be any selected entry in a tool palette. The request is handed over to the
302:
mechanism over Editpolicies. The editpolicies determine if they can handle the request, otherwise they pass on to the next editpolicy. The order of declaration of editpolicies determine the order in which the request is passed around. The capable editpolicy creates a command. This command is handed
249:
Controller: The EditParts act as controllers. Typically, each model element has its matching EditPart. EditParts may contain other EditParts thereby matching model elements containing other model elements. EditParts also have a reference to the figure which graphically represents the model element.
153:
A new major revision of the framework has been developed in parallel to the maintenance of the GEF 3.x components by the project team since 2010. It is a complete redesign that is much more modular, uses JavaFX instead of SWT as underlying rendering framework, and can be used also independently of
150:
features like support for rules and guides. Zest was added as a third project component in 2007 in version 1.0.0 as part of the GEF 3.4.0 release. Since 2004, when GEF 3.0.0 was released, only compatible changes have been applied to the framework's application programming interface (API).
242:
is an architectural design pattern which divides an application into separate parts which communicate with each other in a specific way. The goal is to separate data model (model), graphical user interface (view) and business logic (controller). GEF uses the MVC pattern extensively.
253:
View: For each element within the model, including connections, a figure has to be implemented using the Draw2d framework. Oftentimes the figure is some geometrical drawing.
179:
Zest - A graph-based visualization toolkit that can be used to realize views for visualization of graph-like data structures as part of Eclipse RCP applications
375: 39: 176:
GEF (MVC) - A model-view-controller component that can be used to realize graphical editors as part of Eclipse Rich Client Product (RCP) applications
246:
Model: The data model can either be generated using EMF, self-implemented by the user or it may already exist in case of a legacy software.
86: 58: 105: 65: 368: 299: 282: 183:
While graphical applications can be built on top of the GEF 3.x components directly, Draw2d and GEF (MVC) are also used by the
72: 43: 184: 54: 530: 470: 440: 361: 303:
back to the tool which initiated the "Request". Execution of the command causes the model to be modified (Response).
525: 188: 145:
in 2002 in version 2.0.0, consisting then of two components: Draw2d, a 2D visualization component based on the
480: 171: 146: 32: 506: 79: 239: 250:
Finally, EditParts evaluate requests and create the appropriate command to edit the underlying model.
420: 450: 425: 384: 163: 142: 126: 235:. These patterns are often mandatory under GEF and developers are required to understand them. 490: 276: 264: 129:
project that provides framework and end-user components related to graphical applications.
270: 258: 162:
GEF 3.x provides framework technology to realize graphical editors and views as part of
475: 430: 232: 519: 215:
EditPolicy objects which evaluate the requests and create appropriate command objects
410: 321: 435: 415: 21: 445: 400: 348: 405: 395: 261:: Creating models from palette, creating EditParts and creating Figures 206:
Figures which graphically represent the underlying data model elements
485: 465: 353: 191:
to create the code for both the data model and the graphical editor.
199:
Editors created with GEF (MVC) consist of the following components:
495: 460: 455: 209:
EditParts which match figures and their respective model elements
166:
applications. It is internally decomposed into three components:
219: 357: 267:: Typically a controller (EditPart) listening on Model and View 15: 279:: EditParts can install and remove EditPolicies dynamically 137:
GEF was initially developed as part of IBM's etools (
295:
selected EditPart, which in turn returns a Command.
285:: To decide which EditPolicy should handle a Request 170:Draw2d – A 2D visualization component based on the 46:. Unsourced material may be challenged and removed. 218:Command objects that edit the model and provide 369: 8: 322:"Eclipse Graphical Editing Framework (GEF)" 376: 362: 354: 203:The diagram editor including tool palette 106:Learn how and when to remove this message 312: 273:: To implement Undo and Redo functions 7: 44:adding citations to reliable sources 185:Graphical Modeling Framework (GMF) 164:Eclipse Rich Client Platform (RCP) 14: 189:Eclipse Modeling Framework (EMF) 20: 187:, which combines them with the 31:needs additional citations for 290:Request and response mechanism 212:Request objects for user input 1: 172:Standard Widget Toolkit (SWT) 147:Standard Widget Toolkit (SWT) 55:"Graphical Editing Framework" 471:Remote Application Platform 320:Web, Eclipse (2013-01-31). 298:This is achieved using the 120:Graphical Editing Framework 547: 504: 391: 141:) and was contributed to 481:Standard Widget Toolkit 300:chain of responsibility 283:Chain of responsibility 231:GEF makes heavy use of 507:Eclipse Public License 349:GEF Source Repository 240:Model-View-Controller 326:projects.eclipse.org 227:Design pattern usage 40:improve this article 531:Eclipse (software) 385:Eclipse Foundation 139:com.ibm.etools.gef 526:Graphics software 513: 512: 116: 115: 108: 90: 538: 378: 371: 364: 355: 336: 335: 333: 332: 317: 140: 111: 104: 100: 97: 91: 89: 48: 24: 16: 546: 545: 541: 540: 539: 537: 536: 535: 516: 515: 514: 509: 500: 387: 382: 345: 340: 339: 330: 328: 319: 318: 314: 309: 292: 233:design patterns 229: 197: 160: 138: 135: 112: 101: 95: 92: 49: 47: 37: 25: 12: 11: 5: 544: 542: 534: 533: 528: 518: 517: 511: 510: 505: 502: 501: 499: 498: 493: 488: 483: 478: 473: 468: 463: 458: 453: 448: 443: 438: 433: 428: 423: 418: 413: 408: 403: 398: 392: 389: 388: 383: 381: 380: 373: 366: 358: 352: 351: 344: 343:External links 341: 338: 337: 311: 310: 308: 305: 291: 288: 287: 286: 280: 274: 268: 262: 256: 255: 254: 251: 247: 228: 225: 224: 223: 216: 213: 210: 207: 204: 196: 193: 181: 180: 177: 174: 159: 156: 134: 131: 114: 113: 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 543: 532: 529: 527: 524: 523: 521: 508: 503: 497: 494: 492: 489: 487: 484: 482: 479: 477: 474: 472: 469: 467: 464: 462: 459: 457: 454: 452: 449: 447: 444: 442: 439: 437: 434: 432: 429: 427: 424: 422: 419: 417: 414: 412: 409: 407: 404: 402: 399: 397: 394: 393: 390: 386: 379: 374: 372: 367: 365: 360: 359: 356: 350: 347: 346: 342: 327: 323: 316: 313: 306: 304: 301: 296: 289: 284: 281: 278: 275: 272: 269: 266: 263: 260: 257: 252: 248: 245: 244: 241: 238: 237: 236: 234: 226: 221: 217: 214: 211: 208: 205: 202: 201: 200: 194: 192: 190: 186: 178: 175: 173: 169: 168: 167: 165: 157: 155: 151: 148: 144: 132: 130: 128: 124: 121: 110: 107: 99: 88: 85: 81: 78: 74: 71: 67: 64: 60: 57: –  56: 52: 51:Find sources: 45: 41: 35: 34: 29:This article 27: 23: 18: 17: 329:. Retrieved 325: 315: 297: 293: 230: 198: 195:Architecture 182: 161: 152: 136: 122: 119: 117: 102: 96:January 2024 93: 83: 76: 69: 62: 50: 38:Please help 33:verification 30: 436:EclipseLink 421:Buckminster 520:Categories 446:Jakarta EE 331:2024-01-12 307:References 66:newspapers 401:Adoptium 277:Strategy 265:Observer 431:Equinox 426:Eclipse 406:AspectJ 396:Acceleo 271:Command 259:Factory 158:GEF 3.x 143:Eclipse 133:History 127:Eclipse 80:scholar 486:Vert.x 476:Sirius 466:OpenJ9 451:Jetty 125:is an 82:  75:  68:  61:  53:  496:Xtext 491:Virgo 461:Mylyn 456:JFace 222:-redo 123:(GEF) 87:JSTOR 73:books 441:Golo 411:BIRT 220:undo 118:The 59:news 416:Che 42:by 522:: 324:. 377:e 370:t 363:v 334:. 109:) 103:( 98:) 94:( 84:· 77:· 70:· 63:· 36:.

Index


verification
improve this article
adding citations to reliable sources
"Graphical Editing Framework"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Eclipse
Eclipse
Standard Widget Toolkit (SWT)
Eclipse Rich Client Platform (RCP)
Standard Widget Toolkit (SWT)
Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF)
undo
design patterns
Model-View-Controller
Factory
Observer
Command
Strategy
Chain of responsibility
chain of responsibility
"Eclipse Graphical Editing Framework (GEF)"
GEF Source Repository
v

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.