• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    Java
  • License
    Eclipse Public Li...
  • Created over 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Eclipse GEF™

Eclipse Graphical Editing Framework (GEF)

The Eclipse Graphical Editing Framework (GEF) provides Eclipse-integrated end-user tools in terms of a Graphviz authoring (DOT editor, DOT Graph view) and a word cloud rendering environment (Tag Cloud view), as well as framework components (Common, Geometry, FX, MVC, Graph, Layout, Zest, DOT, and Cloudio) to create rich graphical JavaFX- and SWT-based client applications, Eclipse-integrated or standalone.

GEF participates in the annual Eclipse simultaneous release. Governance information can be found at [email protected], 'New and Noteworthy' in our CHANGELOG.

The current code base has been developed in parallel to that of the original Draw2d 3.x, GEF (MVC) 3.x, and Zest 1.x project components, which have been provided since 2004. Up to its graduation with the 4.0.0 (Neon) release in 2016, this code base had been referred to as 'GEF4' respectively org.eclipse.gef4, which is why these terms are still used in the 4.x (Neon) maintenance stream. In the 5.x (Oxygen) development stream, we have adopted the original project namespace to this code base, so that 'GEF' and org.eclipse.gef are now used instead, while we have started to refer to the original project components as 'GEF-Legacy', because they will only be maintained but are not developed further, providing their code base in the separate eclipse/gef-legacy repository.

Installing the end-user tools (users)

You can install the DOT and Cloudio end-user tools (including the user guides) into your Eclipse installation via "Help -> Install New Software...", then pointing to one of the GEF update-sites1) and selecting the GEF DOT End-User Tools and GEF Cloudio End-User Tools features. Having completed the installation, the user guides can be accessed via Help -> Help Contents. They can also be accessed online in the GitHub Wiki, where they are maintained.

1) Please note that explicit end-user features (including the user guides) have only been created in the 5.x (Oxygen) development stream and are (for now) only available via the GEF (5.x) Master CI, GEF (5.x) Integration, and GEF (5.x) Milestones update-sites. If you want to install the end-user tools from the 4.x (Neon) maintenance stream, using the GEF4 Maintenance CI, GEF4 Integration, GEF4 Milestones, or GEF4 Releases update-site, you will have to select the GEF4 DOT, GEF4 DOT.UI, and GEF4 DOT User Guide, as well as the GEF4 Cloudio.UI and GEF4 Cloudio User Guide features instead. To access the related user documentation online, please refer to the deployed documentation at help.eclipse.org.

Getting started with the framework components (adopters)

In order to develop graphical applications with GEF, you should first set up a proper development environment. The following sections shortly lay out how to set up an Eclipse IDE for this purpose. They conclude with running our deployed and undeployed examples to confirm everything is set up properly.

Having accomplished that, you might want to browse our developer documentation to learn about the framework components in detail. At any time, if you get stuck, feel free to contact us.

Set up an Eclipse IDE (using OpenJDK 11 and OpenJFX 11)

  1. Install a recent OpenJDK (e.g. 11.0.2) and a matching OpenJFX SDK (e.g. 11.0.2) as a prerequisite.

  2. Download a recent 'Eclipse IDE for Eclipse Committers' package (e.g. 2019-09 R) and start it, pointing to an empty workspace folder.

  3. Select "Help -> Install New Software...". Choose to Work with https://download.eclipse.org/efxclipse/updates-nightly/site/, uncheck the Group items per category checkbox (the feature is uncategorized), and install e(fx)clipse - IDE - PDE.

  4. Go to Windows -> Preferences -> Java/Installed JREs and ensure the installed OpenJDK is listed (otherwise add it manually).

  5. Go to Windows -> Preferences -> Java/Installed JREs/Execution Environments and make sure JavaSE-1.8 is mapped to the installed OpenJDK (the checkbox needs to be checked, otherwise e(fx)clipse will not be able to resolve the JavaFX dependencies.)

  6. Go to Windows -> Preferences -> JavaFX and make sure the JavaFX 11 + SDK setting points to the lib folder of your OpenJFX SDK.

  7. Make sure to close your Eclipse instance and start it again (don't use the Restart menu entry).

Set up a Target Definition containing GEF (development snapshot)

  1. Go to File -> New -> Project... and select to create a General/Project. Name it gef-integration.target or as you like, the project is to contain only a target definition.

  2. Go to File -> New -> Other... then choose Plug-in Development/Target Definition and create a new empty (Nothing: Start with an empty target definition) target definition file named gef-integration.target within the newly created project.

  3. Close the Target Editor that has automatically opened, open the target file with the Text Editor using the Open With context menu, then paste the following contents:3)

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?pde version="3.8"?>
    <target name="gef-integration" sequenceNumber="1">
    <locations>
      <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
        <unit id="org.eclipse.fx.runtime.min.feature.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.sdk.ide" version="0.0.0"/>
        <unit id="org.eclipse.emf.mwe2.runtime.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
        <repository location="https://download.eclipse.org/releases/2019-03"/>
      </location>
      <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
        <unit id="org.eclipse.gef.common.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.geometry.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.fx.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.mvc.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.mvc.examples.source.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.layout.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.graph.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.zest.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.zest.examples.source.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.dot.sdk.feature.group" version="0.0.0"/>
        <unit id="org.eclipse.gef.cloudio.sdk.feature.group" version="0.0.0"/>
        <repository location="http://download.eclipse.org/tools/gef/updates/integration"/>
      </location>
    </locations>
    </target>
    
  4. Now open the gef-integration.target file with the Target Editor again, using the Open With context menu, let it fully resolve, then click Set as Target Platform (link in the upper right corner of the editor).

