Bug 257694 - [api][rseterminal] TerminalsUI and related classes are internal
Summary: [api][rseterminal] TerminalsUI and related classes are internal
Status: NEW
Alias: None
Product: Target Management
Classification: Tools
Component: RSE (show other bugs)
Version: 3.0.2   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: Future   Edit
Assignee: dsdp.tm.rse-inbox CLA
QA Contact: Martin Oberhuber CLA
URL:
Whiteboard:
Keywords: api
Depends on:
Blocks: 259363
  Show dependency tree
 
Reported: 2008-12-05 05:48 EST by Uwe Stieber CLA
Modified: 2009-03-04 11:20 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Uwe Stieber CLA 2008-12-05 05:48:44 EST
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.
Comment 1 Anna Dushistova CLA 2008-12-19 16:23:37 EST
Should be considered during API review of rse terminals feature.
Comment 2 Anna Dushistova CLA 2009-02-04 10:13:01 EST
(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!
Comment 3 Uwe Stieber CLA 2009-02-04 14:15:28 EST
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).


Comment 4 Martin Oberhuber CLA 2009-02-04 19:07:39 EST
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.
Comment 5 Uwe Stieber CLA 2009-02-06 12:49:11 EST
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 :)
Comment 6 Uwe Stieber CLA 2009-02-06 12:50:15 EST
Sorry, meant "Hi Martin," ...
Comment 7 Martin Oberhuber CLA 2009-03-04 11:20:08 EST
Since M6 is API freeze, we're running out of time for such API change in 3.1 ...