-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CSSTUDIO-1989 Changes to the Phoebus source code needed for the Navigator application #3122
Conversation
…(). Fix display of warning message when unable to find the specified initial navigator.
…irectory is not writable.
…tializing splitPlane. Add case for when oldCenterPane is an instance of SplitPane.
… no other application instance running.
…boolean editModeEnabled.
…fusing to load navigators with unavailable resources.
…ry, a blank entry was created.
…to a file unless the navigator can be serialized.
…ction that is not of type COPY.
…tem that are not instances of DockItemWithInput.
…h cell is set correctly by calling navigatorController.treeView.refresh() after loading an item in a navigator."" This reverts commit dd32ef1.
The navigator is basically a specialized file browser. Its key functionality can be provided by a file browser set to some "my displays" folder. That folder then contains copies or symlinks for the desired displays. Like any app pane, the file browser can be on the left side of a split dock and then "locked". |
I think this makes sense to me. |
@kasemir wrote:
It is true that the basic structure of a navigator is a tree where the nodes point to files containing application instances. This basic functionality could be implemented using the filesystem. Implementing a custom application for the functionality allows for more integration with both the functionality of Phoebus and with the UI of Phoebus, however. At the moment, the integration is limited; I can think of the following points:
In the future, however, it may be extended, perhaps by functionality to search application instances in one or several navigators for PV names, the ability to point to application instances that are not saveable to file currently in Phoebus (e.g., logbook search queries), etc. etc. Separate files representing navigators also lends itself well to version control.
Placing the navigator always on the left in the main window is a design decision. This placement is very predictable, and I think it makes sense from a UI perspective that the navigator always is located in the same place. Multiple navigators are supported, and it is easy to switch between the set of available navigators: the available navigators are structured in a tree (here the file system is used to implement the tree), and the UI allows for convenient switching between navigators. @shroffk wrote:
By design, the navigator is not implemented as a |
With the Eclipse-based CSS, at least two sites decided that they must have site-specific top-level additions, one similar to this navigator, the other a type of status panel. The move on from Eclipse broke those. |
I think that if we are the second site to implement a navigation solution, then that is evidence for that there exists a need for a more integrated navigation solution with more features than a simple file browser in CSS. |
This pull request adds changes to the Phoebus source code for the Navigator application [0] to work.
Since there seemed to be little to no interest in the Navigator application from the broader community, the Navigator application itself has been removed from the branch that this pull request is based on: only the changes to the base Phoebus source tree that are needed for the application are part of this pull request.
The main change is that the code for managing the center
Node
that is the center of theBorderPane
that is displayed in the main window of Phoebus now also handles the case where the centerNode
is aSplitPane
(the center of thisBorderPane
in the current source code of Phoebus contains aDockPane
): the Navigator application replaces the the center node with aSplitPane
such that the Navigator application is displayed on the left side of theSplitPane
, and the ordinaryNode
is displayed on the right side.Other changes to the core Phoebus code include adding accessor functions (setters and getters) and declaring some accessor functions
public
instead ofprivate
.If the Navigator is not included in a build of Phoebus, there should be no observable effects when using the application from the changes introduced.
[0] I opened a discussion about the Navigator application here: #3053 . If someone wants to test the Navigator application, it is necessary to checkout a few commits earlier than the most recent commit on the branch
CSSTUDIO-1989-navigator
, since the Navigator application itself was removed in a recent commit.