### Eclipse Workspace Patch 1.0 #P org.eclipse.rse.terminals.ui Index: src/org/eclipse/rse/internal/terminals/ui/views/TerminalViewer.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/views/TerminalViewer.java,v retrieving revision 1.3 diff -u -r1.3 TerminalViewer.java --- src/org/eclipse/rse/internal/terminals/ui/views/TerminalViewer.java 5 May 2008 10:28:30 -0000 1.3 +++ src/org/eclipse/rse/internal/terminals/ui/views/TerminalViewer.java 6 Aug 2008 15:50:03 -0000 @@ -23,7 +23,8 @@ * Anna Dushistova (MontaVista) - Adapted from SystemCommandsViewPart * Yu-Fen Kuo (MontaVista) - [227572] RSE Terminal doesn't reset the "connected" state when the shell exits * Anna Dushistova (MontaVista) - [228577] [rseterminal] Clean up RSE Terminal impl - ********************************************************************************/ + * Anna Dushistova (MontaVista) - [238257] Request a help text when no tab is open in "Remote Shell", "Remote Monitor" and "Terminals" views + *********************************************************************************/ package org.eclipse.rse.internal.terminals.ui.views; import org.eclipse.jface.action.IMenuListener; @@ -42,13 +43,16 @@ import org.eclipse.rse.ui.messages.ISystemMessageLine; import org.eclipse.rse.ui.model.ISystemShellProvider; import org.eclipse.rse.ui.view.IRSEViewPart; +import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.ISelectionService; import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.PageBook; import org.eclipse.ui.part.ViewPart; public class TerminalViewer extends ViewPart implements ISelectionListener, @@ -56,14 +60,26 @@ ISystemResourceChangeListener, ISystemShellProvider, IRSEViewPart, IMenuListener, ISystemMessageLine { - private TerminalViewTab tabFolder; + private TerminalViewTab tabFolder; + + private PageBook pagebook; + + private Label noTabShownLabel; public static String VIEW_ID = "org.eclipse.rse.terminals.ui.view.TerminalView"; //$NON-NLS-1$ public void createPartControl(Composite parent) { - tabFolder = new TerminalViewTab(parent, this); + pagebook = new PageBook(parent, SWT.NONE); + + tabFolder = new TerminalViewTab(pagebook, this); tabFolder.getFolder().addSelectionListener(this); + // Page 2: Nothing selected + noTabShownLabel = new Label(pagebook, SWT.TOP + SWT.LEFT + SWT.WRAP); + noTabShownLabel.setText("To open a terminal, right-click the Terminal subsystem under the target. Then select 'Launch Terminal' from the context menu."); // + pagebook.showPage(noTabShownLabel); + + ISelectionService selectionService = getSite().getWorkbenchWindow() .getSelectionService(); selectionService.addSelectionListener(this); @@ -107,6 +123,11 @@ if (source instanceof TerminalElement) { tabFolder.disposePageFor(((TerminalElement) source).getName()); } + }else if(event.getType() == ISystemResourceChangeEvents.EVENT_REFRESH){ + if(tabFolder.getSelectedTab()==null) + showEmptyPage(); + else + showTabsPage(); } } @@ -198,5 +219,13 @@ public TerminalViewTab getTabFolder() { return tabFolder; } + + private void showEmptyPage() { + pagebook.showPage(noTabShownLabel); + } + + private void showTabsPage(){ + pagebook.showPage(tabFolder); + } } \ No newline at end of file