GithubHelp home page GithubHelp logo

eclipse / gef Goto Github PK

View Code? Open in Web Editor NEW
116.0 28.0 54.0 225.83 MB

Eclipse GEF™

Home Page: https://www.eclipse.org/gef/

License: Eclipse Public License 2.0

HTML 1.24% CSS 0.09% Java 81.40% Xtend 16.93% Prolog 0.06% GAP 0.29%

gef's Introduction

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.

gef's People

Contributors

azoitl avatar camilleletavernier avatar ctgnz avatar dariusjockel avatar fsteeg avatar hanneswell avatar hoelle666 avatar irbull avatar istvanrath avatar kgirard avatar kokkee avatar laeubi avatar merks avatar miklossy avatar muehlbrandt avatar mwienand avatar nicoprediger avatar nyssen avatar prggz avatar psuzzi avatar stempler avatar szarnekow avatar ujhelyiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gef's Issues

The 5.4.0 release has grown stale with out-dated dependencies

When installed with other bundles, the stale dependencies lead to wiring problems such as this:

org.osgi.framework.BundleException: Could not resolve module: org.eclipse.gef.dot.ide [1032]
  Unresolved requirement: Require-Bundle: org.eclipse.gef.dot; bundle-version="[5.0.0,6.0.0)"
    -> Bundle-SymbolicName: org.eclipse.gef.dot; bundle-version="5.1.4.202209120200"; singleton:="true"
       org.eclipse.gef.dot [1029]
         Unresolved requirement: Require-Bundle: org.eclipse.gef.dot.generator; bundle-version="[5.0.0,6.0.0)"; resolution:="optional"
  Bundle was not resolved because of a uses constraint violation.
  org.apache.felix.resolver.reason.ReasonException: Uses constraint violation. Unable to resolve resource org.eclipse.gef.dot [osgi.identity; type="osgi.bundle"; version:Version="5.1.4.202209120200"; osgi.identity="org.eclipse.gef.dot"; singleton:="true"] because it is exposed to package 'com.google.common.base' from resources com.google.guava [osgi.identity; type="osgi.bundle"; version:Version="32.1.2.jre"; osgi.identity="com.google.guava"] and com.google.guava [osgi.identity; type="osgi.bundle"; version:Version="30.1.0.v20221112-0806"; osgi.identity="com.google.guava"] via two dependency chains.

Chain 1:
  org.eclipse.gef.dot [osgi.identity; type="osgi.bundle"; version:Version="5.1.4.202209120200"; osgi.identity="org.eclipse.gef.dot"; singleton:="true"]
    require: (&(osgi.wiring.bundle=org.eclipse.xtend.lib)(&(bundle-version>=2.26.0)(!(bundle-version>=3.0.0))))
     |
    provide: osgi.wiring.bundle: org.eclipse.xtend.lib
  com.google.guava [osgi.identity; type="osgi.bundle"; version:Version="32.1.2.jre"; osgi.identity="com.google.guava"]

Chain 2:
  org.eclipse.gef.dot [osgi.identity; type="osgi.bundle"; version:Version="5.1.4.202209120200"; osgi.identity="org.eclipse.gef.dot"; singleton:="true"]
    require: (&(osgi.wiring.bundle=org.eclipse.gef.common)(&(bundle-version>=5.0.0)(!(bundle-version>=6.0.0))))
     |
    provide: osgi.wiring.bundle; bundle-version:Version="5.0.2.202209120200"; osgi.wiring.bundle="org.eclipse.gef.common"
  org.eclipse.gef.common [osgi.identity; type="osgi.bundle"; version:Version="5.0.2.202209120200"; osgi.identity="org.eclipse.gef.common"]
    import: (&(osgi.wiring.package=com.google.common.reflect)(version>=12.0.0))
     |
    export: osgi.wiring.package: com.google.common.reflect; uses:=com.google.common.base
    export: osgi.wiring.package=com.google.common.base
  com.google.guava [osgi.identity; type="osgi.bundle"; version:Version="30.1.0.v20221112-0806"; osgi.identity="com.google.guava"]
	at org.eclipse.osgi.container.Module.start(Module.java:463)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1852)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1845)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1786)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1750)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1672)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)

We need to try to eliminate older versions of guava, but GEF's use of older versions of com.google.inject locks in the older guava such that GEF and Xtext no longer get along well.

image

The older versions have associated CVEs:

https://www.cvedetails.com/cve/CVE-2023-2976/

What are the plans for updates with updated dependencies?

Gef build fails with Java 11

