stefanrinderle / softvis3d Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Lesser General Public License v3.0
License: GNU Lesser General Public License v3.0
From @stefanrinderle on November 15, 2015 21:56
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#14
I would like to reactivate different colors for the buildings based on metrics. The colors should start with green #00ff00 and go all the way to red #ff0000 based on the max metric etc.
I also would like to discuss the colors if no metric for the color is selected. I would vote for a single color instead of a random color for each platform / package. Why?
On the other hand, the different colors seperate the packages. What do you think?
I created this new issue to focus on the SQ release. #8 was moved to the second milestone for now as i don't see it as mandatory. Ok?
Currently, the CI server build fails if "npm run test:coverage" is executed.
See TravisCI build: https://travis-ci.org/stefanrinderle/softvis3d/builds/171656619
The npm command can be adjusted in /softvis3d/softvis3d-frontend/pom.xml
It would be great to see the package name of the street in the visualization.
Very nice visualisation of the software archtiecture depending on different metrics. Thanks a lot for this project.
We had a small idea -probably already know :):
What about saving states of the "city" each day and allowing the user to switch between the saved state. The view could automatically be refreshed. Like that, the user can see the evolution of the city and the code...
All the best,
Sascha (4th floor :) ), Mario
Once i added a second file into the folder a new SubTree was created for interfaces
. So i assume it's Problem with folders containing only a single file...
For reproduction on the softvis 0.5-branch:
git clone http://git.ungolianth.de/ungolianth/codecity-visualizer.git
cd codecity-visualizer
git checkout b1b8036d
and sonar-properties:
sonar.projectKey=ccv
sonar.projectName=CodeCityVisiualizer
sonar.projectVersion=0.1.3
sonar.sources=src
sonar.sourceEncoding=UTF-8
From @stefanrinderle on November 15, 2015 21:36
button "r" and key "r" should be available
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#7
The complexity of the Softvis3D-Frontend will grow a lot in the long-term. I intend to provide a lot of configuration options, which can influence the behavior of the plugin at runtime. Looking forward it is not effective to expand on the currently existing code based on AngularJS. We should agree on a future-proof framework and design a structure that meets our needs and goals.
Then we have to determine a strategy to port the existing functionality into the new framework, before we develop new features. Can we do a Big Bang?
Within #23, we reduced the metrics which can be used for the color of the building. Although we should prevent that any metric to be used as in previous versions, there should be more meaningful metrics available.
As we are now part of the update center, it is really important that our releases work as expected. In addition to a good unit test coverage for the frontend code, we need integration tests to check multiple releases of sonarqube with the plugin.
Acceptance criteria:
The Project is rather complex, as multiple webpack instances exist, that are spread across the the entire softvis3d-project. Refactoring and extending the plugin would become a lot easier, once the code layout is simplified and dependencies are easily visible.
For discussion I will add the suggested plugin layout once again:
softvis3d-sonar
|
|--- Backend (Java)
|--- Sonar-Plugin-Integration
|--- Backend-Service
|
|--- Frontend (webpack)
|--- User Interface (Initially SonarQube-dependent)
|--- Softvis-Modell (SonarQube-dependent: Connects to Backend, Load analyzed code structure, Load Metrics, Create & maintain software modell)
|--- Softvis-Illustrator (Configurations interface for the UI, Finalizes the model for drawing)
|--- ThreeJS-Renderer (Independent of SonarQube, Provide Services as an interface for the UI)```
From @guidowojke on November 13, 2015 14:49
Hallo everybody,
simply putting the file sonar-softVis3D-plugin-0.3.jar into the ./sonarqube-5.2/extensions/plugins folder and restarting sonar with sonar.sh file produces the following error:
uname -a: Linux 3.2.0-4-amd64 1 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux
--> Wrapper Started as Daemon
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
2015.11.13 15:25:52 INFO app[o.s.p.m.JavaProcessLauncher] Launch process[search]: /export/home/bsci/tools/jdk/jdk1.8.0_40/jre/bin/java -Djava.awt.headless=true -Xmx1G -Xms256m -Xss256k -Djava.net.preferIPv4Stack=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Djava.io.tmpdir=/export/home/bsci/server/sonarqube/sonarqube-5.2/temp -cp ./lib/common/*:./lib/search/* org.sonar.search.SearchServer /tmp/sq-process6222138717536646989properties
2015.11.13 15:25:53 INFO es[o.s.p.ProcessEntryPoint] Starting search
2015.11.13 15:25:53 INFO es[o.s.s.SearchSettings] Elasticsearch listening on 127.0.0.1:9001
2015.11.13 15:25:53 INFO es[o.elasticsearch.node] [sonar-1447424752708] version[1.7.2], pid[15850], build[e43676b/2015-09-14T09:49:53Z]
2015.11.13 15:25:53 INFO es[o.elasticsearch.node] [sonar-1447424752708] initializing ...
2015.11.13 15:25:53 INFO es[o.e.plugins] [sonar-1447424752708] loaded [], sites []
2015.11.13 15:25:53 INFO es[o.elasticsearch.env] [sonar-1447424752708] using [1] data paths, mounts [[/export (/dev/drbd0)]], net usable_space [871gb], net total_space [899.5gb], types [xfs]
2015.11.13 15:25:54 WARN es[o.e.bootstrap] JNA not found. native methods will be disabled.
2015.11.13 15:25:55 INFO es[o.elasticsearch.node] [sonar-1447424752708] initialized
2015.11.13 15:25:55 INFO es[o.elasticsearch.node] [sonar-1447424752708] starting ...
2015.11.13 15:25:55 INFO es[o.e.transport] [sonar-1447424752708] bound_address {inet[/127.0.0.1:9001]}, publish_address {inet[/127.0.0.1:9001]}
2015.11.13 15:25:55 INFO es[o.e.discovery] [sonar-1447424752708] sonarqube/u5SDHQiES1uYcG3EmBhwTw
2015.11.13 15:25:58 INFO es[o.e.cluster.service] [sonar-1447424752708] new_master [sonar-1447424752708][u5SDHQiES1uYcG3EmBhwTw][bscibeadev02.be.server.lan][inet[/127.0.0.1:9001]]{rack_id=sonar-1447424752708}, reason: zen-disco-join (elected_as_master)
2015.11.13 15:25:58 INFO es[o.elasticsearch.node] [sonar-1447424752708] started
2015.11.13 15:25:58 INFO es[o.e.gateway] [sonar-1447424752708] recovered [6] indices into cluster_state
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=160m; support was removed in 8.0
2015.11.13 15:25:59 INFO app[o.s.p.m.Monitor] Process[search] is up
2015.11.13 15:25:59 INFO app[o.s.p.m.JavaProcessLauncher] Launch process[web]: /export/home/bsci/tools/jdk/jdk1.8.0_40/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djruby.management.enabled=false -Djruby.compile.invokedynamic=false -Xmx768m -Xms256m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true -Dhttps.proxyHost=********** -Dhttps.proxyPort=3128 -Djava.io.tmpdir=/export/home/bsci/server/sonarqube/sonarqube-5.2/temp -cp ./lib/common/*:./lib/server/*:/export/home/bsci/server/sonarqube/sonarqube-5.2/lib/jdbc/postgresql/postgresql-9.3-1102-jdbc41.jar org.sonar.server.app.WebServer /tmp/sq-process5056604064872068091properties
2015.11.13 15:26:00 INFO web[o.s.p.ProcessEntryPoint] Starting web
2015.11.13 15:26:00 INFO web[o.s.s.app.Webapp] Webapp directory: /export/home/bsci/server/sonarqube/sonarqube-5.2/web
2015.11.13 15:26:00 INFO web[o.a.c.h.Http11NioProtocol] Initializing ProtocolHandler ["http-nio-0.0.0.0-8999"]
2015.11.13 15:26:00 INFO web[o.a.t.u.n.NioSelectorPool] Using a shared selector for servlet write/read
2015.11.13 15:26:01 INFO web[o.e.plugins] [sonar-1447424752708] loaded [], sites []
2015.11.13 15:26:01 INFO web[o.s.s.p.ServerImpl] SonarQube Server / 5.2 / f045be98be3ba032b6b19d71574038eeeb91803b
2015.11.13 15:26:01 INFO web[o.sonar.db.Database] Create JDBC data source for jdbc:postgresql://*************/sonar
2015.11.13 15:26:02 INFO web[o.s.s.p.DefaultServerFileSystem] SonarQube home: /export/home/bsci/server/sonarqube/sonarqube-5.2
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin Build Stability / 1.3 / adf81f731fc54be04431d4ccf753900c44ec33bd
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin Checkstyle / 2.3 / 7c62fe8a00123b8df1fa16cc25ad77888e50e811
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin Findbugs / 3.3 / e1a76544ee6aed765106e7e2bb64072adf63ccaf
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin Git / 1.1 / 21e7329a632904350bb9a2e7f1b17b9967988db8
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin Java / 3.6 / 88ff47a7574edcc4472ff495c15b6f94d8dbd98f
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin LDAP / 1.4 / 18ba3a13ba4c6c07e6b0ad77940a52734159c27e
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin PHP / 2.6 / 153f397dc6cac76c93eca5df541278447ed85ea4
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin PMD / 2.4.1 / 2f30e0a7177041a4fb9f7ecefdb301e2bfc15903
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin SVN / 1.2 / d04c3cdb21f48905dd8300d1129ec90281aa6db2
2015.11.13 15:26:02 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin SoftVis3D / 0.3 / c5f74dec1790d1b3945855d18f29757a6f2d29ba
2015.11.13 15:26:03 INFO web[o.s.s.p.RailsAppsDeployer] Deploying Ruby on Rails applications
2015.11.13 15:26:03 INFO web[o.s.s.p.UpdateCenterClient] Update center: http://update.sonarsource.org/update-center.properties (HTTP proxy: ***********:3128)
2015.11.13 15:26:04 ERROR web[o.a.c.c.C.[.[.[/sonar]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener
java.lang.NoClassDefFoundError: org/sonar/api/database/DatabaseSession
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[na:1.8.0_40]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[na:1.8.0_40]
...
2015.11.13 15:26:08 INFO web[o.a.c.h.Http11NioProtocol] Pausing ProtocolHandler ["http-nio-0.0.0.0-8999"]
2015.11.13 15:26:09 INFO web[o.a.c.h.Http11NioProtocol] Stopping ProtocolHandler ["http-nio-0.0.0.0-8999"]
2015.11.13 15:26:09 INFO web[o.a.c.h.Http11NioProtocol] Destroying ProtocolHandler ["http-nio-0.0.0.0-8999"]
2015.11.13 15:26:09 INFO web[o.s.s.a.TomcatAccessLog] Web server is stopped
2015.11.13 15:26:09 INFO app[o.s.p.m.TerminatorThread] Process[search] is stopping
2015.11.13 15:26:09 INFO es[o.s.p.StopWatcher] Stopping process
2015.11.13 15:26:09 INFO es[o.elasticsearch.node] [sonar-1447424752708] stopping ...
2015.11.13 15:26:09 INFO es[o.elasticsearch.node] [sonar-1447424752708] stopped
2015.11.13 15:26:09 INFO es[o.elasticsearch.node] [sonar-1447424752708] closing ...
2015.11.13 15:26:09 INFO es[o.elasticsearch.node] [sonar-1447424752708] closed
2015.11.13 15:26:09 INFO app[o.s.p.m.TerminatorThread] Process[search] is stopped
<-- Wrapper Stopped
After removing the plugin and restarting again, everything is running fine again.
Regards,
Guido
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#5
Based on the requirenments 2. Releases follow open source conventions stated in #24 we will have to:
This also includes to write a description for the plugin.
Important: Quality gate has to be green on release.
From @stefanrinderle on November 15, 2015 21:40
Already started the implementation in sonarqube 0.3.5-SNAPSHOT. Works only for simple analysis.
Open tasks:
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#8
From @stefanrinderle on November 15, 2015 21:55
it would be great so save the camera position too
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#13
We currently have all the text in ts code. We could extract it to a file.
We currently only have a custom dashboard where the plugin can be used.
Do we need other things like widgets? Check the options and evaluate them.
From @stefanrinderle on November 15, 2015 21:59
Use case: There is one particular File or package which "destroys" any differences of metrics for all other classes (eg. if jQuery is within the view). Therefore it should be possible to remove these classes from the visualization and more important from the calculation.
Other use-cases: Only show java classes and no pom files.
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#15
From @stefanrinderle on November 15, 2015 21:35
This should also work even if only the visualization view is changed and not only for the first action.
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#6
Based on the server side layout approach, the current UI has three parts:
Select modal dialog
Toolbar (could be renamed to e.g. Details)
Help modal dialog
(Re-)Select / Hide / Show one of the dialogs above with little buttons on the bottom right
As we create the layout in the frontend and faster as before, we could make the UI more interactive and rethink the current structure. I think of the following things:
There are a lot of metrics available in SonarQube. It would be great to increase the number of metrics for the user and remove "not relevant" ones
TODOs:
During #14, the webservice-example is not usable anymore.
After this user story, it should be possible to try out the visualization without sonarqube again. If its within the webservice.example module or not is not important. Maybe its possible to make the frontend-code of the sonarplugin module so generic and configurable, that we do not need an extra module to use the visualization without SQ.
Link to SonarQube independent page (without Sonarqube header and footer) - just the visualization.
i had a big project
more thant 4,1 megalines
if i try to create city of it with standart metric (for example code quality)
i have an error without text
in stacktrace theres is something strange
sonarqube_1 | 2016.10.14 00:07:00 INFO web[][d.r.s.p.t.TreeBuilder] Create tree structure for id AVcciAWQWxicchL5dZGz
sonarqube_1 | 2016.10.14 00:07:00 INFO web[][d.r.s.p.t.TreeBuilder] Number of modules: 0
sonarqube_1 | 2016.10.14 00:08:44 ERROR web[][d.r.s.w.AbstractWebserviceHandler] java.io.IOException: Broken pipe
sonarqube_1 | java.lang.IllegalStateException: java.io.IOException: Broken pipe
sonarqube_1 | at de.rinderle.softvis3d.base.result.SoftVis3dJsonWriter.rethrow(SoftVis3dJsonWriter.java:197) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.SoftVis3dJsonWriter.value(SoftVis3dJsonWriter.java:129) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.SoftVis3dJsonWriter.prop(SoftVis3dJsonWriter.java:165) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformTreeToJson(TreeNodeJsonWriter.java:43) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformChildren(TreeNodeJsonWriter.java:87) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformTreeToJson(TreeNodeJsonWriter.java:59) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformChildren(TreeNodeJsonWriter.java:80) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformTreeToJson(TreeNodeJsonWriter.java:59) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformChildren(TreeNodeJsonWriter.java:80) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformTreeToJson(TreeNodeJsonWriter.java:59) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformChildren(TreeNodeJsonWriter.java:80) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformTreeToJson(TreeNodeJsonWriter.java:59) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformChildren(TreeNodeJsonWriter.java:80) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformTreeToJson(TreeNodeJsonWriter.java:59) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.base.result.TreeNodeJsonWriter.transformRootTreeToJson(TreeNodeJsonWriter.java:34) ~[softvis3d-base-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.webservice.VisualizationWebserviceHandler.writeResultsToResponse(VisualizationWebserviceHandler.java:80) [sonar-softvis3d-plugin-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.webservice.VisualizationWebserviceHandler.handleRequest(VisualizationWebserviceHandler.java:68) [sonar-softvis3d-plugin-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.webservice.AbstractWebserviceHandler.handle(AbstractWebserviceHandler.java:39) ~[sonar-softvis3d-plugin-0.6.0.jar:na]
sonarqube_1 | at de.rinderle.softvis3d.webservice.VisualizationWebserviceHandler.handle(VisualizationWebserviceHandler.java:36) [sonar-softvis3d-plugin-0.6.0.jar:na]
i see broken pipe with json from WriteRelustHandler
to JSON writer
seem to be this line https://github.com/stefanrinderle/softvis3d/blob/master/softvis3d-base/src/main/java/de/rinderle/softvis3d/base/result/SoftVis3dJsonWriter.java#L115
how to fix that error ? our how to debug this behavior ?
JQuery is currently used in SoftVis3dScene react component.
Please replace this code and remove jquery from the package.json
From @stefanrinderle on November 15, 2015 21:52
Dependency feature was dropped by SQ from 5.2 on. In order to show the dependencies again, they should be calculated by the plugin itself.
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#11
As stated in #20 we want to refactor the frontend code to be able to extend the plugin functionality fast and reliable. The POC will be implemented in branch softvis3d_react_example and then hopefully merged into master.
Acceptance criteria:
In #44 we get more informations about the metrics as before.
This task is about to check if this additional information could be used to improve the quality of the layout and visualization.
It would be great to see the package name folders in the visualization.
From @stefanrinderle on November 15, 2015 21:51
In SQ < 5.2:
In SQ > 5.2: TODO
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#10
The District View was an integral part of the softvis-plugin. We cannot just cut districts, just to replace it with an unknown, experimental Layout.
Bring District-View back and make it somewhat recognizable. Evostreets should still be available (optional!)
From @stefanrinderle on November 15, 2015 21:54
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#12
The Code City Environment is highly configurable, so many of it's properties can represent different features. As such we should make the current city configuration clearly visible to the user.
I know I picked what metrics I'm looking at, but it's difficult for me at least to remember what maps to height and what to breadth.
-- Ann at Google Group
According to this documentation http://docs.sonarqube.org/display/DEV/Deploying+to+Update+Center, we have to fulfill the following:
For the start, we only have the Help, CityBuilder button
We should also adjust the usage page of the plugin with this issue. And add more informations to it continuously in the future.
The only classes which have not be ported to typescript yet are
We need this methods to generate the layout. The currently, displayed layout is based on a fixed json file in app.tsx. Plese remove this afterwards.
From @stefanrinderle on November 15, 2015 21:46
Copied from original issue: stefanrinderle/sonar-softvis3d-plugin#9
Has something changed on the WebGL-Side? The Performance of IE is really bad. Even worse, once the debugging console is opened.
Also a new Error appeared, when drawing a city. (It did not occur a week ago!)
TypeError: Object doesn't support this action
at Anonymous function (http://sonar-vbox:80/static/softvis3d/threeViewer/bundle.js:9023:6)
at Scope.prototype.$broadcast (http://sonar-vbox:80/static/softvis3d/threeViewer/vendor.js:27643:16)
at ThreeViewer.MessageBus.prototype.broadcast (http://sonar-vbox:80/static/softvis3d/threeViewer/bundle.js:8945:4)
at ThreeViewer.MessageBus.prototype.trigger (http://sonar-vbox:80/static/softvis3d/threeViewer/bundle.js:8927:4)
at Anonymous function (http://sonar-vbox:80/static/softvis3d/threeViewer/bundle.js:1736:6)
at processQueue (http://sonar-vbox:80/static/softvis3d/threeViewer/vendor.js:26046:12)
at Anonymous function (http://sonar-vbox:80/static/softvis3d/threeViewer/vendor.js:26062:28)
at Scope.prototype.$eval (http://sonar-vbox:80/static/softvis3d/threeViewer/vendor.js:27320:10)
at Scope.prototype.$digest (http://sonar-vbox:80/static/softvis3d/threeViewer/vendor.js:27133:16)
at Scope.prototype
Using IE 11.0.9600
Edit:
Maybe the new draw-size?
Currently, the frontend code is in the subfolder structure /src/main/resources. As we build the plugin with maven this is the default folder for that.
It would be cleaner to change this folder structure and have the frontend code in softvis3d/softvis3d-frontend/src/
Adjust default resource folder in pom.
PR #33 introduced more/new scaling Methods for metrics modifying building dimensions. While it can be useful, this feature also makes the UI more complex.
We need to simplify the options / interface. (Maybe drop a few useless options)...
Suggestions are very welcome ๐
We decided to create default Profiles targeting the most common use cases of the visualization plugin.
Each profile should have:
TODOs:
Catch and display errors and Warnings.
Actually this issue is just for review purposes, as this (necessary) feature has been implemented with 1b31502.
The right now all the windows visibility is stored and calculated in the WindowStateStore
and distributed through the Softvis3D-Component (previously App). The visibility of components can only be changed via events.
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.