Search in sources :

Example 1 with PropertyCompareLocalResourceNode

use of org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode in project subclipse by subclipse.

the class ComparePropertiesDialog method okPressed.

@Override
protected void okPressed() {
    try {
        if (fromWorkingCopyButton.getSelection()) {
            left = new PropertyCompareLocalResourceNode(fromLocalResource, recursiveButton.getSelection(), null);
        } else {
            SVNRevision revision = null;
            if (fromHeadButton.getSelection()) {
                revision = SVNRevision.HEAD;
            } else {
                revision = new SVNRevision.Number(Long.parseLong(fromRevisionText.getText()));
            }
            RemoteFolder remoteFolder = new RemoteFolder(repository, new SVNUrl(fromRepositoryText.getText().trim()), revision);
            left = new PropertyCompareRemoteResourceNode(remoteFolder, revision, recursiveButton.getSelection(), null);
        }
        if (toWorkingCopyButton.getSelection()) {
            right = new PropertyCompareLocalResourceNode(toLocalResource, recursiveButton.getSelection(), null);
        } else {
            SVNRevision revision = null;
            if (toHeadButton.getSelection()) {
                revision = SVNRevision.HEAD;
            } else {
                revision = new SVNRevision.Number(Long.parseLong(toRevisionText.getText()));
            }
            RemoteFolder remoteFolder = new RemoteFolder(repository, new SVNUrl(toRepositoryText.getText().trim()), revision);
            right = new PropertyCompareRemoteResourceNode(remoteFolder, revision, recursiveButton.getSelection(), null);
        }
        input = new PropertyCompareInput(left, right, recursiveButton.getSelection());
    } catch (Exception e) {
        MessageDialog.openError(getShell(), Policy.bind("ComparePropertiesDialog.1"), // $NON-NLS-1$
        e.getMessage());
        return;
    }
    super.okPressed();
}
Also used : PropertyCompareLocalResourceNode(org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode) PropertyCompareInput(org.tigris.subversion.subclipse.ui.compare.PropertyCompareInput) RemoteFolder(org.tigris.subversion.subclipse.core.resources.RemoteFolder) SVNUrl(org.tigris.subversion.svnclientadapter.SVNUrl) PropertyCompareRemoteResourceNode(org.tigris.subversion.subclipse.ui.compare.PropertyCompareRemoteResourceNode) SVNRevision(org.tigris.subversion.svnclientadapter.SVNRevision)

Example 2 with PropertyCompareLocalResourceNode

use of org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode in project subclipse by subclipse.

the class CompareSvnPropertiesAction method execute.

public void execute(IAction action) {
    exception = null;
    IResource[] resources = getSelectedResources();
    IPropertyProvider left = null;
    right = null;
    if (resources != null && resources.length > 0) {
        left = new PropertyCompareLocalResourceNode(resources[0], true, null);
        if (resources.length > 1) {
            right = new PropertyCompareLocalResourceNode(resources[1], true, null);
        } else {
            final ISVNLocalResource svnResource = SVNWorkspaceRoot.getSVNResourceFor(resources[0]);
            BusyIndicator.showWhile(Display.getDefault(), new Runnable() {

                public void run() {
                    try {
                        right = new PropertyCompareRemoteResourceNode(svnResource.getRemoteResource(SVNRevision.HEAD), SVNRevision.HEAD, true, null);
                    } catch (SVNException e) {
                        exception = e;
                    }
                }
            });
            if (exception != null) {
                MessageDialog.openError(getShell(), Policy.bind("CompareSvnPropertiesAction.0"), // $NON-NLS-1$
                exception.getMessage());
                return;
            }
        }
    } else {
        ISVNRemoteResource[] remoteResources = getSelectedRemoteResources();
        if (remoteResources != null && remoteResources.length > 0) {
            left = new PropertyCompareRemoteResourceNode(remoteResources[0], SVNRevision.HEAD, true, null);
            if (remoteResources.length > 1) {
                right = new PropertyCompareRemoteResourceNode(remoteResources[1], SVNRevision.HEAD, true, null);
            }
        }
    }
    ComparePropertiesDialog dialog = new ComparePropertiesDialog(getShell(), left, right);
    if (dialog.open() == ComparePropertiesDialog.OK) {
        CompareUI.openCompareEditorOnPage(dialog.getInput(), getTargetPage());
    }
}
Also used : PropertyCompareLocalResourceNode(org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode) ComparePropertiesDialog(org.tigris.subversion.subclipse.ui.dialogs.ComparePropertiesDialog) IPropertyProvider(org.tigris.subversion.subclipse.ui.compare.IPropertyProvider) PropertyCompareRemoteResourceNode(org.tigris.subversion.subclipse.ui.compare.PropertyCompareRemoteResourceNode) SVNException(org.tigris.subversion.subclipse.core.SVNException) ISVNRemoteResource(org.tigris.subversion.subclipse.core.ISVNRemoteResource) ISVNLocalResource(org.tigris.subversion.subclipse.core.ISVNLocalResource) IResource(org.eclipse.core.resources.IResource)

