Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java')
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java479
1 files changed, 0 insertions, 479 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java
deleted file mode 100644
index f2b225d90..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/repo/CVSWorkingSetPage.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 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 java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
-import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.model.ModulesCategory;
-import org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * @author Administrator
- *
- * To change this generated comment edit the template variable "typecomment":
- * Window>Preferences>Java>Templates.
- * To enable and disable the creation of type comments go to
- * Window>Preferences>Java>Code Generation.
- */
-public class CVSWorkingSetPage extends CVSWizardPage implements IWorkingSetPage {
-
- private IWorkingSet workingSet;
- private String workingSetName;
- private Set checkedFolders;
- private Map modulesCategoryCache = new HashMap();
- private boolean editing = false;
-
- private Text nameField;
- private CheckboxTreeViewer tree;
- private ICheckStateListener checkStateListener;
-
- /**
- * @see org.eclipse.team.internal.ccvs.ui.wizards.CVSWizardPage#CVSWizardPage(String, String, ImageDescriptor, String)
- */
- public CVSWorkingSetPage(String pageName, String title, ImageDescriptor titleImage, String description) {
- super(pageName, title, titleImage, description);
- checkedFolders = new HashSet();
- workingSetName = ""; //$NON-NLS-1$
- }
- /**
- * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
- */
- public void createControl(Composite parent) {
- Composite composite= createComposite(parent, 2);
- setControl(composite);
-
- WorkbenchHelp.setHelp(composite, IHelpContextIds.WORKING_SET_FOLDER_SELECTION_PAGE);
-
- createLabel(composite, Policy.bind("CVSWorkingSetFolderSelectionPage.name")); //$NON-NLS-1$
- nameField = createTextField(composite);
- nameField.addModifyListener(new ModifyListener() {
- public void modifyText(ModifyEvent event) {
- workingSetName = nameField.getText();
- updateWidgetEnablements();
- }
- });
-
- createWrappingLabel(composite, Policy.bind("CVSWorkingSetFolderSelectionPage.treeLabel"), 0, 2); //$NON-NLS-1$
-
- tree = createFolderSelectionTree(composite, 2);
- checkStateListener = new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- CVSWorkingSetPage.this.handleChecked(event.getElement(), event.getChecked());
- }
- };
- tree.addCheckStateListener(checkStateListener);
- tree.addTreeListener(new ITreeViewerListener() {
- public void treeCollapsed(TreeExpansionEvent event) {
- // Ignore
- }
- public void treeExpanded(TreeExpansionEvent event) {
- CVSWorkingSetPage.this.handleExpansion(event.getElement());
- }
- });
-
- createLabel(composite, ""); //$NON-NLS-1$
- Button refresh = new Button(composite, SWT.PUSH);
- refresh.setText(Policy.bind("CVSWorkingSetFolderSelectionPage.refresh")); //$NON-NLS-1$
- GridData data = new GridData();
- data.horizontalAlignment = GridData.END;
- data.horizontalSpan = 1;
- refresh.setLayoutData(data);
- refresh.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- CVSWorkingSetPage.this.refreshTree();
- }
- });
-
- initializeValues();
- updateWidgetEnablements();
- nameField.setFocus();
- Dialog.applyDialogFont(parent);
- }
- /**
- * Method handleExpansion.
- * @param object
- */
- public void handleExpansion(Object element) {
- if (element instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation location = (ICVSRepositoryLocation) element;
- tree.setGrayed(CVSWorkingSetPage.this.getModuleCategory(location), true);
- }
- updateCheckState(element);
- }
-
- /**
- * Method handleChecked.
- * @param object
- * @param b
- */
- public void handleChecked(Object object, boolean checked) {
- if (object instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation location = (ICVSRepositoryLocation) object;
- if (checked) {
- repositoryLocationChecked(location);
- } else {
- repositoryLocationUnchecked(location);
- }
- } else if (object instanceof ModulesCategory) {
- ModulesCategory category = (ModulesCategory) object;
- if (checked) {
- modulesCategoryChecked(category);
- } else {
- modulesCategoryUnchecked(category);
- }
- } else if (object instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (checked) {
- folderChecked(folder);
- } else {
- folderUnchecked(folder);
- }
- }
- updateWidgetEnablements();
- }
-
- public ModulesCategory getModuleCategory(ICVSRepositoryLocation location) {
- ModulesCategory category = (ModulesCategory)modulesCategoryCache.get(location.getLocation());
- if (category == null) {
- category = new ModulesCategory(location);
- modulesCategoryCache.put(location.getLocation(), category);
- category.setRunnableContext(getContainer());
- }
- return category;
- }
-
- private void folderUnchecked(ICVSRemoteFolder folder) {
- checkedFolders.remove(folder);
- }
-
- private void folderChecked(ICVSRemoteFolder folder) {
- checkedFolders.add(folder);
- }
-
- private void repositoryLocationChecked(ICVSRepositoryLocation location) {
- Object[] elements = tree.getCheckedElements();
- boolean stayChecked = false;
- for (int i = 0; i < elements.length; i++) {
- Object object = elements[i];
- if (object instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (folder.getRepository().equals(location)) {
- stayChecked = true;
- }
- }
- }
- if (!stayChecked) {
- tree.setChecked(location, false);
- }
- }
-
- private void repositoryLocationUnchecked(ICVSRepositoryLocation location) {
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) iter.next();
- if (folder.getRepository().equals(location)) {
- tree.setChecked(folder, false);
- iter.remove();
- }
- }
- }
-
- private void modulesCategoryChecked(ModulesCategory category) {
- ICVSRepositoryLocation location = category.getRepository();
- Object[] elements = tree.getCheckedElements();
- boolean stayChecked = false;
- for (int i = 0; i < elements.length; i++) {
- Object object = elements[i];
- if (object instanceof ICVSRemoteFolder) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) object;
- if (folder.getRepository().equals(location) && (folder.isDefinedModule())) {
- stayChecked = true;
- }
- }
- }
- if (!stayChecked) {
- tree.setChecked(category, false);
- }
- }
-
- private void modulesCategoryUnchecked(ModulesCategory category) {
- ICVSRepositoryLocation location = category.getRepository();
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) iter.next();
- if (folder.getRepository().equals(location) && folder.isDefinedModule()) {
- tree.setChecked(folder, false);
- iter.remove();
- }
- }
- }
-
- /**
- * Method refreshTree.
- */
- public void refreshTree() {
- tree.refresh();
- }
-
- /**
- * Method initializeValues.
- */
- private void initializeValues() {
- nameField.setText(workingSetName);
- tree.setGrayedElements(getRepositoryManager().getKnownRepositoryLocations());
- }
-
- /**
- * Method updateWidgetEnablement.
- */
- private void updateWidgetEnablements() {
- // update the check state of repository locations and modules categories
- tree.removeCheckStateListener(checkStateListener);
- try {
- updateCheckState(null);
- // Make sure the name is valid
- if (workingSetName.length() == 0) {
- setPageComplete(false);
- setErrorMessage(null);
- } else if (!isValidName(workingSetName)) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("CVSWorkingSetFolderSelectionPage.invalidWorkingSetName", workingSetName)); //$NON-NLS-1$
- } else if (isDuplicateName(workingSetName)) {
- setPageComplete(false);
- setErrorMessage(Policy.bind("CVSWorkingSetFolderSelectionPage.duplicateWorkingSetName", workingSetName)); //$NON-NLS-1$
- } else if (checkedFolders.isEmpty()) {
- setErrorMessage(Policy.bind("CVSWorkingSetFolderSelectionPage.mustSelectFolder")); //$NON-NLS-1$
- setPageComplete(false);
- } else {
- setPageComplete(true);
- setErrorMessage(null);
- }
- } finally {
- tree.addCheckStateListener(checkStateListener);
- }
- }
-
- private void updateCheckState(Object expanded) {
- ICVSRepositoryLocation[] locations = getRepositoryManager().getKnownRepositoryLocations();
- Set checkedLocations = new HashSet();
- Set checkedCategories = new HashSet();
- List expandedParents = new ArrayList();
- expandedParents.addAll(Arrays.asList(tree.getExpandedElements()));
- if (expanded != null)
- expandedParents.add(expanded);
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder folder = (ICVSRemoteFolder) iter.next();
- checkedLocations.add(folder.getRepository());
- if (folder.isDefinedModule()) {
- ModulesCategory category = getModuleCategory(folder.getRepository());
- checkedCategories.add(getModuleCategory(folder.getRepository()));
- if (expandedParents.contains(category))
- tree.setChecked(folder, true);
- } else if (expandedParents.contains(folder.getRepository())) {
- tree.setChecked(folder, true);
- }
- }
- for (int i = 0; i < locations.length; i++) {
- ICVSRepositoryLocation location = locations[i];
- tree.setChecked(location, checkedLocations.contains(location));
- }
- for (Iterator iter = modulesCategoryCache.values().iterator(); iter.hasNext();) {
- ModulesCategory element = (ModulesCategory) iter.next();
- if (expandedParents.contains(element.getRepository()))
- tree.setChecked(element, checkedCategories.contains(element));
- }
- }
-
- /**
- * Method isValidName.
- * @param workingSetName
- * @return boolean
- */
- private boolean isValidName(String workingSetName) {
- if (workingSetName.length() == 0)
- return false;
- if (workingSetName.startsWith(" ")) //$NON-NLS-1$
- return false;
- if (workingSetName.endsWith(" ")) //$NON-NLS-1$
- return false;
- for (int i = 0; i < workingSetName.length(); i++) {
- char c = workingSetName.charAt(i);
- if (! Character.isLetterOrDigit(c) && ! Character.isSpaceChar(c))
- return false;
- }
- return true;
- }
-
- /**
- * Method isDuplicateName.
- * @param workingSetName
- * @return boolean
- */
- private boolean isDuplicateName(String workingSetName) {
- String originalWorkingSetName = workingSet.getName();
- if (originalWorkingSetName != null && workingSetName.equals(originalWorkingSetName)) {
- return false;
- }
- IWorkingSet[] workingSets = PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSets();
- for (int i= 0; i < workingSets.length; i++) {
- if (workingSetName.equals(workingSets[i].getName())) {
- return true;
- }
- }
- return false;
- }
-
- protected CheckboxTreeViewer createFolderSelectionTree(Composite composite, int span) {
- CheckboxTreeViewer tree = new CheckboxTreeViewer(composite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- tree.setUseHashlookup(true);
- tree.setContentProvider(new WorkbenchContentProvider() {
- public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof CVSWorkingSetPage) {
- return getRepositoryManager().getKnownRepositoryLocations();
- }
- if (parentElement instanceof ICVSRepositoryLocation) {
- ICVSRepositoryLocation location = (ICVSRepositoryLocation)parentElement;
- List result = new ArrayList();
- result.add(getModuleCategory(location));
- result.addAll(Arrays.asList(CVSWorkingSetPage.this.getChildren((ICVSRepositoryLocation)parentElement)));
- return (Object[]) result.toArray(new Object[result.size()]);
- }
- if (parentElement instanceof ModulesCategory) {
- ModulesCategory modules = (ModulesCategory)parentElement;
- return modules.getChildren(modules);
- }
- return new Object[0];
- }
- public Object getParent(Object element) {
- if (element instanceof ICVSRemoteFolder) {
- return ((ICVSRemoteFolder)element).getRepository();
- }
- return null;
- }
- public boolean hasChildren(Object parentElement) {
- return parentElement instanceof CVSWorkingSetPage || parentElement instanceof ICVSRepositoryLocation || parentElement instanceof ModulesCategory;
- }
- });
- tree.setLabelProvider(new WorkbenchLabelProvider());
- tree.setSorter(new RepositorySorter());
- tree.setInput(this);
-
- GridData data = new GridData(GridData.FILL_BOTH | GridData.GRAB_VERTICAL);
- data.heightHint = LIST_HEIGHT_HINT;
- data.horizontalSpan = span;
- tree.getControl().setLayoutData(data);
- return tree;
- }
-
- /**
- * Method getChildren.
- * @param iCVSRepositoryLocation
- * @return Object[]
- */
- public ICVSRemoteResource[] getChildren(final ICVSRepositoryLocation location) {
- final ICVSRemoteResource[][] result = new ICVSRemoteResource[1][0];
- result[0] = null;
- try {
- getContainer().run(false /* fork */, true /* cancelable */, new IRunnableWithProgress() {
- public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
- try {
- result[0] = location.members(CVSTag.DEFAULT, false /* show modules */, monitor);
- } catch (CVSException e) {
- throw new InvocationTargetException(e);
- }
- }
- });
- } catch (InvocationTargetException e) {
- CVSUIPlugin.openError(getContainer().getShell(), null, null, e, CVSUIPlugin.PERFORM_SYNC_EXEC);
- } catch (InterruptedException e) {
- }
- return result[0];
- }
-
- public ICVSRepositoryLocation[] getRepositoryLocationsWithCheckedChildren() {
- Set locations = new HashSet();
- for (Iterator iter = checkedFolders.iterator(); iter.hasNext();) {
- ICVSRemoteFolder element = (ICVSRemoteFolder) iter.next();
- locations.add(element.getRepository());
- }
- return (ICVSRepositoryLocation[]) locations.toArray(new ICVSRepositoryLocation[locations.size()]);
- }
- /**
- * Returns the workingSetName.
- * @return String
- */
- public String getWorkingSetName() {
- return workingSetName;
- }
-
- public ICVSRemoteFolder[] getSelectedFolders() {
- return (ICVSRemoteFolder[]) checkedFolders.toArray(new ICVSRemoteFolder[checkedFolders.size()]);
- }
-
- /**
- * @see org.eclipse.ui.dialogs.IWorkingSetPage#finish()
- */
- public void finish() {
- // todo
- }
- /**
- * @see org.eclipse.ui.dialogs.IWorkingSetPage#getSelection()
- */
- public IWorkingSet getSelection() {
- return workingSet;
- }
- /**
- * @see org.eclipse.ui.dialogs.IWorkingSetPage#setSelection(org.eclipse.ui.IWorkingSet)
- */
- public void setSelection(IWorkingSet workingSet) {
- this.workingSet = workingSet;
- workingSetName = workingSet.getName();
- }
-
-}

Back to the top