Tuukka Lehtonen [Tue, 18 Dec 2018 14:37:39 +0000 (16:37 +0200)]
Optimized Layer0Utils.getPossibleDefaultBinding
Removed badly named datatype_binging public static field from
Layer0Utils in favor of Bindings.DATATYPE. If you were using the
previous Layer0Utils constant in some place, just replace it.
The problem in the optimized code was that it was constantly converting
SCL types like "Double", "Boolean" etc. to databoard datatypes using the
databoard type parser even though those basic primitive types should
have been already premapped somewhere to prevent the need for any kind
of parsing.
Tuukka Lehtonen [Wed, 12 Dec 2018 21:03:41 +0000 (23:03 +0200)]
Fixed target platform problem with missing net.jcip.annotations
It seems that updating eclipse.collections caused
net.jcip.annotations dependency to be removed which meant
the bundle is no longer in the external dependencies P2 site.
Tuukka Lehtonen [Fri, 30 Nov 2018 20:08:02 +0000 (22:08 +0200)]
Fixed PropertyPageView to publish its selection to the workbench
Removing the property page view site selection provider caused the
workbench to naturally never receive any selections from the view thus
breaking any handlers whose activity/functionality relies on the current
workbench selection being accurate also with property tabs.
jsimomaa [Fri, 30 Nov 2018 12:04:34 +0000 (14:04 +0200)]
Speeding up platform startup time
Shaved ~1.5seconds off by starting SCL compiler priming at the beginning
of platform startup on the background before the LifeCycleProcesses
project feature needs the compiler.
Also removed seemingly unused VirtualGraphInitializer that installed
virtualgraphs/*.tg files into random memory-persistent virtual graphs
during platform startup. It simply piles on some startup overhead and
does nothing.
jsimomaa [Mon, 26 Nov 2018 20:15:33 +0000 (22:15 +0200)]
Move shutdown of worker pools to SimanticsPlatform.shutdown()
Closing of public worker pools should be done before we are closing our
db-connection. The platform-shutdown routine has already started and
therefore it should not be meaningful to execute any more work for a
closing platform
jsimomaa [Mon, 26 Nov 2018 20:11:19 +0000 (22:11 +0200)]
Remove unnecessary logback logger definition
org.simantics logger is basically identical with the root logger what
comes to configuration. This specific logger can be removed to keep the
configuration clear and simple.
Also, this makes it more complicated to programmatically modify loggers
as both the root logger and org.simantics logger has to be
programmatically configured
Jussi Koskela [Wed, 31 Oct 2018 14:03:38 +0000 (16:03 +0200)]
Update structure and value cache when refreshing variable
Previous implementation only updated value cache contents after the
previous cached results expired, which could cause unacceptable delays
in new NodeManager query results. Also, if there were no listeners for
the NodeManager query results, results wouldn't get updated anymore.
Antti Villberg [Fri, 16 Nov 2018 13:11:00 +0000 (15:11 +0200)]
Separate DB and non-DB code to different structural sync bundles
Previously, code in org.simantics.structural.synchronization.client was
in packages that were dangerously named
org.simantics.structural.synchronization, which could easily escalate
into split packages between bundles with more of such sloppy naming.
This moves the whole org.simantics.structural.synchronization.base
package from .structural.synchronization.client to
.structural.synchronization which changes nothing from the bundle user's
point of view. Code that stays in .structural.synchronization.client is
moved into the org.simantics.structural.synchronization.client package
to keep things cleaners.
Jussi Koskela [Wed, 24 Oct 2018 11:52:35 +0000 (14:52 +0300)]
Move state changes away from render method to refresh method
Backwards compatibility is preserved by calling refresh for each node at
the beginning of rendering. This is performed automatically in
G2DSceneGraph.render contrary to original requirement. This change is
required to support external diagram renderers.
Tuukka Lehtonen [Mon, 12 Nov 2018 11:38:41 +0000 (13:38 +0200)]
Added -f SCL/Module/function argument for BaselineCreatorApplication
This allows the baseline creator to run a custom SCL initialization
function that is included in the currently running platform after the
platform has been started up and before the platform shut down.
Tuukka Lehtonen [Sat, 10 Nov 2018 10:43:08 +0000 (12:43 +0200)]
Fixed GraphExplorerImpl to set selection upon keyboard-based selection
Previously scrolling the selection using the keyboard and then pressing
Enter to open the selected resource would result in the wrong resource
being opened because the selection hadn't yet propagated through the
postSelection event.
Tuukka Lehtonen [Fri, 9 Nov 2018 12:04:08 +0000 (14:04 +0200)]
Still fixes history collection value band endTime setting and rendering
Previous changes set value band end time to be the same as the next
value band's start time. However this caused the problem that there is
no way of telling during rendering where exactly within the previous
value band did the band's value go out of dead band and since t_end does
not tell us this. This means that line-rendering (not stepped sample
rendering) will get drawn invalidly if t_end > t_begin within a value
band.
The fix was to set t_end to the last timestamp where the value was still
within deadband, i.e:
```
|t0 t0_end | VALUE BAND #0 t0 < t0_end
| | |t1 | VALUE BAND #1 t1 = t1_end
| | |t1_end |
| | | |t2... VALUE BAND #2
ts0----ts1---- ts2------ts3---
v=0 v=0 v=1 v=2
```
Tuukka Lehtonen [Thu, 8 Nov 2018 09:51:17 +0000 (11:51 +0200)]
Usability fixes for GraphExplorerImpl -related WB selection propagation
GraphExplorerImpl now uses JFace's OpenStrategy to implement the post
selection provider mechanism which should work just like in JFace
Viewers.
SWTExplorer no longer listens to both selection and postSelection
changes, which caused large amounts of unnecessary selection propagation
to happen. It listens to postSelection if IPostSelectionProvider is
available and selection if not.
ModelledView did not implement IPostSelectionProvider at all and
provided just an ISelectionProvider to the workbench. This partially
caused other parts, like the property view to always react to model
browser selection changes via immediate selection events instad of post
selection events.
The important lesson here is to just listen to either postSelection or
selection, not both.
jsimomaa [Tue, 6 Nov 2018 13:15:35 +0000 (15:15 +0200)]
Initial support for concurrency in databoard, bindings and serializers
* This fixes the parallellization problem in PlatformUtil.getAllGraphs
where parallel streams can now be used.
* VariableBinding is removed because it hasn't ever been used and it is
deadlock prone and not very useful
* Removed SerialisationSupport field from ResourceBinding as it has been
commented out for ages now. If we need this at some point, let's add it
back.
Tuukka Lehtonen [Wed, 7 Nov 2018 12:18:53 +0000 (14:18 +0200)]
Add org.eclipse.ui.monitoring to org.simantics.rcp feature
This allows users to enable UI freeze analysis in products making it
easier for developers to analyze freezing problems without building
debug versions.
Tuukka Lehtonen [Tue, 30 Oct 2018 10:02:32 +0000 (12:02 +0200)]
Added missing Automatic-module-name headers and fixed split package
org.simantics.jdbc and org.simantics.jdbc.ontology had a split package
problem with package org.simantics.jdbc. JDBCResource was moved to
org.simantics.jdbc.ontology as it should have been.