Example 3 with PropertyCompareLocalResourceNode

use of org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode in project subclipse by subclipse.

the class ComparePropertiesDialog method createDialogArea.

protected Control createDialogArea(Composite parent) {
    // $NON-NLS-1$
    getShell().setText(Policy.bind("ComparePropertiesDialog.1"));
    Composite composite = new Composite(parent, SWT.NULL);
    composite.setLayout(new GridLayout());
    composite.setLayoutData(new GridData(GridData.FILL_BOTH));
    Group fromGroup = new Group(composite, SWT.NULL);
    // $NON-NLS-1$
    fromGroup.setText(Policy.bind("ShowDifferencesAsUnifiedDiffDialog.compareFrom"));
    GridLayout fromLayout = new GridLayout();
    fromLayout.numColumns = 3;
    fromGroup.setLayout(fromLayout);
    GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
    fromGroup.setLayoutData(data);
    fromWorkingCopyButton = new Button(fromGroup, SWT.RADIO);
    // $NON-NLS-1$
    fromWorkingCopyButton.setText(Policy.bind("ComparePropertiesDialog.2"));
    fromWorkingCopyText = new Text(fromGroup, SWT.BORDER | SWT.READ_ONLY);
    data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    data.widthHint = 600;
    fromWorkingCopyText.setLayoutData(data);
    fromWorkingCopyBrowseButton = new Button(fromGroup, SWT.PUSH);
    // $NON-NLS-1$
    fromWorkingCopyBrowseButton.setText(Policy.bind("ComparePropertiesDialog.3"));
    fromRepositoryButton = new Button(fromGroup, SWT.RADIO);
    // $NON-NLS-1$
    fromRepositoryButton.setText(Policy.bind("ComparePropertiesDialog.4"));
    fromRepositoryText = new Text(fromGroup, SWT.BORDER);
    data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    data.widthHint = 600;
    fromRepositoryText.setLayoutData(data);
    fromRepositoryBrowseButton = new Button(fromGroup, SWT.PUSH);
    // $NON-NLS-1$
    fromRepositoryBrowseButton.setText(Policy.bind("ComparePropertiesDialog.3"));
    fromHeadButton = new Button(fromGroup, SWT.CHECK);
    data = new GridData();
    data.horizontalSpan = 3;
    fromHeadButton.setLayoutData(data);
    // $NON-NLS-1$
    fromHeadButton.setText(Policy.bind("ComparePropertiesDialog.6"));
    fromHeadButton.setSelection(true);
    Composite fromRevisionGroup = new Composite(fromGroup, SWT.NONE);
    GridLayout fromRevisionLayout = new GridLayout();
    fromRevisionLayout.numColumns = 3;
    fromRevisionLayout.marginHeight = 0;
    fromRevisionLayout.marginWidth = 0;
    fromRevisionGroup.setLayout(fromRevisionLayout);
    data = new GridData();
    data.horizontalSpan = 3;
    fromRevisionGroup.setLayoutData(data);
    fromRevisionLabel = new Label(fromRevisionGroup, SWT.NONE);
    // $NON-NLS-1$
    fromRevisionLabel.setText(Policy.bind("ComparePropertiesDialog.7"));
    fromRevisionLabel.setEnabled(false);
    fromRevisionText = new Text(fromRevisionGroup, SWT.BORDER);
    data = new GridData();
    data.widthHint = 40;
    fromRevisionText.setLayoutData(data);
    fromRevisionText.setEnabled(false);
    fromRevisionBrowseButton = new Button(fromRevisionGroup, SWT.PUSH);
    // $NON-NLS-1$
    fromRevisionBrowseButton.setText(Policy.bind("ComparePropertiesDialog.3"));
    fromRevisionBrowseButton.setEnabled(false);
    Group toGroup = new Group(composite, SWT.NULL);
    // $NON-NLS-1$
    toGroup.setText(Policy.bind("ShowDifferencesAsUnifiedDiffDialog.compareTo"));
    GridLayout toLayout = new GridLayout();
    toLayout.numColumns = 3;
    toGroup.setLayout(toLayout);
    data = new GridData(SWT.FILL, SWT.FILL, true, false);
    toGroup.setLayoutData(data);
    toWorkingCopyButton = new Button(toGroup, SWT.RADIO);
    // $NON-NLS-1$
    toWorkingCopyButton.setText(Policy.bind("ComparePropertiesDialog.2"));
    toWorkingCopyText = new Text(toGroup, SWT.BORDER | SWT.READ_ONLY);
    data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    data.widthHint = 600;
    toWorkingCopyText.setLayoutData(data);
    toWorkingCopyBrowseButton = new Button(toGroup, SWT.PUSH);
    // $NON-NLS-1$
    toWorkingCopyBrowseButton.setText(Policy.bind("ComparePropertiesDialog.3"));
    toRepositoryButton = new Button(toGroup, SWT.RADIO);
    // $NON-NLS-1$
    toRepositoryButton.setText(Policy.bind("ComparePropertiesDialog.4"));
    toRepositoryText = new Text(toGroup, SWT.BORDER);
    data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    data.widthHint = 600;
    toRepositoryText.setLayoutData(data);
    toRepositoryBrowseButton = new Button(toGroup, SWT.PUSH);
    // $NON-NLS-1$
    toRepositoryBrowseButton.setText(Policy.bind("ComparePropertiesDialog.3"));
    toHeadButton = new Button(toGroup, SWT.CHECK);
    data = new GridData();
    data.horizontalSpan = 3;
    toHeadButton.setLayoutData(data);
    // $NON-NLS-1$
    toHeadButton.setText(Policy.bind("ComparePropertiesDialog.6"));
    toHeadButton.setSelection(true);
    Composite toRevisionGroup = new Composite(toGroup, SWT.NONE);
    GridLayout toRevisionLayout = new GridLayout();
    toRevisionLayout.numColumns = 3;
    toRevisionLayout.marginHeight = 0;
    toRevisionLayout.marginWidth = 0;
    toRevisionGroup.setLayout(toRevisionLayout);
    data = new GridData();
    data.horizontalSpan = 3;
    toRevisionGroup.setLayoutData(data);
    toRevisionLabel = new Label(toRevisionGroup, SWT.NONE);
    // $NON-NLS-1$
    toRevisionLabel.setText(Policy.bind("ComparePropertiesDialog.7"));
    toRevisionLabel.setEnabled(false);
    toRevisionText = new Text(toRevisionGroup, SWT.BORDER);
    data = new GridData();
    data.widthHint = 40;
    toRevisionText.setLayoutData(data);
    toRevisionText.setEnabled(false);
    toRevisionBrowseButton = new Button(toRevisionGroup, SWT.PUSH);
    // $NON-NLS-1$
    toRevisionBrowseButton.setText(Policy.bind("ComparePropertiesDialog.3"));
    toRevisionBrowseButton.setEnabled(false);
    recursiveButton = new Button(composite, SWT.CHECK);
    // $NON-NLS-1$
    recursiveButton.setText(Policy.bind("ComparePropertiesDialog.16"));
    if (left != null) {
        if (left instanceof PropertyCompareLocalResourceNode) {
            fromWorkingCopyText.setText(((PropertyCompareLocalResourceNode) left).getResource().getFullPath().toString());
            fromWorkingCopyButton.setSelection(true);
            fromRepositoryText.setEnabled(false);
            fromRepositoryBrowseButton.setEnabled(false);
            fromHeadButton.setEnabled(false);
            fromLocalResource = ((PropertyCompareLocalResourceNode) left).getResource();
        } else if (left instanceof PropertyCompareRemoteResourceNode) {
            fromRepositoryText.setText(((PropertyCompareRemoteResourceNode) left).getRemoteResource().getUrl().toString());
            fromRepositoryButton.setSelection(true);
            fromWorkingCopyText.setEnabled(false);
            fromWorkingCopyBrowseButton.setEnabled(false);
            fromHeadButton.setEnabled(true);
        }
    }
    if (right == null) {
        right = left;
    }
    if (right != null) {
        if (right instanceof PropertyCompareLocalResourceNode) {
            toWorkingCopyText.setText(((PropertyCompareLocalResourceNode) right).getResource().getFullPath().toString());
            toWorkingCopyButton.setSelection(true);
            toRepositoryText.setEnabled(false);
            toRepositoryBrowseButton.setEnabled(false);
            toHeadButton.setEnabled(false);
            repository = SVNWorkspaceRoot.getSVNResourceFor(((PropertyCompareLocalResourceNode) right).getResource()).getRepository();
            toLocalResource = ((PropertyCompareLocalResourceNode) right).getResource();
        } else if (right instanceof PropertyCompareRemoteResourceNode) {
            toRepositoryText.setText(((PropertyCompareRemoteResourceNode) right).getRemoteResource().getUrl().toString());
            toRepositoryButton.setSelection(true);
            toWorkingCopyText.setEnabled(false);
            toWorkingCopyBrowseButton.setEnabled(false);
            toHeadButton.setEnabled(true);
            repository = ((PropertyCompareRemoteResourceNode) right).getRemoteResource().getRepository();
        }
    }
    ModifyListener modifyListener = new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            okButton.setEnabled(canFinish());
        }
    };
    fromWorkingCopyText.addModifyListener(modifyListener);
    fromRepositoryText.addModifyListener(modifyListener);
    fromRevisionText.addModifyListener(modifyListener);
    toWorkingCopyText.addModifyListener(modifyListener);
    toRepositoryText.addModifyListener(modifyListener);
    toRevisionText.addModifyListener(modifyListener);
    SelectionListener selectionListener = new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() == fromWorkingCopyBrowseButton || e.getSource() == toWorkingCopyBrowseButton) {
                ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), new WorkbenchLabelProvider(), new BaseWorkbenchContentProvider());
                // $NON-NLS-1$
                dialog.setTitle(Policy.bind("ComparePropertiesDialog.1"));
                // $NON-NLS-1$
                dialog.setMessage(Policy.bind("ComparePropertiesDialog.18"));
                dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
                if (dialog.open() != ElementTreeSelectionDialog.CANCEL) {
                    Object result = dialog.getFirstResult();
                    if (result instanceof IResource) {
                        if (e.getSource() == fromWorkingCopyBrowseButton) {
                            fromWorkingCopyText.setText(((IResource) result).getFullPath().toString());
                            fromLocalResource = (IResource) result;
                        } else {
                            toWorkingCopyText.setText(((IResource) result).getFullPath().toString());
                            toLocalResource = (IResource) result;
                        }
                    }
                }
            } else if (e.getSource() == fromRepositoryBrowseButton || e.getSource() == toRepositoryBrowseButton) {
                ChooseUrlDialog dialog = new ChooseUrlDialog(getShell(), null);
                dialog.setRepositoryLocation(repository);
                if (dialog.open() != ChooseUrlDialog.CANCEL) {
                    String url = dialog.getUrl();
                    if (url != null) {
                        if (e.getSource() == fromRepositoryBrowseButton) {
                            fromRepositoryText.setText(url);
                        } else {
                            toRepositoryText.setText(url);
                        }
                    }
                }
            } else if (e.getSource() == fromRevisionBrowseButton || e.getSource() == toRevisionBrowseButton) {
                try {
                    SVNUrl url = null;
                    if (e.getSource() == fromRevisionBrowseButton) {
                        url = new SVNUrl(fromRepositoryText.getText().trim());
                    } else {
                        url = new SVNUrl(toRepositoryText.getText().trim());
                    }
                    ISVNRemoteResource remoteResource = repository.getRemoteFile(url);
                    HistoryDialog dialog = new HistoryDialog(getShell(), remoteResource);
                    if (dialog.open() != HistoryDialog.CANCEL) {
                        ILogEntry[] selectedEntries = dialog.getSelectedLogEntries();
                        if (selectedEntries.length > 0) {
                            if (e.getSource() == fromRevisionBrowseButton) {
                                fromRevisionText.setText(Long.toString(selectedEntries[selectedEntries.length - 1].getRevision().getNumber()));
                            } else {
                                toRevisionText.setText(Long.toString(selectedEntries[selectedEntries.length - 1].getRevision().getNumber()));
                            }
                        }
                    }
                } catch (Exception exc) {
                    MessageDialog.openError(getShell(), Policy.bind("ComparePropertiesDialog.1"), // $NON-NLS-1$
                    exc.getMessage());
                }
            }
            setEnablement();
            okButton.setEnabled(canFinish());
        }
    };
    fromWorkingCopyButton.addSelectionListener(selectionListener);
    fromWorkingCopyBrowseButton.addSelectionListener(selectionListener);
    fromRepositoryButton.addSelectionListener(selectionListener);
    fromRepositoryBrowseButton.addSelectionListener(selectionListener);
    fromHeadButton.addSelectionListener(selectionListener);
    fromRevisionBrowseButton.addSelectionListener(selectionListener);
    toWorkingCopyButton.addSelectionListener(selectionListener);
    toWorkingCopyBrowseButton.addSelectionListener(selectionListener);
    toRepositoryButton.addSelectionListener(selectionListener);
    toRepositoryBrowseButton.addSelectionListener(selectionListener);
    toHeadButton.addSelectionListener(selectionListener);
    toRevisionBrowseButton.addSelectionListener(selectionListener);
    return composite;
}
Also used : PropertyCompareLocalResourceNode(org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode) Group(org.eclipse.swt.widgets.Group) WorkbenchLabelProvider(org.eclipse.ui.model.WorkbenchLabelProvider) ModifyListener(org.eclipse.swt.events.ModifyListener) ILogEntry(org.tigris.subversion.subclipse.core.history.ILogEntry) Label(org.eclipse.swt.widgets.Label) PropertyCompareRemoteResourceNode(org.tigris.subversion.subclipse.ui.compare.PropertyCompareRemoteResourceNode) GridLayout(org.eclipse.swt.layout.GridLayout) ModifyEvent(org.eclipse.swt.events.ModifyEvent) Button(org.eclipse.swt.widgets.Button) BaseWorkbenchContentProvider(org.eclipse.ui.model.BaseWorkbenchContentProvider) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Composite(org.eclipse.swt.widgets.Composite) SVNUrl(org.tigris.subversion.svnclientadapter.SVNUrl) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Text(org.eclipse.swt.widgets.Text) ISVNRemoteResource(org.tigris.subversion.subclipse.core.ISVNRemoteResource) ElementTreeSelectionDialog(org.eclipse.ui.dialogs.ElementTreeSelectionDialog) GridData(org.eclipse.swt.layout.GridData) IResource(org.eclipse.core.resources.IResource) SelectionListener(org.eclipse.swt.events.SelectionListener)