3) If you want to develop against the 4.x (Neon) maintenance stream, you will have to use the GEF4 Integration update-site instead, and the unit ids have to be prefixed with org.eclipse.gef4 instead of org.eclipse.gef.

Run the examples

As the deployed MVC Logo and Zest Graph examples are contained in the target definition, you only need to start a new Eclipse Runtime to run them:

  1. Go to Run -> Run Configurations... then create a new Eclipse Application launch configuration.
  2. On the Main tab, make sure the Execution environment points to at least JavaSE-1.8 .
  3. On the Arguments tab, add -Dosgi.framework.extensions=org.eclipse.fx.osgi to VM arguments:, so that all JavaFX dependencies can be resolved wihtin the OSGi environment. If you are using OpenJDK / OpenJFX 11 or higher, further add -Defxclipse.java-modules.dir=/Library/Java/Extensions/javafx-sdk-11.0.2/lib (of course adjusting the path to point to your OpenJFX SDK lib folder)
  4. Click Run.
  5. Open the example views via Window -> Show View -> Other..., then selecting Other/GEF MVC Logo Example or Other/GEF Zest Graph Example.

The undeployed Geometry, FX, FX.SWT, Graph, Layout, Zest.FX, Zest.FX.JFace, DOT, and Cloudio.UI examples have to be checked out in source before. Using EGit this can easily be achieved as follows:

  1. Go to File -> Import..., then select Git/Projects from Git, press Next >.
  2. Select Clone URI, press Next >.
  3. Paste https://github.com/eclipse/gef.git to the URI field , press Next >.
  4. Select master branch, press Next >.4)
  5. Confirm the local directory or change it as needed, press Next >.
  6. Ensure Import existing Eclipse projects is checked, then select Working Tree and press Next >.
  7. Select org.eclipse.gef.cloudio.examples.ui, org.eclipse.gef.dot.examples, org.eclipse.gef.fx.examples, org.eclipse.gef.fx.examples.swt, org.eclipse.gef.geometry.examples, org.eclipse.gef.graph.examples, org.eclipse.gef.layout.examples, org.eclipse.gef.zest.examples, and org.eclipse.gef.zest.examples.jface, press Finish.
  8. Select an arbitrary example class, e.g. org.eclipse.gef.fx.examples.ConnectionSnippet, in the Package Explorer view and select Run As -> Java Application from the context menu.5)

4) If you want to develop against the 4.x (Neon) maintenance stream, you will have to select the R4_0_maintenance branch instead, and all project names are still prefixed with org.eclipse.gef4 instead of org.eclipse.gef.

5) On MacOS, you will have to ensure that the Use the -XstartOnFirstThread argument when launching with SWT option is unchecked on the Arguments tab of the launch configuration, which was implicitly created, as pure JavaFX examples will otherwise not startup correctly. When starting examples that are based on the JavaFX-SWT-integration on the other hand (like e.g. org.eclipse.gef.fx.examples.swt.ButtonFXControlAdapterSnippet), the Use the -XstartOnFirstThread argument when launching with SWT option has to be enabled.

How to proceed from here?

The first thing you will probably want to consult is the developer documentation, which explains the different framework components in detail. It is bundled by the individual SDK features that are available for the framework components and can be accessed via Help -> Help Contents if these features are installed into the Eclipse IDE (it is not sufficient to include them in a target definition for this purpose). It is further contributed to help.eclipse.org for each release, where it can be accessed online, and can further be accessed online in the GitHub Wiki, where it is maintained.6)

