diff options
author | Jean Michel-Lemieux | 2003-12-13 03:40:46 +0000 |
---|---|---|
committer | Jean Michel-Lemieux | 2003-12-13 03:40:46 +0000 |
commit | 28ea4399145c0aa72fae323df486ff56654849bb (patch) | |
tree | 562405a58789c81545657db1bcaca643a6e4b99e /bundles/org.eclipse.team.cvs.ui | |
parent | ef893e2535a0693244772a713a5edd77e6cfbe14 (diff) | |
download | eclipse.platform.team-28ea4399145c0aa72fae323df486ff56654849bb.tar.gz eclipse.platform.team-28ea4399145c0aa72fae323df486ff56654849bb.tar.xz eclipse.platform.team-28ea4399145c0aa72fae323df486ff56654849bb.zip |
*** empty log message ***
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui')
2 files changed, 179 insertions, 17 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java index 72699db59..39b1bc2e3 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizard.java @@ -30,7 +30,9 @@ import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo; import org.eclipse.team.internal.ccvs.ui.*; import org.eclipse.team.internal.ccvs.ui.Policy; import org.eclipse.team.internal.ccvs.ui.operations.ShareProjectOperation; +import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant; import org.eclipse.team.ui.IConfigurationWizard; +import org.eclipse.team.ui.TeamUI; import org.eclipse.team.ui.synchronize.TeamSubscriberParticipant; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkingSet; @@ -67,6 +69,7 @@ public class SharingWizard extends Wizard implements IConfigurationWizard { setDialogSettings(section); setNeedsProgressMonitor(true); setWindowTitle(Policy.bind("SharingWizard.title")); //$NON-NLS-1$ + //set } public void addPages() { @@ -98,7 +101,8 @@ public class SharingWizard extends Wizard implements IConfigurationWizard { modulePage = new ModuleSelectionPage("modulePage", Policy.bind("SharingWizard.enterModuleName"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$ modulePage.setDescription(Policy.bind("SharingWizard.enterModuleNameDescription")); //$NON-NLS-1$ addPage(modulePage); - finishPage = new SharingWizardFinishPage("finishPage", Policy.bind("SharingWizard.readyToFinish"), sharingImage); //$NON-NLS-1$ //$NON-NLS-2$ + WorkspaceSynchronizeParticipant p = (WorkspaceSynchronizeParticipant)TeamUI.getSynchronizeManager().find(WorkspaceSynchronizeParticipant.ID)[0]; + finishPage = new SharingWizardFinishPage("finishPage", Policy.bind("SharingWizard.readyToFinish"), p, sharingImage); //$NON-NLS-1$ //$NON-NLS-2$ finishPage.setDescription(Policy.bind("SharingWizard.readyToFinishDescription")); //$NON-NLS-1$ addPage(finishPage); } diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java index 269f3ab74..5a8c816fa 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/wizards/SharingWizardFinishPage.java @@ -11,34 +11,192 @@ package org.eclipse.team.internal.ccvs.ui.wizards; +import java.lang.reflect.InvocationTargetException; + +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.*; import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Label; -import org.eclipse.team.internal.ccvs.ui.IHelpContextIds; -import org.eclipse.team.internal.ccvs.ui.Policy; -import org.eclipse.ui.help.WorkbenchHelp; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.*; +import org.eclipse.team.core.TeamException; +import org.eclipse.team.core.subscribers.SyncInfo; +import org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceSynchronizeParticipant; +import org.eclipse.team.internal.ui.synchronize.SyncChangesTreeViewer; +import org.eclipse.team.internal.ui.synchronize.compare.SyncInfoCompareInput; +import org.eclipse.team.internal.ui.synchronize.compare.SyncInfoDiffNode; +import org.eclipse.team.internal.ui.synchronize.views.TeamSubscriberParticipantLabelProvider; +import org.eclipse.team.internal.ui.widgets.*; +import org.eclipse.team.ui.synchronize.ITeamSubscriberParticipantNode; +import org.eclipse.team.ui.synchronize.SyncChangesViewer; +import org.eclipse.ui.part.PageBook; public class SharingWizardFinishPage extends CVSWizardPage { - public SharingWizardFinishPage(String pageName, String title, ImageDescriptor titleImage) { + private WorkspaceSynchronizeParticipant participant; + + public SharingWizardFinishPage(String pageName, String title, WorkspaceSynchronizeParticipant participant, ImageDescriptor titleImage) { super(pageName, title, titleImage); + this.participant = participant; } /* * @see IDialogPage#createControl(Composite) */ public void createControl(Composite parent) { - Composite composite = createComposite(parent, 1); - // set F1 help - WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_FINISH_PAGE); - Label label = new Label(composite, SWT.LEFT | SWT.WRAP); - label.setText(Policy.bind("SharingWizardFinishPage.message")); //$NON-NLS-1$ - GridData data = new GridData(); - data.widthHint = 350; - label.setLayoutData(data); - setControl(composite); - Dialog.applyDialogFont(parent); +// Composite composite = createComposite(parent, 1); +// // set F1 help +// WorkbenchHelp.setHelp(composite, IHelpContextIds.SHARING_FINISH_PAGE); +// Label label = new Label(composite, SWT.LEFT | SWT.WRAP); +// label.setText(Policy.bind("SharingWizardFinishPage.message")); //$NON-NLS-1$ +// GridData data = new GridData(); +// data.widthHint = 350; +// label.setLayoutData(data); +// setControl(composite); +// Dialog.applyDialogFont(parent); + + setControl(createCoolControl(parent)); + + + } + + private static class NullPreviewer implements IChangePreviewViewer { + private Label fLabel; + public void createControl(Composite parent) { + fLabel= new Label(parent, SWT.CENTER | SWT.FLAT); + fLabel.setText("No preview available"); //$NON-NLS-1$ + } + public void refresh() { + } + public Control getControl() { + return fLabel; + } + public void setInput(Object input) throws CoreException { + } + } + + private PageBook fPreviewContainer; + private IChangePreviewViewer fNullPreviewer; + private IChangePreviewViewer fChangePreviewViewer; + private IChangePreviewViewer fCurrentPreviewViewer; + private Viewer fTreeViewer; + private ITeamSubscriberParticipantNode fCurrentSelection = null; + + public Composite createCoolControl(Composite parent) { + Composite result= new Composite(parent, SWT.NONE); + GridLayout layout= new GridLayout(); + layout.marginHeight= 0; layout.marginWidth= 0; + result.setLayout(layout); + + SashForm sashForm= new SashForm(result, SWT.VERTICAL); + + ViewerPane pane= new ViewerPane(sashForm, SWT.BORDER | SWT.FLAT); + pane.setText("Synchronize Changes"); //$NON-NLS-1$ + ToolBarManager tbm= pane.getToolBarManager(); + //tbm.add(new NextChange()); + //tbm.add(new PreviousChange()); + //tbm.update(true); + + fTreeViewer= createTreeViewer(pane); + //fTreeViewer.setContentProvider(createTreeContentProvider()); + //fTreeViewer.setLabelProvider(createTreeLabelProvider()); + fTreeViewer.addSelectionChangedListener(createSelectionChangedListener()); + //fTreeViewer.addCheckStateListener(createCheckStateListener()); + pane.setContent(fTreeViewer.getControl()); + //setTreeViewerInput(); + + fPreviewContainer= new PageBook(sashForm, SWT.NONE); + fNullPreviewer= new NullPreviewer(); + fNullPreviewer.createControl(fPreviewContainer); + fPreviewContainer.showPage(fNullPreviewer.getControl()); + fCurrentPreviewViewer= fNullPreviewer; + + sashForm.setWeights(new int[]{33, 67}); + GridData gd= new GridData(GridData.FILL_BOTH); + gd.widthHint= convertWidthInCharsToPixels(80); + sashForm.setLayoutData(gd); + Dialog.applyDialogFont(result); + + fChangePreviewViewer = new TextChangePreviewViewer(); + fChangePreviewViewer.createControl(fPreviewContainer); + + return result; + } + + /** + * @param pane + * @return + */ + private Viewer createTreeViewer(ViewerPane pane) { + SyncChangesViewer viewer = new SyncChangesTreeViewer(pane, this.participant, participant.getInput().getFilteredSyncSet()); + viewer.getViewer().setLabelProvider(new TeamSubscriberParticipantLabelProvider()); + return viewer.getViewer(); + } + + private ISelectionChangedListener createSelectionChangedListener() { + return new ISelectionChangedListener(){ + public void selectionChanged(SelectionChangedEvent event) { + IStructuredSelection sel= (IStructuredSelection) event.getSelection(); + if (sel.size() == 1) { + ITeamSubscriberParticipantNode newSelection= (ITeamSubscriberParticipantNode)sel.getFirstElement(); + if (newSelection != fCurrentSelection) { + fCurrentSelection= newSelection; + SyncInfo info = fCurrentSelection.getSyncInfo(); + if(info != null && info.getLocal().getType() == IResource.FILE) { + SyncInfoDiffNode node = SyncInfoCompareInput.createSyncInfoDiffNode(participant, info); + fetchContents(node); + showPreview(node); + } else { + showPreview(null); + } + } + } else { + showPreview(null); + } + } + }; + } + + private void fetchContents(final SyncInfoDiffNode node) { + try { + getContainer().run(true, true, new IRunnableWithProgress() { + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + try { + node.cacheContents(monitor); + } catch (TeamException e) { + throw new InvocationTargetException(e); + } + } + }); + } catch (InvocationTargetException e) { + // TODO Auto-generated catch block + } catch (InterruptedException e) { + // TODO Auto-generated catch block + } + } + + private void showPreview(Object element) { + if (element == null) { + showNullPreviewer(); + } else { + try { + fCurrentPreviewViewer = fChangePreviewViewer; + fCurrentPreviewViewer.setInput(element); + } catch (CoreException e) { + showNullPreviewer(); + } + fPreviewContainer.showPage(fCurrentPreviewViewer.getControl()); + } + } + + private void showNullPreviewer() { + fCurrentPreviewViewer= fNullPreviewer; + fPreviewContainer.showPage(fCurrentPreviewViewer.getControl()); } } |