eclipse-efx / efxclipse-rt Goto Github PK
View Code? Open in Web Editor NEWLicense: Eclipse Public License 1.0
License: Eclipse Public License 1.0
In e(fx)clipse 2.5.0 it is possible to drag anything onto the TabPane with DnDAddon enabled.
Scenario to reproduce the bug:
I've examined the code to identify the cause of this bug and I believe it is DnDTabPaneSkin, method tabPane_handleDragOver(), not performing any checks on the dragged content. However, I see that in a current repo this class is commented-out, so maybe the bug no longer exists in 3.0.0...
Currently there's only an implementation org.eclipse.fx.ui.workbench.fx
we should provide one in our main ui bundle
I just noticed that the ServiceSupplierTestCase is only working "by accident".
There are multiple mistakes that makes the tests work, although the test configuration is incorrect. This can be noticed when changing the order of the Service-Component entries.
the value for service.ranking needs to be an Integer. The property definition defaults to a String value. Therefore :Integer needs to be specified explicitly on the test services.
in testDynamicAddRemove() a new service is with service.ranking 2 is registered and it is expected that it becomes the highest ranked. But SampleServiceA has a service.ranking of 50. Therefore the new service is not higher ranked. This needs to be changed e.g. to service.ranking 52
In testDynamicAddRemove() and testInitialInject() at the end it is expected that SampleServiceB is the second service in the service registry. This works because of the order in the MANIFEST. With the addition of the FilterServiceA which has a service.ranking of 1 and FilterServiceB which has no service.ranking which makes it a 0, the expected behavior changes if the order of the Service-Component entries changes. I suggest to add a service.ranking for SampleServiceB to make the test reliable.
See build failures since last code changes because of jdt-compiler bugs
System details:
e(fx)clipse version: 2.5.0
OS: Windows 10
Jdk: (x64) 8_111
Jre: (x64) 8_45
I have a small application that uses a org.eclipse.fx.ui.controls.filesystem.ResourceTreeView.
When i create or move a bunch of files using the windows explorer that are displayed in the ResourceTreeView i often get a ConcurrentModificationException:
Exception in thread "pool-2-thread-6" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:386)
at java.util.AbstractList$Itr.next(AbstractList.java:355)
at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
at org.eclipse.fx.ui.controls.filesystem.skin.PathItemImpl$DirPathItemImpl.handlePathModification(PathItemImpl.java:195)
at org.eclipse.fx.ui.controls.filesystem.skin.PathItemImpl$DirPathItemImpl$$Lambda$256/681963445.accept(Unknown Source)
at org.eclipse.fx.core.internal.FileSystemServiceImpl$CheckThread.lambda$1(FileSystemServiceImpl.java:151)
at org.eclipse.fx.core.internal.FileSystemServiceImpl$CheckThread$$Lambda$386/1663517165.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Or this ConcurrentModificationException:
Exception in thread "JavaFX Application Thread" java.util.ConcurrentModificationException
at java.util.SubList.checkForComodification(AbstractList.java:769)
at java.util.SubList.listIterator(AbstractList.java:695)
at java.util.AbstractList.listIterator(AbstractList.java:299)
at java.util.SubList.iterator(AbstractList.java:691)
at javafx.collections.ModifiableObservableListBase$SubObservableList.iterator(ModifiableObservableListBase.java:268)
at java.util.Spliterators$IteratorSpliterator.estimateSize(Spliterators.java:1821)
at java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:408)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:511)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.eclipse.fx.ui.controls.filesystem.skin.ResourceTreeViewSkin$DirTreeItem._handleListModification(ResourceTreeViewSkin.java:185)
at org.eclipse.fx.ui.controls.filesystem.skin.ResourceTreeViewSkin$DirTreeItem.lambda$0(ResourceTreeViewSkin.java:166)
at org.eclipse.fx.ui.controls.filesystem.skin.ResourceTreeViewSkin$DirTreeItem$$Lambda$365/973491168.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
at com.sun.javafx.application.PlatformImpl$$Lambda$48/349422632.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(PlatformImpl.java:294)
at com.sun.javafx.application.PlatformImpl$$Lambda$47/237061348.run(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$145(WinApplication.java:101)
at com.sun.glass.ui.win.WinApplication$$Lambda$36/2117255219.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
Sometimes there is also an UnsupportedOperationException:
Exception in thread "pool-2-thread-4" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
at javafx.collections.ListChangeBuilder.nextRemove(ListChangeBuilder.java:204)
at javafx.collections.ObservableListBase.nextRemove(ObservableListBase.java:150)
at javafx.collections.ModifiableObservableListBase.remove(ModifiableObservableListBase.java:181)
at java.util.AbstractList$Itr.remove(AbstractList.java:374)
at java.util.Collection.removeIf(Collection.java:415)
at org.eclipse.fx.ui.controls.filesystem.skin.PathItemImpl$DirPathItemImpl.handlePathModification(PathItemImpl.java:191)
at org.eclipse.fx.ui.controls.filesystem.skin.PathItemImpl$DirPathItemImpl$$Lambda$256/894210976.accept(Unknown Source)
at org.eclipse.fx.core.internal.FileSystemServiceImpl$CheckThread.lambda$1(FileSystemServiceImpl.java:151)
at org.eclipse.fx.core.internal.FileSystemServiceImpl$CheckThread$$Lambda$361/1225018599.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
I think I even saw a NullPointerException once, but i can't find the Stacktrace for that one.
Move some methods to Window
For allowing this additional kind of input devices, I need access to some private fields.
For rotation
cameraXRotation
cameraYRotation
cameraZRotation
For moving and zooming
contentScale
cameraPosition
As reference for such an input device I have implemented a JNI plugin for the Connexion3D Mouse
on https://github.com/hjbflyer/3DConnexionAPI.
The service xml were not updated with the change to #39
[2017-03-23 12:34:16,594] [de.emsw.gosa.logging.osgi.OsgiLogListener@1d1f3f7] ERROR de.emsw.gosa.logging.osgi.OsgiLogListener org.eclipse.fx.ui.controls => [SCR] Method was not found: setLoggerFactory(...)
Details:
Problematic reference = Reference[name = LoggerFactory, interface = org.eclipse.fx.core.log.LoggerFactory, policy = dynamic, policy-option = greedy, cardinality = 1..1, target = null, bind = setLoggerFactory, unbind = unsetLoggerFactory, updated = null]
of service component = org.eclipse.fx.ui.controls.internal.FXThreadSynchronizeImpl
component implementation class = org.eclipse.fx.ui.controls.internal.FXThreadSynchronizeImpl
located in bundle with symbolic name = org.eclipse.fx.ui.controls
bundle location = reference:file:/D:/GitRepos/gosa21/gosa/lib/Target/efxclipse/plugins/org.eclipse.fx.ui.controls_3.0.0.201703231044.jar
Will create a pull request ...
eclipse.buildId=unknown
java.version=1.8.0_121
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments: -product com.bosch.composeandconfigure.app.product -clearPersistedState
Command-line arguments: -product com.bosch.composeandconfigure.app.product -data C:\Users\MJU1KOR\workspace_demo_running/../runtime-com.bosch.composeandconfigure.app.product -dev file:C:/Users/MJU1KOR/workspace_demo_running/.metadata/.plugins/org.eclipse.pde.core/com.bosch.composeandconfigure.app.product.product/dev.properties -os win32 -ws win32 -arch x86 -consoleLog -clearPersistedState
!ENTRY org.eclipse.equinox.app 4 0 2017-03-23 16:54:17.846
!MESSAGE Exception in Application start method
!STACK 0
java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.eclipse.e4.core.di.InjectionException: Unable to process "LoggerProviderImpl.factory": no actual value was found for the argument "LoggerFactory".
When performing drag event started from any JavaFX component over the StyledTextArea, which was set not to be editable, an insertion marker is drawn while it shouldn't be.
A possible cause is StyledTextSkin, lines 444 - 462, where updateInsertionMarkerIndex()
method is invoked.
In https://bugs.eclipse.org/bugs/show_bug.cgi?id=494162 we fixed only first half of the problem but forgot the code in createWidget()
The location of the DS service xml files needs to be specified in the project settings
To implement things like event-loop spinning (eg in JUnit-Test, ...) we need to have an API on ThreadSynchronize and to make that work we need APIs who implement something similar to an event loop.
Drag and Drop Support for TabPane uses DndTabPaneFactory instead of a subclass. This prevents the use in FXML.
Currently the application closes when the last e4-window ist removed from the application.
In our application, we also open legacy windows in our code that are hard to break up into parts fot the application model. We would like to have the possibility to keep the e4fx application running while we are only displaying legacy windows. From here we can then reactivate e4-windows (set toBeRendered=true or add them to the children of application) that are currently not showing .
A headless mode like this could also be usefull for other applications, that do not directly show a window on startup but wait for a specific event before displaying a ui.
If the service that should be injected is marked as @optional and at creation time of the consumer there is no service instance available, the consumer will never get a service instance injected. The tracking is only performed in case there is a service registered already.
When populating the root directories of a ResourceTreeView
with :
FileSystems.getDefault().getRootDirectories().forEach( rootDir ->
{
if ( Files.isDirectory( rootDir, LinkOption.NOFOLLOW_LINKS ) )
{
System.out.println( rootDir );
System.out.println( rootDir.getFileName() );
final RootDirItem rootDirItem = createPath( rootDir );
requireNonNull( rootDirItem );
browser.getRootDirectories().add( rootDirItem );
}
} );
it fails with an NPE
, because PathItemImpl
uses :
@Override
public String getName() {
return this.path.getFileName().toString();
}
getFileName
, which is null on filesystem root paths like C:\
.
truncated_log_pathitemimpl_npe.txt
Migrated from https://bugs.eclipse.org/bugs/show_bug.cgi?id=512250.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.