All further project information (forum, mailing list, issue tracker, update-site locations, release plans) can be retrieved from the project meta-data at projects.eclipse.org.

If you want to contribute, please consult the contributor guide.

6) The developer documentation for the 4.x (Neon) stream is still available in its deployed form at help.eclipse.org. The related online sources in the GEF4 wiki have been removed after the final 4.1.0 (Neon.1) release of this stream had been published.

More Repositories

1

mosquitto

Eclipse Mosquitto - An open source MQTT broker
C
7,649
star
2

che

Kubernetes based Cloud Development Environments for Enterprise Teams
TypeScript
6,868
star
3

jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Java
3,655
star
4

paho.mqtt.android

MQTT Android
Java
2,708
star
5

paho.mqtt.golang

Go
2,381
star
6

eclipse-collections

Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.
Java
2,283
star
7

paho.mqtt.java

Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.
Java
2,095
star
8

paho.mqtt.python

paho.mqtt.python
Python
1,946
star
9

sumo

Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
1,902
star
10

paho.mqtt.c

An Eclipse Paho C client library for MQTT for Windows, Linux and MacOS. API documentation: https://eclipse.github.io/paho.mqtt.c/
C
1,736
star
11

eclipse.jdt.ls

Java language server
Java
1,410
star
12

mraa

Linux Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel Edison, Intel Joule, Raspberry Pi and many more.
C
1,349
star
13

paho.mqtt.embedded-c

