Community
Participate
Working Groups
+++ This bug was initially created as a clone of Bug #359816 +++ Build Identifier: 20110916-0149 The TM Terminal Widget has been picked up in a number of independent views (such as the standalone Terminal View, and the RSE Terminals view). Since any UI for Preferences is maintained in each view individually, this either creates duplicate code or some Preferences can not be controlled (see bug 359816). It would be cleaner to have the Terminal Widget maintain its Preferences UI itself, such that they can be leveraged everywhere easily; but adopters must also be able to create a view with the Terminal Widget, and maintain Preferences (such as the "invert" one) themselves.
This has been done for TM 3.4 M7: - The Preference page has been moved from o.e.tm.terminal.view into the o.e.tm.terminal widget, along with its listeners. Preference slots have been moved into o.e.tm.terminal, and Preference migration code has been added to pick up respective Preferences from an older workspace, if they exist. - A new "useCommonPrefs" boolean has been added to TerminalViewControlFactory#makeControl(): When this is set "true" the Terminal widget will pick up its own Preferences and maintain them. When this is set "false" the client is responsible for setting Preferences and listening as before. The default behavior is to not pick up Preferences ("standalone mode") for backward compatibility. - The tm.terminal.view and rse terminals have been updated to create their terminal widget in a way that it maintains its own Preferences. As a result. the RSE Terminal can now react to font changes, color inversion and buffer size even in a JEE package (bug 359816). - Adopters who just want to pick up the terminal widget and don't want to see the respective Preference page, can hide the Preference page with a Capability definition: <!-- Terminal --> <activity id="org.eclipse.tm.terminal.activity" description="%activity.tm.terminal.desc" name="%activity.tm.terminal" /> <activityPatternBinding activityId="org.eclipse.tm.terminal.activity" pattern="org\.eclipse\.tm\.terminal\..*/.*"/> <activityPatternBinding activityId="org.eclipse.tm.terminal.activity" pattern="org\.eclipse\.tm\.terminal/.*"/>