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.
Tuukka Lehtonen [Tue, 30 Oct 2018 07:23:54 +0000 (09:23 +0200)]
Added possibility to directly schedule filter setting type URI
Also changed the typeURI load to directly set the filter text instead of
scheduling it to be set after a quiet time (500ms). This makes way for a
bit cleaner UI experience.
Tuukka Lehtonen [Sat, 27 Oct 2018 17:35:14 +0000 (20:35 +0300)]
UI locking fixes for GraphExplorer implementations
GraphExplorer implementations contained ExplorerState restore code that
was ran synchronously in the UI thread. It will possibly require DB read
transactions which locks the UI up. Persisted explorer state loading has
now been moved into a Job from GraphExplorer implementations and
GraphExplorerComposite.
Also contains fixes for doSetColumns of all graph explorer
implementations which was using a Map with the wrong keys.
Hannu Niemistö [Fri, 26 Oct 2018 13:19:20 +0000 (16:19 +0300)]
New implementation NearestOwnerFinder of CommonDBUtils.getNearestOwner
Deprecated CommonDBUtils.getNearestOwner and replaced most of its uses
by new methods in the class NearestOwnerFinder. Note that this modifies
the behavior in some previously unclear cases.
Tuukka Lehtonen [Fri, 19 Oct 2018 12:22:27 +0000 (15:22 +0300)]
Fixed history data collection minmax stream updates and plot rendering
After commit 30ca6dab the chart was rendering all plots as SAMPLING
instead of LINE because the commit changed all stream items' endTime
update logic to actually for all streams instead of just the minmax
stream. The fix was to change the plot rendering to still render
diagonal lines instead of step functions regardless of of the start and
end time of each history stream value band are. The lines vs. sampling
settings is now solely based on the chart rendering preferences.