diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java | 291 |
1 files changed, 0 insertions, 291 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java deleted file mode 100644 index 7322eaaf1..000000000 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/KSubstWizardSummaryPage.java +++ /dev/null @@ -1,291 +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.wizards; - - -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.jface.viewers.CheckStateChangedEvent; -import org.eclipse.jface.viewers.CheckboxTableViewer; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.ComboBoxCellEditor; -import org.eclipse.jface.viewers.ICellModifier; -import org.eclipse.jface.viewers.ICheckStateListener; -import org.eclipse.jface.viewers.ILabelProviderListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.BusyIndicator; -import org.eclipse.swt.custom.TableEditor; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.team.internal.ccvs.core.client.Command.KSubstOption; -import org.eclipse.team.internal.ccvs.ui.IHelpContextIds; -import org.eclipse.team.internal.ccvs.ui.Policy; -import org.eclipse.team.internal.ccvs.ui.wizards.KSubstWizard.KSubstChangeElement; -import org.eclipse.ui.help.WorkbenchHelp; -import org.eclipse.ui.model.WorkbenchViewerSorter; - -public class KSubstWizardSummaryPage extends CVSWizardPage { - private CheckboxTableViewer tableViewer = null; - private KSubstOption[] ksubstOptions; - private String[] ksubstOptionsDisplayText; - private int filterType; - - private Button showUnaffectedFilesButton; - private boolean showUnaffectedFiles; - - public KSubstWizardSummaryPage(String pageName, String title, ImageDescriptor image, boolean showUnaffectedFiles) { - super(pageName, title, image); - this.showUnaffectedFiles = showUnaffectedFiles; - - // sort the options by display text - ksubstOptions = KSubstOption.getAllKSubstOptions(); - ksubstOptionsDisplayText = new String[ksubstOptions.length]; - Arrays.sort(ksubstOptions, new Comparator() { - public int compare(Object a, Object b) { - String aKey = getModeDisplayText((KSubstOption) a); - String bKey = getModeDisplayText((KSubstOption) b); - return aKey.compareTo(bKey); - } - }); - for (int i = 0; i < ksubstOptions.length; i++) { - ksubstOptionsDisplayText[i] = getModeDisplayText(ksubstOptions[i]); - } - } - - public void createControl(Composite parent) { - Composite top = new Composite(parent, SWT.NONE); - top.setLayout(new GridLayout()); - setControl(top); - createWrappingLabel(top, Policy.bind("KSubstWizardSummaryPage.contents"), 0); //$NON-NLS-1$ - - // set F1 help - WorkbenchHelp.setHelp(top, IHelpContextIds.KEYWORD_SUBSTITUTION_SUMMARY_PAGE); - - createSeparator(top, 0); - - showUnaffectedFilesButton = new Button(top, SWT.CHECK); - showUnaffectedFilesButton.setText(Policy.bind("KSubstWizardSummaryPage.showUnaffectedFiles")); //$NON-NLS-1$ - showUnaffectedFilesButton.setSelection(showUnaffectedFiles); - showUnaffectedFilesButton.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - BusyIndicator.showWhile(getContainer().getShell().getDisplay(), new Runnable() { - public void run() { - showUnaffectedFiles = showUnaffectedFilesButton.getSelection(); - refresh(false); - } - }); - } - }); - - tableViewer = createFileTableViewer(top, - Policy.bind("KSubstWizardSummaryPage.summaryViewer.title"), //$NON-NLS-1$ - Policy.bind("KSubstWizardSummaryPage.summaryViewer.fileHeader"), //$NON-NLS-1$ - Policy.bind("KSubstWizardSummaryPage.summaryViewer.ksubstHeader"), //$NON-NLS-1$ - LIST_HEIGHT_HINT); - Dialog.applyDialogFont(parent); - } - - /** - * Creates a TableViewer whose input is a Map from IFile to KSubstOption. - * - * @param parent the parent of the viewer - * @param title the text for the title label - * @param heightHint the nominal height of the list - * @return the created list viewer - */ - public CheckboxTableViewer createFileTableViewer(Composite parent, String title, - String fileHeader, String ksubstHeader, int heightHint) { - createLabel(parent, title); - // create a table - Table table = new Table(parent, SWT.CHECK | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); - GridData data = new GridData(GridData.FILL_BOTH); - data.heightHint = heightHint; - table.setLayoutData(data); - table.setLinesVisible(true); - table.setHeaderVisible(true); - - // add the columns - TableColumn column = new TableColumn(table, SWT.LEFT); - column.setText(fileHeader); - column = new TableColumn(table, SWT.LEFT); - column.setText(ksubstHeader); - TableLayout tableLayout = new TableLayout(); - table.setLayout(tableLayout); - tableLayout.addColumnData(new ColumnWeightData(1, true)); - tableLayout.addColumnData(new ColumnWeightData(1, true)); - - // create a viewer for the table - final CheckboxTableViewer tableViewer = new CheckboxTableViewer(table); - tableViewer.setContentProvider(new IStructuredContentProvider() { - public Object[] getElements(Object inputElement) { - return (Object[]) inputElement; - } - public void dispose() { - } - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - } - }); - - // show file name and keyword substitution mode - tableViewer.setLabelProvider(new ITableLabelProvider() { - public Image getColumnImage(Object element, int columnIndex) { - return null; - } - public String getColumnText(Object element, int columnIndex) { - KSubstChangeElement change = (KSubstChangeElement) element; - if (columnIndex == 0) { - return change.getFile().getFullPath().toString(); - } else if (columnIndex == 1) { - return getModeDisplayText(change.getKSubst()); - } - return null; - } - public void addListener(ILabelProviderListener listener) { - } - public void dispose() { - } - public boolean isLabelProperty(Object element, String property) { - return false; - } - public void removeListener(ILabelProviderListener listener) { - } - }); - - // sort by file name - tableViewer.setSorter(new WorkbenchViewerSorter() { - public int compare(Viewer viewer, Object e1, Object e2) { - IFile file1 = ((KSubstChangeElement) e1).getFile(); - IFile file2 = ((KSubstChangeElement) e2).getFile(); - return super.compare(viewer, file1, file2); - } - }); - - // filter - tableViewer.addFilter(new ViewerFilter() { - public boolean select(Viewer viewer, Object parentElement, Object element) { - KSubstChangeElement change = (KSubstChangeElement) element; - return ( showUnaffectedFiles || change.isNewKSubstMode()) && change.matchesFilter(filterType); - } - }); - - // add a check state listener - tableViewer.addCheckStateListener(new ICheckStateListener() { - public void checkStateChanged(CheckStateChangedEvent event) { - KSubstChangeElement change = (KSubstChangeElement) event.getElement(); - if (tableViewer.getGrayed(change)) { - // if it's grayed then give it the appearance of being disabled - updateCheckStatus(change); - } else { - // otherwise record the change - change.setExcluded(! event.getChecked()); - } - } - }); - - // add a cell editor in the Keyword Substitution Mode column - new TableEditor(table); - CellEditor cellEditor = new ComboBoxCellEditor(table, ksubstOptionsDisplayText); - tableViewer.setCellEditors(new CellEditor[] { null, cellEditor }); - tableViewer.setColumnProperties(new String[] { "file", "mode" }); //$NON-NLS-1$ //$NON-NLS-2$ - tableViewer.setCellModifier(new ICellModifier() { - public Object getValue(Object element, String property) { - KSubstChangeElement change = (KSubstChangeElement) element; - KSubstOption option = change.getKSubst(); - for (int i = 0; i < ksubstOptions.length; ++i) { - if (ksubstOptions[i].equals(option)) return new Integer(i); - } - // XXX need to handle this better - return null; - } - public boolean canModify(Object element, String property) { - return true; - } - public void modify(Object element, String property, Object value) { - // XXX The runtime type of 'element' seems to be a TableItem instead of the - // actual element data as with the other methods. As a workaround, use - // the table's selection mechanism instead. - IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); - element = selection.getFirstElement(); - int index = ((Integer) value).intValue(); - // selection will be -1 if some arbitrary text was entered since the combo box is not read only - if (index != -1) { - KSubstChangeElement change = (KSubstChangeElement) element; - KSubstOption newOption = ksubstOptions[index]; - if (! newOption.equals(change.getKSubst())) { - // the option has been changed, include it by default now if it wasn't before - // since the user has shown interest in it - change.setKSubst(newOption); - change.setExcluded(false); - tableViewer.refresh(change, true /*updateLabels*/); - updateCheckStatus(change); - } - } - } - }); - return tableViewer; - } - - public void setChangeList(List changes, int filterType) { - this.filterType = filterType; - tableViewer.setInput(changes.toArray()); - refresh(true); - } - - private void refresh(boolean updateLabels) { - tableViewer.refresh(updateLabels); - Object[] elements = (Object[]) tableViewer.getInput(); - for (int i = 0; i < elements.length; i++) { - KSubstChangeElement change = (KSubstChangeElement) elements[i]; - updateCheckStatus(change); - } - } - - private void updateCheckStatus(KSubstChangeElement change) { - if (change.isNewKSubstMode()) { - // if the mode differs, the checkbox indicates the inclusion/exclusion status - tableViewer.setGrayed(change, false); - tableViewer.setChecked(change, ! change.isExcluded()); - } else { - // otherwise, the checkbox is meaningless except to indicate that the file will not be changed - tableViewer.setGrayed(change, true); - tableViewer.setChecked(change, false); - } - } - - private String getModeDisplayText(KSubstOption option) { - return option.getLongDisplayText(); - } - public void setVisible(boolean visible) { - super.setVisible(visible); - if (visible) { - showUnaffectedFilesButton.setFocus(); - } - } -} |