GEF build currently fails with Java 11.

To test, modify ~/git/gef/org.eclipse.gef.releng/pom.xml

Switch to Tycho 1.3.0 snapshot in linie 22

<tycho.version>1.3.0-SNAPSHOT</tycho.version>

Add tycho snapshot to pluginRepositoriesin line line 636

	<pluginRepositories>
	 	<pluginRepository>
      		<id>tycho-snapshots</id>
      		<url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
     	</pluginRepository>
		<pluginRepository>
			<id>CBI</id>
			<url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
		</pluginRepository>
	</pluginRepositories>

Now run mvn clean verify -PNEON.target on the command line -> unable to find Fx classes as they are not available anymore in Java 11.

Way to refresh elements in PaletteView after the View creation

Currently I have the following method:
private void updateElementsFromPallette() {
if (itemsFromHTML != null && !itemsFromHTML.isEmpty()) {
int i = 0;
for (String key : itemsFromHTML.keySet()) {
group = new PaletteDrawer[itemsFromHTML.size()];
group[i] = new PaletteDrawer(key);
group[i].setInitialState(PaletteDrawer.INITIAL_STATE_CLOSED);
for (FlowEntry flowEntry: itemsFromHTML.get(key)) {
group[i].add(flowEntry);
}
root.add(group[i]);
i++;
}
}
}
I want to be able to call that method from an other ViewPart and refresh the elements in the palette; the elements are updated after I reopen the PaletteView, does anyone know if there is a way to update without reopen the palette?

Dependency version conflict to Google Guice in context with XText 2.26

Hello GEF Team,

in our RCP product we have a problem with the dependencies of GEF and XText 2.26 to Google Guice. GEF requires Google Guice version 1.3 (bundle version 3.0.0) and XText version 5.0.1.

A possible solution is to increase the version upper limit constraints to 5.x.x in the manifest files for all GEF bundles with dependencies to Guice bundles (if hopefully no further API adjustments are necessary).

I will prepare a contribution for it.

Does the DOT Graph view in Eclipse support Html-like-label display?

I've tried the following method: The plugin version I used was GEF 5.1.0m2 (2017/09/18), using the Importdot method in the Dotimport class to get Graph objects, create Dotgraphview objects -- the DOT Graph can be displayed in DOT Graph view, but HTML cannot be displayed correctly in the Dot Graph view. Is there any good solution?

Problem in ContentBehavior with an suboptimal datastructure

Hello GEF-Team,

we encountered a problem in the class org.eclipse.gef.mvc.fx.behaviors.ContentBehavior. We are on version 5.2.0.
The exception:
java.lang.IndexOutOfBoundsException: Index: 32, Size: 28 at java.base/java.util.ArrayList.rangeCheckForAdd(ArrayList.java:787) at java.base/java.util.ArrayList.addAll(ArrayList.java:731) at com.google.common.collect.ForwardingList.addAll(ForwardingList.java:71) at org.eclipse.gef.common.collections.ObservableListWrapperEx.addAll(ObservableListWrapperEx.java:122) at org.eclipse.gef.mvc.fx.parts.AbstractVisualPart.addChildren(AbstractVisualPart.java:200) at org.eclipse.gef.mvc.fx.behaviors.ContentBehavior.lambda$1(ContentBehavior.java:501) at com.google.common.collect.Maps$KeySet.lambda$forEach$0(Maps.java:3705) at java.base/java.util.HashMap.forEach(HashMap.java:1336) at com.google.common.collect.Maps$KeySet.forEach(Maps.java:3705) at org.eclipse.gef.mvc.fx.behaviors.ContentBehavior.synchronizeContentPartChildren(ContentBehavior.java:498) at org.eclipse.gef.mvc.fx.behaviors.ContentBehavior$2.onChanged(ContentBehavior.java:123) at org.eclipse.gef.common.collections.ListListenerHelperEx.notifyListChangeListeners(ListListenerHelperEx.java:650) at org.eclipse.gef.common.beans.binding.ListExpressionHelperEx.fireValueChangedEvent(ListExpressionHelperEx.java:109) at org.eclipse.gef.common.beans.property.ReadOnlyListWrapperEx$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyListWrapperEx.java:91) at org.eclipse.gef.common.beans.property.ReadOnlyListWrapperEx$ReadOnlyPropertyImpl.access$2(ReadOnlyListWrapperEx.java:87) at org.eclipse.gef.common.beans.property.ReadOnlyListWrapperEx.fireValueChangedEvent(ReadOnlyListWrapperEx.java:234) at javafx.base/javafx.beans.property.ListPropertyBase.lambda$new$0(ListPropertyBase.java:57) at javafx.base/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:164) at javafx.base/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73) at javafx.base/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233) at javafx.base/javafx.collections.FXCollections$UnmodifiableObservableListImpl.lambda$new$0(FXCollections.java:955) at javafx.base/javafx.collections.WeakListChangeListener.onChanged(WeakListChangeListener.java:88) at org.eclipse.gef.common.collections.ListListenerHelperEx.notifyListChangeListeners(ListListenerHelperEx.java:650) at org.eclipse.gef.common.collections.ListListenerHelperEx.fireValueChangedEvent(ListListenerHelperEx.java:600) at org.eclipse.gef.common.collections.ObservableListWrapperEx.setAll(ObservableListWrapperEx.java:355) at org.eclipse.gef.mvc.fx.parts.AbstractContentPart.refreshContentChildren(AbstractContentPart.java:424) at com.initka.nui.linedisplay.parts.LineGefPart.refreshContentChildren(LineGefPart.java:128) at com.initka.nui.linedisplay.parts.AbstractGefContentPart.lambda$0(AbstractGefContentPart.java:48)