Aggregations

PropertyCompareLocalResourceNode (org.tigris.subversion.subclipse.ui.compare.PropertyCompareLocalResourceNode)3 PropertyCompareRemoteResourceNode (org.tigris.subversion.subclipse.ui.compare.PropertyCompareRemoteResourceNode)3 IResource (org.eclipse.core.resources.IResource)2 ISVNRemoteResource (org.tigris.subversion.subclipse.core.ISVNRemoteResource)2 SVNUrl (org.tigris.subversion.svnclientadapter.SVNUrl)2 ModifyEvent (org.eclipse.swt.events.ModifyEvent)1 ModifyListener (org.eclipse.swt.events.ModifyListener)1 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)1 SelectionEvent (org.eclipse.swt.events.SelectionEvent)1 SelectionListener (org.eclipse.swt.events.SelectionListener)1 GridData (org.eclipse.swt.layout.GridData)1 GridLayout (org.eclipse.swt.layout.GridLayout)1 Button (org.eclipse.swt.widgets.Button)1 Composite (org.eclipse.swt.widgets.Composite)1 Group (org.eclipse.swt.widgets.Group)1 Label (org.eclipse.swt.widgets.Label)1 Text (org.eclipse.swt.widgets.Text)1 ElementTreeSelectionDialog (org.eclipse.ui.dialogs.ElementTreeSelectionDialog)1 BaseWorkbenchContentProvider (org.eclipse.ui.model.BaseWorkbenchContentProvider)1 WorkbenchLabelProvider (org.eclipse.ui.model.WorkbenchLabelProvider)1