diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java | 429 |
1 files changed, 0 insertions, 429 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java deleted file mode 100644 index 13319967e..000000000 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/RemoteViewPart.java +++ /dev/null @@ -1,429 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.team.internal.ccvs.ui.repo; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IDoubleClickListener; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.KeyAdapter; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.team.internal.ccvs.core.ICVSRemoteFile; -import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin; -import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants; -import org.eclipse.team.internal.ccvs.ui.IHelpContextIds; -import org.eclipse.team.internal.ccvs.ui.Policy; -import org.eclipse.team.internal.ccvs.ui.actions.OpenRemoteFileAction; -import org.eclipse.team.internal.ccvs.ui.model.RemoteContentProvider; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.ISelectionListener; -import org.eclipse.ui.IWorkbenchActionConstants; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.IWorkingSet; -import org.eclipse.ui.IWorkingSetManager; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.actions.ActionFactory; -import org.eclipse.ui.dialogs.IWorkingSetEditWizard; -import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog; -import org.eclipse.ui.help.WorkbenchHelp; -import org.eclipse.ui.model.WorkbenchLabelProvider; -import org.eclipse.ui.part.DrillDownAdapter; -import org.eclipse.ui.part.ViewPart; - -/** - * This class acts as a superclass to all remote CVS tree views. - */ -public abstract class RemoteViewPart extends ViewPart implements ISelectionListener { - - // The tree viewer - protected TreeViewer viewer; - - // Drill down adapter - private DrillDownAdapter drillPart; - - private Action refreshAction; - private Action collapseAllAction; - - private Action selectWorkingSetAction; - private Action deselectWorkingSetAction; - private Action editWorkingSetAction; - private OpenRemoteFileAction openAction; - - private RemoteContentProvider contentProvider; - private IDialogSettings settings; - private static final String SELECTED_WORKING_SET = "SelectedWorkingSet"; //$NON-NLS-1$ - - private class ChangeWorkingSetAction extends Action { - String name; - public ChangeWorkingSetAction(String name, int index) { - super(Policy.bind("RepositoriesView.workingSetMenuItem", new Integer(index).toString(), name)); //$NON-NLS-1$ - this.name = name; - } - public void run() { - IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager(); - setWorkingSet(manager.getWorkingSet(name), true); - } - } - - protected RemoteViewPart(String partName) { - IDialogSettings workbenchSettings = CVSUIPlugin.getPlugin().getDialogSettings(); - settings = workbenchSettings.getSection(partName); - if (settings == null) { - settings = workbenchSettings.addNewSection(partName); - } - String name = settings.get(SELECTED_WORKING_SET); - IWorkingSet set = null; - if (name != null) - set = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(name); - setWorkingSet(set, false); - } - - /** - * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) - */ - public void createPartControl(Composite parent) { - viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); - viewer.setContentProvider(getContentProvider()); - viewer.setLabelProvider(new WorkbenchLabelProvider()); - getSite().setSelectionProvider(viewer); - viewer.setInput(getTreeInput()); - viewer.setSorter(new RepositorySorter()); - viewer.getControl().addKeyListener(getKeyListener()); - drillPart = new DrillDownAdapter(viewer); - - contributeActions(); - initializeListeners(); - - // F1 Help - String helpID = getHelpContextId(); - if (helpID != null) - WorkbenchHelp.setHelp(viewer.getControl(), helpID); - } - - /** - * @see WorkbenchPart#setFocus - */ - public void setFocus() { - viewer.getControl().setFocus(); - } - - /** - * Method getHelpContextId should be overridden by subclasses to provide the - * appropriate help id. - * - * @return String - */ - protected String getHelpContextId() { - return null; - } - - /** - * Method getTreeInput. - * @return Object - */ - protected abstract Object getTreeInput(); - - /** - * @see org.eclipse.team.internal.ccvs.ui.repo.RemoteViewPart#getContentProvider() - */ - protected RemoteContentProvider getContentProvider() { - if (contentProvider == null) { - contentProvider = new RemoteContentProvider(); - } - return contentProvider; - }; - - protected KeyAdapter getKeyListener() { - return new KeyAdapter() { - public void keyPressed(KeyEvent event) { - if (event.keyCode == SWT.F5) { - refreshAction.run(); - } - } - }; - } - - protected void initializeListeners() { - // listen for selection changes in the repo view - getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(this); - } - - protected IWorkingSet getWorkingSet() { - return getContentProvider().getWorkingSet(); - } - - protected void setWorkingSet(IWorkingSet workingSet, boolean refreshViewer) { - if (settings != null) { - String name = null; - if (workingSet != null) - name = workingSet.getName(); - settings.put(SELECTED_WORKING_SET, name); - } - getContentProvider().setWorkingSet(workingSet); - String toolTip; - if (workingSet == null) { - toolTip = null; - } else { - toolTip = Policy.bind("RemoteViewPart.workingSetToolTip", workingSet.getName()); //$NON-NLS-1$ - } - setTitleToolTip(toolTip); - if (refreshViewer) refreshViewer(); - } - - /** - * Contribute actions to the view - */ - protected void contributeActions() { - - final Shell shell = getShell(); - - // Refresh (toolbar) - CVSUIPlugin plugin = CVSUIPlugin.getPlugin(); - refreshAction = new Action(Policy.bind("RepositoriesView.refresh"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_REFRESH_ENABLED)) { //$NON-NLS-1$ - public void run() { - refreshAll(); - } - }; - refreshAction.setToolTipText(Policy.bind("RepositoriesView.refreshTooltip")); //$NON-NLS-1$ - refreshAction.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH_DISABLED)); - refreshAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH)); - getViewSite().getActionBars().setGlobalActionHandler(ActionFactory.REFRESH.getId(), refreshAction); - - collapseAllAction = new Action(Policy.bind("RepositoriesView.collapseAll"), CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL_ENABLED)) { //$NON-NLS-1$ - public void run() { - collapseAll(); - } - }; - collapseAllAction.setToolTipText(Policy.bind("RepositoriesView.collapseAllTooltip")); //$NON-NLS-1$ - collapseAllAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL)); - - // Select Working Set (popup) - selectWorkingSetAction = new Action(Policy.bind("RepositoriesView.newWorkingSet")) { //$NON-NLS-1$ - public void run() { - IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager(); - IWorkingSetSelectionDialog dialog = manager.createWorkingSetSelectionDialog(shell, false); - IWorkingSet workingSet = null; - if (workingSet != null) - dialog.setSelection(new IWorkingSet[]{workingSet}); - - if (dialog.open() == Window.OK) { - IWorkingSet[] result = dialog.getSelection(); - if (result != null && result.length > 0) { - setWorkingSet(result[0], true); - manager.addRecentWorkingSet(result[0]); - } else { - setWorkingSet(null, true); - } - } - } - }; - WorkbenchHelp.setHelp(selectWorkingSetAction, IHelpContextIds.SELECT_WORKING_SET_ACTION); - - // Deselect Working Set (popup) - deselectWorkingSetAction = new Action(Policy.bind("RepositoriesView.deselectWorkingSet")) { //$NON-NLS-1$ - public void run() { - setWorkingSet(null, true); - } - }; - WorkbenchHelp.setHelp(deselectWorkingSetAction, IHelpContextIds.DESELECT_WORKING_SET_ACTION); - - // Edit Working Set (popup) - editWorkingSetAction = new Action(Policy.bind("RepositoriesView.editWorkingSet")) { //$NON-NLS-1$ - public void run() { - IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager(); - IWorkingSet workingSet = getWorkingSet(); - if (workingSet == null) { - setEnabled(false); - return; - } - IWorkingSetEditWizard wizard = manager.createWorkingSetEditWizard(workingSet); - if (wizard == null) { - // todo - String title = Policy.bind("EditWorkingSetAction.error.nowizard.title"); //$NON-NLS-1$ - String message = Policy.bind("EditWorkingSetAction.error.nowizard.message"); //$NON-NLS-1$ - CVSUIPlugin.openError(shell, title, message, null); - return; - } - WizardDialog dialog = new WizardDialog(shell, wizard); - dialog.create(); - if (dialog.open() == WizardDialog.OK) - setWorkingSet(wizard.getSelection(), true); - } - }; - WorkbenchHelp.setHelp(editWorkingSetAction, IHelpContextIds.EDIT_WORKING_SET_ACTION); - - // Create the popup menu - MenuManager menuMgr = new MenuManager(); - Tree tree = viewer.getTree(); - Menu menu = menuMgr.createContextMenu(tree); - menuMgr.addMenuListener(new IMenuListener() { - public void menuAboutToShow(IMenuManager manager) { - addWorkbenchActions(manager); - } - - }); - menuMgr.setRemoveAllWhenShown(true); - tree.setMenu(menu); - getSite().registerContextMenu(menuMgr, viewer); - - // Create the local tool bar - IActionBars bars = getViewSite().getActionBars(); - IToolBarManager tbm = bars.getToolBarManager(); - drillPart.addNavigationActions(tbm); - tbm.add(refreshAction); - tbm.add(new Separator()); - tbm.add(collapseAllAction); - tbm.update(false); - - // Create the open action for double clicks - openAction = new OpenRemoteFileAction(); - viewer.addDoubleClickListener(new IDoubleClickListener() { - public void doubleClick(DoubleClickEvent e) { - handleDoubleClick(e); - } - }); - - updateWorkingSetMenu(); - bars.updateActionBars(); - } - - /** - * Add the menu actions that were contributed in plugin.xml - * - * @param manager - */ - protected void addWorkbenchActions(IMenuManager manager) { - // File actions go first (view file) - manager.add(new Separator(IWorkbenchActionConstants.GROUP_FILE)); - // Misc additions - manager.add(new Separator("checkoutGroup")); //$NON-NLS-1$ - manager.add(new Separator("tagGroup")); //$NON-NLS-1$ - manager.add(new Separator("miscGroup")); //$NON-NLS-1$ - manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); - - manager.add(refreshAction); - } - - /** - * Method getShell. - * @return Shell - */ - protected Shell getShell() { - return viewer.getTree().getShell(); - } - - public void updateWorkingSetMenu() { - IActionBars bars = getViewSite().getActionBars(); - IMenuManager mgr = bars.getMenuManager(); - - mgr.removeAll(); - - mgr.add(selectWorkingSetAction); - mgr.add(deselectWorkingSetAction); - deselectWorkingSetAction.setEnabled(getWorkingSet() != null); - mgr.add(editWorkingSetAction); - editWorkingSetAction.setEnabled(getWorkingSet() != null); - - mgr.add(new Separator()); - - IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager(); - IWorkingSet[] workingSets = manager.getWorkingSets(); - for (int i = 0; i < workingSets.length; i++) { - String name = workingSets[i].getName(); - ChangeWorkingSetAction action = new ChangeWorkingSetAction(name, i + 1); - mgr.add(action); - action.setChecked(getWorkingSet() != null && getWorkingSet().getName().equals(name)); - } - - bars.updateActionBars(); - } - - protected void refreshAll() { - //CVSUIPlugin.getPlugin().getRepositoryManager().clearCaches(); - refreshViewer(); - } - - protected void refreshViewer() { - if (viewer == null) return; - ((RemoteContentProvider)viewer.getContentProvider()).cancelJobs(CVSUIPlugin.getPlugin().getRepositoryManager().getKnownRepositoryRoots()); - CVSUIPlugin.getPlugin().getRepositoryManager().purgeCache(); - updateWorkingSetMenu(); - viewer.refresh(); - } - - public void collapseAll() { - if (viewer == null) return; - viewer.getControl().setRedraw(false); - viewer.collapseToLevel(viewer.getInput(), TreeViewer.ALL_LEVELS); - viewer.getControl().setRedraw(true); - } - /** - * The mouse has been double-clicked in the tree, perform appropriate - * behaviour. - */ - private void handleDoubleClick(DoubleClickEvent e) { - // Only act on single selection - ISelection selection = e.getSelection(); - if (selection instanceof IStructuredSelection) { - IStructuredSelection structured = (IStructuredSelection)selection; - if (structured.size() == 1) { - Object first = structured.getFirstElement(); - if (first instanceof ICVSRemoteFile) { - // It's a file, open it. - openAction.selectionChanged(null, selection); - openAction.run(null); - } else { - // Try to expand/contract - viewer.setExpandedState(first, !viewer.getExpandedState(first)); - } - } - } - } - - /** - * Returns the viewer. - * @return TreeViewer - */ - protected TreeViewer getViewer() { - return viewer; - } - - /** - * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) - */ - public void selectionChanged(IWorkbenchPart part, ISelection selection) { - } - - /** - * @see org.eclipse.ui.IWorkbenchPart#dispose() - */ - public void dispose() { - getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(this); - super.dispose(); - viewer = null; - } - -} |