The root of the problem is located here: ContentBehavior.addAll(...)
For the local variable childrenToAdd a HashMultimap is used.
This is not a good choice because in ContentBehavior.synchronizeContentPartChildren(...) you rely on the correct sequence of the keys of the map. (You expect to get the keys in the sequence of their introduction into the map.) But this is unfortunately not the case. And because you use IVisualPart.addChildren(List children, int index) the mentioned exception occurs.
If you see this snippet:

void testMap() {
    HashMultimap<Integer, String> childrenToAdd = HashMultimap.create();
    childrenToAdd.put(30, "one");
    childrenToAdd.put(31, "two");
    childrenToAdd.put(32, "three");
    System.out.println(childrenToAdd);  // => {32=[three], 30=[one], 31=[two]}
  }

It would be nice if you could fix this problem. For us it is quite a problem and we see no way to workaround this.

does GEF publish to any Maven Repository?

The GEF framework is very useful for me, i use it for render graph( use layout module), but i can't find any jar in Maven Central Repository, does GEF publish to any Maven Repository?

Java11/efxclipse/: PanOnStrokeHandler causes Canvas focuslost (DNDTabPane gains focus)

Hello,

we use GEF MVC in a efxclipse App and since we upgraded to Java 11 from Java 8 we have Problems with the PanOnStrokeHandler.

After one KeyEvent roundtrip through PanOnStrokeHandler the Event will consumed by the DNDTabPane to change the selected Tab. When the Tab is selected it gets the focus and the events are all consumed by the DNDTabPane, so you cannot use the Arrow Keys to move the Viewport.

I'm just a little bit cunfused, while i don't understand how it has ever worked...? The Java8 DNDTabPane has also KeyBindings.

Should the TypeStrokeGesture consume all KeyEvents when the Viewer is focused?

I've tried to overwrite the PanOnStrokeHandler and consumed the KeyEvents and it is slighly better but now there are some Issues with the placement of the Viewport. (sometimes it goes to the right/left/top/Bottom-Corner)

Do anybody have the same Issue or a Idea to solve this Issue ?

A testing tool for GEF/Zest

Hi,

We are currently using GEF and especially Zest to develop a plugin for Eclipse. The basic idea is to display an UML-Like graph representing the current projects in Eclipse workspace. However, we found out that there are no way to execute any GUI tests (similar to the ones ran by SWTBot). We guess that this is because Zest render the graph thanks to JavaFX. However, it could be a really great feature to provide a testing tool for GEF library. Is something similar going on ?

Thanks in advance.

Cannot reduce the visibility of the overridden method waitForEventProcessing() in DotHighlightingTest.xtend

I'm trying to setup an IDE and has fixed all problems so far but now the compiler complains in Eclipse

Description	Resource	Path	Location	Type
Cannot reduce the visibility of the overridden method waitForEventProcessing()	DotHighlightingTest.xtend	/org.eclipse.gef.dot.tests/src/org/eclipse/gef/dot/tests	line: 199 /org.eclipse.gef.dot.tests/src/org/eclipse/gef/dot/tests/DotHighlightingTest.xtend	Xtend Problem

The maven build indeed succeeds without a problem.

duplicate declaration of version ${javafx.version}

Running a maven build from command line I get the following warning

