powsybl / powsybl-gse Goto Github PK
View Code? Open in Web Editor NEWJavaFX UI for powsybl framework
Home Page: https://www.powsybl.org
License: Mozilla Public License 2.0
JavaFX UI for powsybl framework
Home Page: https://www.powsybl.org
License: Mozilla Public License 2.0
Do you want to request a feature or report a bug?
bug
What is the current behavior?
There is an error popup window when relaunching a security analysis
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Run a security analysis, then close the project, then reopen the project, then run a security analysis again.
What is the expected behavior?
No exception
Please tell us about your environment:
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, spectrum, etc)
2019-05-06 18:34:53,163 ERROR [JavaFX Application Thread] c.p.g.u.GseUtil [GseUtil.java:138] com.powsybl.commons.PowsyblException: Variant index not set for current thread GSE-3
com.powsybl.commons.PowsyblException: Variant index not set for current thread GSE-3
at com.powsybl.iidm.network.impl.ThreadLocalMultiVariantContext.getVariantIndex(ThreadLocalMultiVariantContext.java:23)
at com.powsybl.iidm.network.impl.VariantManagerImpl.allowVariantMultiThreadAccess(VariantManagerImpl.java:183)
at com.powsybl.security.afs.local.LocalSecurityAnalysisRunningService.run(LocalSecurityAnalysisRunningService.java:60)
at com.powsybl.security.afs.SecurityAnalysisRunner.run(SecurityAnalysisRunner.java:82)
at com.powsybl.gse.security.SecurityAnalysisExecutionTaskExtension.execute(SecurityAnalysisExecutionTaskExtension.java:43)
at com.powsybl.gse.security.SecurityAnalysisExecutionTaskExtension.execute(SecurityAnalysisExecutionTaskExtension.java:21)
at com.powsybl.gse.app.ProjectPane.lambda$executionTaskLaunch$28(ProjectPane.java:837)
at com.powsybl.gse.util.GseUtil.lambda$execute$4(GseUtil.java:129)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Add a refresh button in every window with access to drives.
The classes DataTest
, LineGraphicTest
and MapTest
are not in the good folder. The classes should be moved to src/test/java
The MapTest should be renamed because this class has no unit tests.
The DataTest can probably be removed because it checks nothing.
Currently, if a project is deleted in the OpenProject Window while opened in project tab, the tab remains opened when deleted. It should either:
It should be possible to delete one or several projects from the OpenProject and NewProject windows
Running on fedora 27 with gnome3. I'm running the exact same jar in both cases (adding the javafx jars manually for java11 since they were removed from the jdk)
On java 8, there is one flicker when the main window opens. The splash screen and the open dialog don't flicker.
On java 11, it flickers everytime:
We need to find if it's a bug in our code or not.
Do you want to request a feature or report a bug?
Bug
What is the current behavior?
There is an AssertionError(63kv) thrown when we try to show the map. There is also an error for "INFERIEUR A 45 KV".
We should be able to parse old and new versions of the OpenRTE data files.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Download the last versions of RTE OpenData files (lignes-aeriennes-rte.csv, lignes-souterraines-rte.csv and postes-electriques-rte.csv) from https://opendata.reseaux-energies.fr
Put these files in ~/.itools and show the map in GSE.
What is the expected behavior?
The exception should not be thrown.
What is the motivation / use case for changing the behavior?
Please tell us about your environment:
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, spectrum, etc)
(if a question doesn't apply, you can delete it)
Use case
The drop must be rejected if the source node is one of the ancester of the target node.
In the current version this is allowed and everything under the source node is lost in that case.
Configure maven-jar-plugin to generate automatic module:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Automatic-Module-Name>com.powsybl.XXXX</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
Currently, there is a discrimination of the drag event if it is a single element or multiple element in the onDragDetected() method in NetworkExplorer. Instead of doing this, we could consider that it is always a list of elements and handle the discrimination in the onDragDropped() methods in the targets.
Do you want to request a feature or report a bug?
A bug
What is the current behavior?
In the following circumstances, the filters of the security analysis results are not saved.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Prepare 2 projects with security analyses, where one project has precontingency and the other postcontingency violations. Change the default filter on both projects to show the contingency. Close the GSE and reopen it. Only the filter of the project selected during shutdown is saved, the other is reset.
What is the expected behavior?
Both filters should be saved.
Please tell us about your environment:
The icon of a plugin (if it exists) should be displayed in the tab of the view area like it's done in a browser.
Dropping an element should not collapse the source folder. Each node should stay in the same state (open or close) after dropping. I think there is a better solution than calling the refreshNode
method which collapse/expand the nodes.
To reproduce the bug, you have to create a new project with a description. Once the project is created, click on the open button in the application bar. Browse in the folder to the project: the description column is empty.
In the file explorer presented to the user to select files to be imported (e.g. network file), the folders are ordered following what seems to be an ASCII sort order.
A more classical and intuitive alphabetical rule might be more efficient for most users.
Users should be able to Drag&Drop files or folders between two projects:
Almost all the creation and rename are the same but the code is duplicated.
I propose to create a generic class that can be extended to be completed for all dialogs that uses a NameTextField component:
For more complex dialog (virtual case, security analysis), this class should be easy to complete with additional components.
Currently, the tooltip of a project shows its description
Project: <description>
If a project has no description, the content is not very interesting:
Project:
The tooltip should show the complete path (if not too long), and the description of the project:
Project: <path of the project>
Description: <description>
The description line should be shown only if the description is set.
If there are unsaved modification in an editor, the user should be warn, and be able to save modifications before the project or the GSE closing.
For now, unsaved modifications are lost.
A NodeGraphicProvider should be able to provide two different icons, depending of the selecting state: sometimes, when it is selected, the icon is not very readable.
If you drag an element to its parent, the mouse icon should be the "reject icon". I think there is something to fix in the accept/reject function.
If I select one element and I deselect it (ctrl+click), no event is triggered and the substationDetailedView
view is not cleared.
There is the same kind of issue if I select two elements and I deselect one of them. If I deselect the second item, an event is triggered and the substationDetailedView
view is not cleared.
I think there is an issue in the MultipleSelectionModel
implementation. Could you try to find if there is an known issue in OpenJDK issue tracker and if possible, try to find a workaround (maybe a MouseEvent handler or something...)
If I drag an element to a closed folder, one have to open it if it has children like standard explorer does.
Do you want to request a feature or report a bug?
bug
What is the current behavior?
The gse crashes during startup if a proxy config without a user/password is given
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
Specify a proxy in config.yaml without a user:
proxy:
host: localhost
port: 3128
or with a null value:
proxy:
host: localhost
port: 3128
user: ~
password: ~
equivalent to
proxy:
host: localhost
port: 3128
user:
password:
The app crashes with the following stacktrace:
com.powsybl.commons.PowsyblException: Property user is not set
at com.powsybl.commons.config.AbstractModuleConfig.createPropertyNotSetException(AbstractModuleConfig.java:29)
at com.powsybl.commons.config.AbstractModuleConfig.lambda$getStringProperty$0(AbstractModuleConfig.java:34)
at java.util.Optional.orElseThrow(Optional.java:290)
at com.powsybl.commons.config.AbstractModuleConfig.getStringProperty(AbstractModuleConfig.java:34)
at com.powsybl.gse.util.GseUtil.lambda$setProxy$8(GseUtil.java:196)
at java.util.Optional.ifPresent(Optional.java:159)
at com.powsybl.gse.util.GseUtil.setProxy(GseUtil.java:193)
at com.powsybl.gse.app.GseApp.main(GseApp.java:94)
at com.powsybl.gse.demo.GseDemo.main(GseDemo.java:60)
What is the expected behavior?
Without a user password, the code should just assume an unauthenticated proxy
What is the motivation / use case for changing the behavior?
don"t force user to invent fake usernames/passwords
Please tell us about your environment:
Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, spectrum, etc)
We should just change GseUtils.java public static void setProxy() to use getOptionalConfig, and create the authenticator only if they are set.
When using the delete function of the File System with multiple desktops, the "confirm" dialog box appears in a different desktop than the one where the action has been made.
It might prevent errors/be more convenient to see it appear in the desktop the user is looking at.
Changing the name of an open file (by renaming it or moving it) should change the name of the tab. In current state, the name of the tab does not change.
Currently, to detect a drag gesture in groovy script editor (GroovyScriptEditor.java
), we use a state variable allowedDrag
to check if this is indeed a drag or a selection gesture. This is not a good practice, this discrimination should be done differently.
Do you want to request a feature or report a bug?
Bug
What is the current behavior?
When selecting a contingency and pressing the Del key, the contingency is prompted for deletion, and then another prompt is show to delete the item that is selected in the left pane in the project file explorer. If instead you use the trash icon it works correctly.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem
open the contingencies list, select something on the project explorer tab (by default the contingency list is already selected so this can be skipped), select a contingency and press the del key on the keyboard.
What is the expected behavior?
No second prompt, like when clicking the trash icon
Please tell us about your environment:
When I change the dependencies of my project (removing for instance CGMES importer), the loading of a project fails and an error message is displayed to the user.
2018-12-18 08:47:44,089 ERROR [JavaFX Application Thread] c.p.g.u.GseUtil [GseUtil.java:139] com.powsybl.afs.AfsException: Importer not found for format CGMES
com.powsybl.afs.AfsException: Importer not found for format CGMES
at com.powsybl.afs.ext.base.ImportedCase.lambda$getImporter$1(ImportedCase.java:67)
at java.util.Optional.orElseThrow(Optional.java:290)
at com.powsybl.afs.ext.base.ImportedCase.getImporter(ImportedCase.java:67)
at com.powsybl.gse.afs.ext.base.BaseExtNodeGraphicProvider.getGraphic(BaseExtNodeGraphicProvider.java:58)
at com.powsybl.gse.util.NodeGraphics.getGraphic(NodeGraphics.java:35)
at com.powsybl.gse.app.ProjectPane.createFileTreeItem(ProjectPane.java:535)
at com.powsybl.gse.app.ProjectPane.createNodeTreeItem(ProjectPane.java:481)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at com.powsybl.gse.app.ProjectPane.lambda$null$7(ProjectPane.java:507)
at com.powsybl.gse.util.GseUtil.lambda$execute$4(GseUtil.java:130)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
I think we have two options here:
RIVENL61TARAS
contingency (ref. screenshot)It should be possible to drag&drop a project tab outside a GSE instance to create a complete new GSE window.
It should also be possible to drag&drop a project tab into an existing GSE instance. If the source window has no project tabs left, it should be closed.
Dialogs should not be able to be shrunk to the point their elements are not visible anymore.
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.