Tuukka Lehtonen [Thu, 19 Jan 2017 23:06:09 +0000 (01:06 +0200)]
Issues-view menu improvements & Variable-based issue context resolution
This adds a new [Resource] valued property for Issue instances that is
by default defined to just read the old Issue.HasContexts L0.List
property. The property allows for more specific domains to override the
issue context resource calculations.
To support this calculation a noteworthy change needed to be made to
org.simantics.db.layer0.function.All.getStandardChildDomainPropertyVariable.
It now performs a new final fallback step that resembles how the
standard procedural variables work. If the parent variable has a solver
variable node defined, it will use NodeManager.getClassifications as an
attempt to read the type Resource of the variable. If this is
successful, the asserted properties of the type are searched to find a
property matching name of the the requested property. To support this a
new request was added: UnescapedAssertedPropertyMapOfResource. This
request is also used to optimize the implementation of
All.standardGetValue[12].
These changes also add a Help action for Issues view context menu that
looks for the "contextHelpId" String property from the Variable
describing the issue.
Hannu Niemistö [Wed, 18 Jan 2017 15:55:14 +0000 (17:55 +0200)]
Fixed memory leaks of SCL module listening systems
The main addition in this change are backlinks from UpdateListeners to
Observables. They make it possible to implement
UpdateListener.stopListening that removes the listener from all
Observables. This method is called automatically before the listener is
notified about the change, but client code can also call it when it
becames disinterested about changes.
Because now the client code is reposible for signaling when the
listening stops, the listeners are no more store to WeakHashMap in
ModuleEntry.
This change also contains a change in the default imports of some graph
based modules (Prelude -> StandardLibrary).
Tuukka Lehtonen [Tue, 17 Jan 2017 14:59:42 +0000 (16:59 +0200)]
Removed unwanted and broken toolbar contributions
These innocent toolbar menuContribution extensions seem to have been the
cause of the ConcurrentModificationException that came from inside
Eclipse code when this plug-in was in use and the Eclipse platform
version used was 4.5.2. It didn't happen on 4.5.1.
Tuukka Lehtonen [Fri, 13 Jan 2017 12:56:41 +0000 (14:56 +0200)]
Fixed adapters.xml line endings to standard LF.
For some reason one of the original adapters.xml files had gotten a
macintosh-style CR line ending on its first line which started the
proliferation of CR line endings in all the adapters.xml files.
Tuukka Lehtonen [Tue, 10 Jan 2017 20:32:38 +0000 (22:32 +0200)]
Fixed component type editor Lift Properties domain setting.
Previously Lift Properties would copy the lifted property relation over
to the user component type as-is which would also leave all the existing
L0.HasDomain relations of the relation in the copy. This can cause
totally unwanted HasDomain definitions in the property relations which
in turn can cause unexpected export-import problems later because of
those unexpected dependencies.
This changes the code to first remove all the existing HasDomain
definitions from the copied property relation and then add the HasDomain
relation to the target component type.
Tuukka Lehtonen [Thu, 5 Jan 2017 14:09:37 +0000 (16:09 +0200)]
Removal prevention of different types of resources disabled
This "safety feature" has been in the model browser for a long time but
it feels like its time to remove it as it is really basically only an
annoyance and seldom saves the user from any real peril.
Tuukka Lehtonen [Wed, 4 Jan 2017 12:38:06 +0000 (14:38 +0200)]
Fixed IEditorPart reference (memory) leaks from ResourceEditorSupport
ResourceEditorSupport.validationRequest gave IEditorPart as an argument
to UnaryRequest which caused the reference to remain in the DB client's
caches for very long times. This consumed the JVM heap rather quickly
with editors that require a lot of memory and never explicitly free
(nullify) it.
Jussi Koskela [Thu, 29 Dec 2016 15:54:25 +0000 (17:54 +0200)]
Save cluster sets only when creating DB snapshots
Performance improvement. Also fix the order of saving cluster sets and
persisting head state. This (luckily) worked correctly earlier as well,
since the cluster sets were saved after each change.
Tuukka Lehtonen [Thu, 29 Dec 2016 11:05:27 +0000 (13:05 +0200)]
Improved error handling in shared library import wizard
Previously the wizard catched all exceptions in the wrong place causing
the UI to never show any errors to the user and just close the wizard as
if everything was successful. The problems were only printed to the
console and in selected cases also to the workspace error log.
This changes the import code to not catch any exceptions and let the UI
side deal with the thrown exceptions by logging them, showing them to
the user as the wizard's error message and in a separate error dialog.
jsimomaa [Wed, 28 Dec 2016 14:05:48 +0000 (16:05 +0200)]
ReflectionAdapter2 does not handle all Throwables
ReflectionAdapter2.adapt() does not catch all throwables (e.g.
NoClassDefFoundError) enabling the possibility that the throwable is not
shown to the developer in any manner (console or log)
Hannu Niemistö [Wed, 28 Dec 2016 10:46:48 +0000 (12:46 +0200)]
Improvements to SCL compiler error messages
Better error message if type annotation has different number of
parameters than the function definition.
Refactored method names, we have now getSyntacticFunctionArity for
estimating function arity without type information and
getFunctionDefinitionPatternArity for arity calculations of patterns.
Hannu Niemistö [Tue, 27 Dec 2016 14:30:02 +0000 (16:30 +0200)]
Reverted if-without-else feature in SCL
Removed possibility to have if-then -construct without else, because the
implementation changed parsing rules and some existing code was broken.
The feature might be added in future, if better implementation is found.
Hannu Niemistö [Tue, 20 Dec 2016 10:09:30 +0000 (12:09 +0200)]
Merged changes from feature/scl to master.
This commit contains lots of SCL compiler and runtime changes:
* New CHR-rule based sublanguage. This change alters meaning of
when-keyword and so some code using when may break.
* Removed type classes Eq and Hashable. Compiler now generates and uses
Java methods equals and hashCode. This change is needed for better
interoperability with Java code.
* Type based overloading for symbols imported from different modules
* Some expressions ignore their return value (statements in
do/let/where, if and match cases if the return value of if/match is
ignored). These expressions can have any type and if/match expression
branches may have different types. Also if-expressions may have only
else branch. If the return value of apply-experssion is ignored, the
expression cannot be partial application that does not have
side-effects.
* View pattern support
(https://ghc.haskell.org/trac/ghc/wiki/ViewPatterns)
* Lambda-match support
(https://ghc.haskell.org/trac/ghc/wiki/LambdasVsPatternMatching)
* String interpolation can be used also in patterns
* SCL compiler regression test suite has been moved to a new bundle
org.simantics.scl.compiler.tests
* Improvements to SCL module editor syntax coloring
* SCL compiler refactorings, for example all name constants are now in a
dedicated class Names and CompilationContext merging old context classes
* Improved byte code for comparisons
* Improved code generation from string interpolation
* Anonymous object support in SCL backend (not yet frontend support)
* Bugfixes and new regression tests
Jussi Koskela [Mon, 19 Dec 2016 15:24:01 +0000 (17:24 +0200)]
Import/export menuitems missing from Simantics Desktop product
Import/export were moved to separate feature
(org.simantics.modeling.ui.workbench.feature) in #6856, but this feature
was not included to Simantics Desktop product.
Tuukka Lehtonen [Mon, 19 Dec 2016 07:55:48 +0000 (09:55 +0200)]
Fix desktop product configuration
Removed -Djava.net.preferIPv4Stack=true which is totally out of date. It
was an early day procore hack.
Added -Djava.util.Arrays.useLegacyMergeSort=true because the G2D scene
graph comparator for some still unknown reason runs into problems with
Java's TimSort implementation.
Tuukka Lehtonen [Sun, 18 Dec 2016 19:25:07 +0000 (21:25 +0200)]
Include source features in generated SDK P2 repository
The problem was that the generated org.simantics.sdk.source feature was
missing from org.simantics.sdk.repository/category.xml and thus the
build would not include any sources.
Also bumped used tycho version to 0.26.0 from 0.25.0.
Tuukka Lehtonen [Sun, 18 Dec 2016 15:53:43 +0000 (17:53 +0200)]
Target platform release work for 1.25.0.
Removed useless releng/org.simantics.target.
Moved releng/org.simantics.target/simantics.target to
org.simantics.sdk.build.targetdefinition/simantics.target and changed
its contents to match what shall be published on the web as
http://www.simantics.org/download/<refspec>/simantics.target.
Antti Villberg [Thu, 8 Dec 2016 09:08:39 +0000 (11:08 +0200)]
Moved File menu Export and Import contributions to separate feature.
The contributions were previously in org.simantics.desktop.ui. It was
deemed best to move them to a separate plug-in and feature
(org.simantics.modeling.ui.workbench) to make it possible to prevent
forcefully including the contributions in all Simantics products.
Tuukka Lehtonen [Thu, 8 Dec 2016 21:48:11 +0000 (23:48 +0200)]
Fixed labels for search results restored from previous search memento
Also made the details label shown at the bottom of the dialog for the
selected entry a bit more legible. The URI that was previously shown is
now a root relative unescaped path for results contained by a model
root.
Antti Villberg [Thu, 8 Dec 2016 09:06:36 +0000 (11:06 +0200)]
Re-enabled CTRL+SHIFT+R resource search dialog in org.simantics.debug.ui
This fixes the old problem where the index searches were not limited to
e.g. a 1000 hits but to Integer.MAX_VALUE instead. If the user happened
to write 'a' into the search field, this would return pretty much every
indexed resource and kill the JVM eventually.
This also fixes a problem from
org.simantics.modeling.ui.diagramEditor.DiagramViewer which did not
check diagram resource immutability before attempting to write a diagram
page description to it because it was missing. This can happen if you
use the resource search dialog to open e.g. diagram symbols from the
ontologies.
Tuukka Lehtonen [Wed, 30 Nov 2016 13:48:51 +0000 (15:48 +0200)]
Added support for JSON PlainTextTransferable to charts and subscriptions
With these changes dragging JSON text using
org.simantics.ui.dnd.PlainTextTransfer on top of model browser charts
and subscriptions and also on a chart editor is now supported.
The dragged JSON data must be in the following format:
<pre>
{
"type" : "variable",
"uri" : "variable space URI to dragged entity",
"defaultPropertyUri" : "variable space URI to default referenced
property variable of the dragged entity"
}
</pre>
Only "type" and "defaultPropertyUri" keys are required.
Tuukka Lehtonen [Wed, 30 Nov 2016 12:57:40 +0000 (14:57 +0200)]
Fixed regression in TrendNode.
The regression was caused by change r32901 and merge r32981. The problem
was that the code tried to keep existing VertRuler nodes alive as much
as possible to keep their (transient) settings in place between chart
configuration reloads. However the code failed to do this correctly and
caused IndexOutOfBoundsExceptions and other corollary failures.
This fix needs to go into platform branches 1.22.2 and 1.22 as well.