Community
Participate
Working Groups
Please allow to use and extend the RSE (tabbed) Terminals View to be re-used and extended. It should be possible to add different terminals with different types (like telnet) to the same tabbed view as the SSH terminals from the terminals subsystem. Today, some of the related classes, like TerminalsUI and TerminalViewer are internal and prevents other from reusing without violating access rules.
Should be considered during API review of rse terminals feature.
(In reply to comment #0) > Please allow to use and extend the RSE (tabbed) Terminals View to be re-used > and extended. It should be possible to add different terminals with different > types (like telnet) to the same tabbed view as the SSH terminals from the > terminals subsystem. Today, some of the related classes, like TerminalsUI and > TerminalViewer are internal and prevents other from reusing without violating > access rules. > Hi Uwe, could you be more specific in what classes/functionality you want to become API? Thanks!
Hi Anna, I had in mind to make it possible to re-use the tabbed view available with the RSE terminals plugin for outside usage to avoid that everyone is reimplementing the tabbed view, for the ones who prefer the tabbed version over the non-tabbed version of the terminal plugins itself. From my use-case I came to have the following API's around. - A manager for dealing with the tabbed view. Some of the API of this is in TerminalsUI, so it would be the first to become public. Within the manager, which is a singleton like TerminalsUI, there is: * findTerminalsView ... returns an interface with view public API * showTerminalsView ... opens the view is necessary and bring it to front * openTerminal ... This one is the main entry point. Basically it should take a ITerminalConnector as input. A title string for the tab and it would be good to have a way to associate a custom data object with the resulting CTabItem. This is needed to finding a specific terminal tab again. * closeTerminal ... Defined way to close a terminal tab and cleanup * findTerminal ... This is an optional extension but at least there should be a way to get all open terminal tabs. The findTerminal is exposing the CTabItem to the caller. - The terminals view itself is using a stacked layout to handle the case where no tab is opened to provide a help label. If this could be handled internal in the manager only, the view API wouldn't be necessary to get exposed at all. Basically if handled internally, the "findTerminalsView" API is unnecessary. - Another point I've found is that the help message is (of course) very specific to the RSE terminals subsystem. That is problematic if the terminals view is opened for use with terminal connectors not associated with RSE (like mixing a serial line terminal with the RSE terminals in the same tabbed view).
Uwe, when a "Generic tabbed terminal view" should be able to display serial (non-rse) terminals along with rse terminals, it will still drag in the dependency to RSE if it's based off the code in org.eclipse.rse.terminals.ui Wouldn't it make more sense to have org.eclipse.tm.terminal.view have an option for tabbed appearance? Most of the code is already there but only the visual appearance is stacked rather than tabbed. The view can even be cloned to multiple instances, and we have already proposed API to drive it. The only part missing would be the (optional) tabbed layout and perhaps rse.terminals.ui picking it up rather than implementing its own.
Hi Anna, you are absolutly correct, the final goal should be a common single terminals view UI which can work in tabbed and non-tabbed mode supporting multiple view instances. This view shall be able to serve the need of the RSE terminals and non-RSE terminals at the same time. We can decide to close this bugzilla in favor of a more common request against the terminal UI implementation. Regards, Uwe :)
Sorry, meant "Hi Martin," ...
Since M6 is API freeze, we're running out of time for such API change in 3.1 ...