Paho MQTT C client library for embedded systems. Paho is an Eclipse IoT project (https://iot.eclipse.org/)
C
1,307
star
14

openvsx

An open-source registry for VS Code extensions
Java
1,181
star
15

paho.mqtt.javascript

paho.mqtt.javascript
JavaScript
1,145
star
16

paho.mqtt.cpp

C++
976
star
17

milo

Eclipse Milo™ - an open source implementation of OPC UA (IEC 62541).
Java
976
star
18

omr

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes
C++
917
star
19

xtext

Eclipse Xtext™ is a language development framework
Java
715
star
20

upm

UPM is a high level repository that provides software drivers for a wide variety of commonly used sensors and actuators. These software drivers interact with the underlying hardware platform through calls to MRAA APIs.
C++
651
star
21

microprofile

Repository for important documentation - the index to the project / community
Java
635
star
22

californium

CoAP/DTLS Java Implementation
Java
620
star
23

leshan

Java Library for LWM2M
Java
614
star
24

paho.mqtt-spy

mqtt-spy is an open source desktop & command line utility intended to help you with monitoring activity on MQTT topics
Java
605
star
25

steady

Analyses your Java applications for open-source dependencies with known vulnerabilities, using both static analysis and testing to determine code context and usage for greater accuracy. https://eclipse.github.io/steady/
Java
518
star
26

sprotty

A diagramming framework for the web
TypeScript
514
star
27

paho.mqtt.m2mqtt

C#
513
star
28

jifa

🔬 Online Heap Dump, GC Log, Thread Dump & JFR File Analyzer.
Java
509
star
29

buildship

The Eclipse Plug-ins for Gradle project.
Java
507
star
30

lsp4j

A Java implementation of the language server protocol intended to be consumed by tools and language servers implemented in Java.
Java
473
star
31

kura

Eclipse Kura™ project
Java
469
star
32

wakaama

Eclipse Wakaama is a C implementation of the Open Mobile Alliance's LightWeight M2M protocol (LWM2M).
C
465
star
33

streamsheets

An open-source tool for processing stream data using a spreadsheet-like interface.
JavaScript
449
star
34

paho.mqtt.rust

paho.mqtt.rust
Rust
422
star
35

hawkbit

Eclipse hawkBit™
Java
416
star
36

eclipse-collections-kata

Eclipse Collections Katas
Java
411
star
37

hono

Eclipse Hono™ Project
Java
378
star
38

repairnator

Software development bots for Github. Join the bot revolution! 🌟🤖🌟💞
Java
370
star
39

ponte

Ponte Project
JavaScript
360
star
40

birt

Eclipse BIRT™ The open source reporting and data visualization project.
Java
355
star
41

paho.golang

Go libraries
Go
324
star
42

rdf4j

Eclipse RDF4J: scalable RDF for Java
Java
323
star
43

paho.mqtt-sn.embedded-c

Paho C MQTT-SN gateway and libraries for embedded systems. Paho is an Eclipse IoT project.
C++
313
star
44

lemminx

XML Language Server
Java
255
star
45

vorto

Vorto Project
Java
221
star
46

tahu

Eclipse Tahu addresses the existence of legacy SCADA/DCS/ICS protocols and infrastructures and provides a much-needed definition of how best to apply MQTT into these existing industrial operational environments.
Java
220
star
47

kapua

Java
218
star
48

elk

Eclipse Layout Kernel - Automatic layout for Java applications.
Java
211
star
49

jnosql

Eclipse JNoSQL is a framework which has the goal to help Java developers to create Jakarta EE applications with NoSQL.
Java
210
star
50

corrosion

Eclipse Corrosion - Rust edition in Eclipse IDE
Java
199
star
51

capella

Open Source Solution for Model-Based Systems Engineering
Java
197
star
52

dirigible

Eclipse Dirigible™ Project
JavaScript
196
star
53

microprofile-config

MicroProfile Configuration Feature
Java
182
star
54

wildwebdeveloper

Simple and productive Web Development Tools in the Eclipse IDE
Java
181
star
55

pdt

PHP Development Tools project (PDT)
PHP
178
star
56

org.aspectj

Java
172
star
57

xacc

XACC - eXtreme-scale Accelerator programming framework
C++
137
star
58

thingweb.node-wot

thingweb.node-wot
TypeScript
130
star
59

microprofile-rest-client

MicroProfile Rest Client
Java
124
star
60

tycho

Tycho project repository (tycho)
Java
119
star
61

microprofile-conference

Microprofile.io Demo Code - Web Services Conference Application
Java
117
star
62

microprofile-fault-tolerance

microprofile fault tolerance
Java
115
star
63

microprofile-samples

Micro Profile Samples
Java
115
star
64

xtext-core

xtext-core
Java
114
star
65

microprofile-open-api

Microprofile open api
Java
112
star
66

jbom

Java
111
star
67

transformer

Eclipse Transformer provides tools and runtime components that transform Java binaries, such as individual class files and complete JARs and WARs, mapping changes to Java packages, type names, and related resource names.
Java
108
star
68

paho.mqtt.testing

An Eclipse Paho project - a Python broker for testing
Python
104
star
69

tinydtls

Eclipse tinydtls
C
102
star
70

xtext-xtend

xtext-xtend
Java
100
star
71

microprofile-graphql

microprofile-graphql
Java
98
star
72

microprofile-lra

microprofile-lra
Java
97
star
73

microprofile-health

microprofile-health
Java
95
star
74

microprofile-metrics

microprofile-metrics
Java
94
star
75

kuksa.val

kuksa.val
C++
93
star
76

sw360

SW360 project
Java
92
star
77

microprofile-jwt-auth

Java
92
star
78

mosaic

Eclipse MOSAIC is a Multi-Domain and Multi-Scale Simulation Framework for Automated and Connected Mobility Scenarios.
Java
88
star
79

nebula

Nebula Project
Java
84
star
80

microprofile-reactive-streams-operators

Microprofile project
Java
79
star
81

mosquitto.rsmb

Mosquitto rsmb
C
75
star
82

microprofile-starter

MicroProfile project generator source code
Java
69
star
83

aCute

Eclipse aCute - C# edition in Eclipse IDE
Java
65
star
84

ditto-examples

Eclipse Ditto™: Digital Twin framework - Examples
Java
63
star
85

epsilon

Epsilon is a family of Java-based scripting languages for automating common model-based software engineering tasks, such as code generation, model-to-model transformation and model validation, that work out of the box with EMF (including Xtext and Sirius), UML (including Cameo/MagicDraw), Simulink, XML and other types of models.
Java
61
star
86

lsp4e

Language Server Protocol support in Eclipse IDE
Java
60
star
87

tm4e

TextMate support in Eclipse IDE
Java
60
star
88

californium.tools

Californium project
Java
59
star
89

microprofile-reactive-messaging

Java
59
star
90

microprofile-opentracing

microprofile-opentracing
Java
57
star
91

eclemma

🌘 Java Code Coverage for Eclipse IDE
Java
57
star
92

texlipse

Eclipse Texlipse
Java
56
star
93

mita

mita
Xtend
55
star
94

dartboard

Dart Plugin for Eclipse
Java
55
star
95

jnosql-databases

This project contains Eclipse JNoSQL databases
Java
54
star
96

windowbuilder

Eclipse Windowbuilder
Java
54
star
97

xtext-eclipse

xtext-eclipse
Java
49
star
98

adore

Eclipse ADORe is a ROS based modular software library and toolkit for decision making, planning, control and simulation of automated vehicles supporting CARLA and SUMO.
Makefile
48
star
99

packages

IoT Packages project
Smarty
46
star
100

amlen

Message Broker for IoT/Mobile/Web. Mainly uses MQTT v3.x and v5. Aims to be easy to use, scalable and reliable
C
46
star