[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.gef.plugins:org.eclipse.gef.dot:eclipse-plugin:5.1.0-SNAPSHOT
[WARNING] 'profiles.profile[javafx.dependencies].dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.openjfx:javafx-controls:jar -> duplicate declaration of version ${javafx.version} @ line 52, column 17
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.gef.plugins:org.eclipse.gef.dot.ide:eclipse-plugin:5.1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.eclipse.xtend:xtend-maven-plugin is missing. @ line 24, column 12
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.eclipse.gef:org.eclipse.gef.dot.tests:eclipse-test-plugin:5.1.0-SNAPSHOT
[WARNING] 'profiles.profile[javafx.dependencies].dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.openjfx:javafx-controls:jar -> duplicate declaration of version ${javafx.version} @ line 53, column 17
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]

Font leak in DotExportRadioGroupFieldEditor.

This error is logged visiting all of GEF's preferences:

java.lang.Error: SWT Resource was not properly disposed
	at org.eclipse.swt.graphics.Resource.initNonDisposeTracking(Resource.java:172)
	at org.eclipse.swt.graphics.Resource.<init>(Resource.java:120)
	at org.eclipse.swt.graphics.Font.<init>(Font.java:80)
	at org.eclipse.gef.dot.internal.ui.preferences.DotExportRadioGroupFieldEditor.getRadioBoxControl(DotExportRadioGroupFieldEditor.java:207)
	at org.eclipse.gef.dot.internal.ui.preferences.DotExportRadioGroupFieldEditor.doFillIntoGrid(DotExportRadioGroupFieldEditor.java:145)
	at org.eclipse.jface.preference.FieldEditor.createControl(FieldEditor.java:248)
	at org.eclipse.gef.dot.internal.ui.preferences.DotExportRadioGroupFieldEditor.<init>(DotExportRadioGroupFieldEditor.java:109)
	at org.eclipse.gef.dot.internal.ui.preferences.DotExportRadioGroupFieldEditor.<init>(DotExportRadioGroupFieldEditor.java:94)
	at org.eclipse.gef.dot.internal.ui.preferences.GraphvizPreferencePage.addDotExportUI(GraphvizPreferencePage.java:238)
	at org.eclipse.gef.dot.internal.ui.preferences.GraphvizPreferencePage.createFieldEditors(GraphvizPreferencePage.java:182)
	at org.eclipse.jface.preference.FieldEditorPreferencePage.createContents(FieldEditorPreferencePage.java:227)
	at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:244)
	at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1433)
	at org.eclipse.jface.preference.PreferenceDialog$8.run(PreferenceDialog.java:1196)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1188)
	at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:618)
	at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)
	at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:820)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:817)
	at org.eclipse.jface.viewers.ColumnViewer.firePostSelectionChanged(ColumnViewer.java:1065)
	at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1665)
	at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1092)
	at org.eclipse.jface.viewers.Viewer.setSelection(Viewer.java:375)
	at org.eclipse.oomph.setup.ui.recorder.PreferenceInitializationDialog$Initializer$2$2.run(PreferenceInitializationDialog.java:427)
	at org.eclipse.oomph.ui.UIUtil$7.run(UIUtil.java:662)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4046)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3662)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:168)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:370)
	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:470)
	at org.eclipse.oomph.setup.ui.recorder.PreferenceInitializationDialog$Initializer.run(PreferenceInitializationDialog.java:383)
	at org.eclipse.oomph.setup.ui.recorder.PreferenceInitializationDialog.okPressed(PreferenceInitializationDialog.java:280)
	at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:468)
	at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)
	at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4071)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3659)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
	at org.eclipse.jface.window.Window.open(Window.java:799)
	at org.eclipse.oomph.setup.ui.recorder.RecorderManager$7.widgetSelected(RecorderManager.java:858)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4071)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3659)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
	at org.eclipse.jface.window.Window.open(Window.java:799)
	at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:64)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
	at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:417)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4071)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3659)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1152)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1043)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:152)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:648)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1459)

IllegalArgumentException during connection.removeAllControlPoints();

If you call org.eclipse.gef.fx.nodes.Connection.removeAllControlPoints() in a certain situation an IllegalArgumentException is thrown.

RouterExample.java.txt

Caused by: java.lang.IllegalArgumentException: Index out of range (index: 1, size: 1).
	at org.eclipse.gef.fx.nodes.Connection.removeControlPoint(Connection.java:1499)
	at org.eclipse.gef.fx.nodes.Connection.removeAllControlPoints(Connection.java:1391)
	at com.initka.nui.gef.core.development.RouterExample.initConnection(RouterExample.java:71)

We are using version 5.0.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.