Comments (8)
I will join this issue with #35 since it has conjugated issues
from vism.
Yes, that's exactly what I have started to do
from vism.
I think we should do something like that:
Every widget has at least two files, one is GUI class to configure it and another class is to show it as widget. If One adds new Widget (installs it by this script, all names are added to some file etc. ). It is from now shown in menu of Widgets (this list of widgets). If One choses widget, it shows configuration window with default configuration (user can change it), and after clicking OK, new widget will be added. This reduces problems with for ex. not selecting plot setting before animation.
- First (if One enters program) One has to pick folder with data (everything else is locked).
- If One picks Widget he has to setup configuration, if not all options like (animation menu) is locked.
We will force user to pick things in order we want them to be picked.
I think this kind of thinking will let us simplify app, and get rid of some complicated bugs.
from vism.
Ok, so what I am preparing right now is a Mediator with proxy that propagates settings from the GUI to itself, verifies it and then manages settings prompting and Canvas or GL object creation. This will not require any blocking since settings are only prompted at creation and will be valid only for the object's lifetime (til deletion).
additionally, I will construct another class that will delegate Widget buildup (checks all files) and will enhance the namespace of the aforementioned settings mediator.
So for example:
- first enter the data (nothing can be set yet)
- pick a layout
- select widget
- (settings are prompted)
- widget is created if settings are valid
- close the widget if needed
I propose that settings should be valid for the whole lifetime of the 3d widget, if user wants to modify it, there is a need to reload it anyway so it wont save much time by modyfiying it i.e. delete and create new.
However, for now, settings Mediator will refresh modifications for 2D layers, that's ok.
Tell me what do you think about that.
from vism.
Correct. I think at start of app user should be prompted with some kind of Initial Panel and then asked to provide directory, the rest is as above.
For now I will take care of:
- Button to delete widget.
- Improve idea with pop up when data is loading.
- Fix issue when some widgets are smaller and others bigger.
- I will refactor Worker code (Singleton which is triggering frame change).
- Fix issue? when you abort data loading app is closing - pretty inconvenient.
I will join you after having my part done.
from vism.
We have to think about putting each Widget in separate directory (I don't think it's necessary), but for sure we must put all widgets in one directory.
from vism.
To be clear this should also shorten main.py file because compose_dict and plotSettingsReceiver will be inside widgetSettings class and choosingWidgetReceiver won't be made of cascade of if statements.
from vism.
I think it was completely solved in #39 and #46
from vism.
Related Issues (20)
- Enter text window survives widget deletion HOT 2
- Can we get independent text boxes in different widgets? HOT 1
- Reloading data with Load File problems
- ValueError: Invalid Directory
- Arrow settings menu - invalid step for resolution and subsampling
- Precise dimension for cubic ergo cubes are not actually cubes
- Two Animation windows can be spawned
- Remove decimate from Performance Options for Cubes and Arrows
- Delete all windows breaks the app if a single window was deleted first
- Files with wrong format crash the app
- 3D Arrows crash
- Add widget button problems HOT 1
- Matplotlib does not change plot appearance if '1-1 synchronize' is checked
- Index out of bounds for maximum layer size
- Changing frame directory (still) does not work HOT 1
- "You may loose calculation"
- Black pixels after setting a color vector to [0 0 0] HOT 1
- OpenGl Arrows must effecitvely copy numpy array
- Better plot color picker
- Not all columns from odt are parsed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vism.