Search in sources :

Example 1 with ResourceSelectionDialog

use of org.eclipse.ui.dialogs.ResourceSelectionDialog in project tm4e by eclipse.

the class SelectLanguageConfigurationWizardPage method createBody.

protected void createBody(Composite ancestor) {
    Composite parent = new Composite(ancestor, SWT.NONE);
    parent.setFont(parent.getFont());
    parent.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    parent.setLayout(new GridLayout(2, false));
    fileText = createText(parent, LanguageConfigurationMessages.SelectLanguageConfigurationWizardPage_file);
    fileText.addListener(SWT.Modify, this);
    Composite buttons = new Composite(parent, SWT.NONE);
    buttons.setLayout(new GridLayout(2, false));
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 2;
    gd.horizontalAlignment = SWT.RIGHT;
    buttons.setLayoutData(gd);
    infoWidget = new LanguageConfigurationInfoWidget(parent, SWT.NONE);
    GridData data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 2;
    infoWidget.setLayoutData(data);
    browseFileSystemButton = new Button(buttons, SWT.NONE);
    browseFileSystemButton.setText(LanguageConfigurationMessages.SelectLanguageConfigurationWizardPage_browse_fileSystem);
    browseFileSystemButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(parent.getShell());
            dialog.setFilterExtensions(TEXTMATE_EXTENSIONS);
            dialog.setFilterPath(fileText.getText());
            String result = dialog.open();
            if (result != null && result.length() > 0) {
                fileText.setText(result);
            }
        }
    });
    browseWorkspaceButton = new Button(buttons, SWT.NONE);
    browseWorkspaceButton.setText(LanguageConfigurationMessages.SelectLanguageConfigurationWizardPage_browse_workspace);
    browseWorkspaceButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            ResourceSelectionDialog dialog = new ResourceSelectionDialog(browseWorkspaceButton.getShell(), ResourcesPlugin.getWorkspace().getRoot(), LanguageConfigurationMessages.SelectLanguageConfigurationWizardPage_workspace_description);
            dialog.setTitle(LanguageConfigurationMessages.SelectLanguageConfigurationWizardPage_workspace_title);
            int returnCode = dialog.open();
            Object[] results = dialog.getResult();
            if (returnCode == 0 && results.length > 0) {
                fileText.setText(((IResource) results[0]).getFullPath().makeRelative().toString());
            }
        }
    });
    contentTypeText = createText(parent, LanguageConfigurationMessages.SelectLanguageConfigurationWizardPage_contentType);
    contentTypeText.addListener(SWT.Modify, this);
    createContentTypeTreeViewer(parent);
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) ResourceSelectionDialog(org.eclipse.ui.dialogs.ResourceSelectionDialog) Composite(org.eclipse.swt.widgets.Composite) Button(org.eclipse.swt.widgets.Button) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) LanguageConfigurationInfoWidget(org.eclipse.tm4e.languageconfiguration.internal.widgets.LanguageConfigurationInfoWidget) FileDialog(org.eclipse.swt.widgets.FileDialog) IResource(org.eclipse.core.resources.IResource)

Example 2 with ResourceSelectionDialog

use of org.eclipse.ui.dialogs.ResourceSelectionDialog in project subclipse by subclipse.

the class ResolveTreeConflictWizardMainPage method createControl.

public void createControl(Composite parent) {
    ResolveTreeConflictWizard wizard = (ResolveTreeConflictWizard) getWizard();
    treeConflict = wizard.getTreeConflict();
    Composite outerContainer = new Composite(parent, SWT.NONE);
    outerContainer.setLayout(new GridLayout());
    outerContainer.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
    Group detailsGroup = new Group(outerContainer, SWT.NONE);
    detailsGroup.setText(Messages.ResolveTreeConflictWizardMainPage_conflictDescription);
    GridLayout detailsLayout = new GridLayout();
    detailsLayout.numColumns = 2;
    detailsGroup.setLayout(detailsLayout);
    detailsGroup.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
    Label label = new Label(detailsGroup, SWT.NONE);
    label.setText(treeConflict.getDescription());
    GridData gd = new GridData();
    gd.horizontalSpan = 2;
    label.setLayoutData(gd);
    label = new Label(detailsGroup, SWT.NONE);
    gd = new GridData();
    gd.horizontalSpan = 2;
    label.setLayoutData(gd);
    label = new Label(detailsGroup, SWT.NONE);
    label.setText(Messages.ResolveTreeConflictWizardMainPage_sourceLeft);
    label = new Label(detailsGroup, SWT.WRAP);
    if (treeConflict.getConflictDescriptor().getSrcLeftVersion() != null) {
        label.setText(treeConflict.getConflictDescriptor().getSrcLeftVersion().toString());
    }
    gd = new GridData();
    gd.widthHint = 500;
    label.setLayoutData(gd);
    label = new Label(detailsGroup, SWT.NONE);
    gd = new GridData();
    gd.horizontalSpan = 2;
    label.setLayoutData(gd);
    label = new Label(detailsGroup, SWT.NONE);
    label.setText(Messages.ResolveTreeConflictWizardMainPage_sourceRight);
    label = new Label(detailsGroup, SWT.WRAP);
    if (treeConflict.getConflictDescriptor().getSrcRightVersion() != null) {
        label.setText(treeConflict.getConflictDescriptor().getSrcRightVersion().toString());
    }
    gd = new GridData();
    gd.widthHint = 500;
    label.setLayoutData(gd);
    Group resolutionGroup = new Group(outerContainer, SWT.NONE);
    resolutionGroup.setText(Messages.ResolveTreeConflictWizardMainPage_resolutionSteps);
    GridLayout resolutionLayout = new GridLayout();
    resolutionLayout.numColumns = 1;
    resolutionGroup.setLayout(resolutionLayout);
    resolutionGroup.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
    SVNConflictDescriptor conflictDescriptor = treeConflict.getConflictDescriptor();
    int reason = conflictDescriptor.getReason();
    int action = conflictDescriptor.getAction();
    int operation = conflictDescriptor.getOperation();
    if ((reason == SVNConflictDescriptor.Reason.deleted || reason == SVNConflictDescriptor.Reason.missing) && action == SVNConflictDescriptor.Action.edit) {
        if (operation == SVNConflictDescriptor.Operation._merge)
            remoteCopiedTo = getRemoteCopiedTo(true);
        else
            copiedTo = getCopiedTo(false);
        getRemoteResource(wizard, treeConflict);
        compareButton = new Button(resolutionGroup, SWT.CHECK);
        compareButton.setText(Messages.ResolveTreeConflictWizardMainPage_compare + conflictDescriptor.getSrcRightVersion().getPathInRepos() + Messages.ResolveTreeConflictWizardMainPage_compareTo);
        compareLabel = new Label(resolutionGroup, SWT.NONE);
        compareLabel.setText(Messages.ResolveTreeConflictWizardMainPage_compareEditorInformation);
        compareLabel.setVisible(false);
        mergeFromRepositoryButton = new Button(resolutionGroup, SWT.CHECK);
        mergeFromRepositoryButton.setText(Messages.ResolveTreeConflictWizardMainPage_merge + conflictDescriptor.getSrcRightVersion().getPathInRepos() + Messages.ResolveTreeConflictWizardMainPage_intoTarget);
        Group mergeTargetGroup = new Group(resolutionGroup, SWT.NONE);
        mergeTargetGroup.setText(Messages.ResolveTreeConflictWizardMainPage_compareMergeTarget);
        GridLayout mergeTargetLayout = new GridLayout();
        mergeTargetLayout.numColumns = 2;
        mergeTargetGroup.setLayout(mergeTargetLayout);
        mergeTargetGroup.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
        mergeTargetText = new Text(mergeTargetGroup, SWT.BORDER | SWT.READ_ONLY);
        gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
        mergeTargetText.setLayoutData(gd);
        if (copiedTo != null) {
            mergeTarget = File2Resource.getResource(copiedTo.getFile());
            svnCompareResource = SVNWorkspaceRoot.getSVNResourceFor(mergeTarget);
            mergeTargetText.setText(mergeTarget.getFullPath().toString());
        } else if (remoteCopiedTo != null) {
            mergeTarget = File2Resource.getResource(remoteCopiedTo.getFile());
            svnCompareResource = SVNWorkspaceRoot.getSVNResourceFor(mergeTarget);
            mergeTargetText.setText(mergeTarget.getFullPath().toString());
        } else {
            setPageComplete(false);
        }
        Button selectMergeTargetButton = new Button(mergeTargetGroup, SWT.PUSH);
        selectMergeTargetButton.setText(Messages.ResolveTreeConflictWizardMainPage_browse);
        selectMergeTargetButton.addSelectionListener(new SelectionAdapter() {

            public void widgetSelected(SelectionEvent evt) {
                String title;
                if (mergeFromRepositoryButton == null && compareButton != null)
                    title = Messages.ResolveTreeConflictWizardMainPage_selectCompareTarget;
                else if (compareButton == null && mergeFromRepositoryButton != null)
                    title = Messages.ResolveTreeConflictWizardMainPage_selectMergeTarget;
                else
                    title = Messages.ResolveTreeConflictWizardMainPage_selectCompareMergeTarget;
                SelectionDialog dialog;
                boolean container = isContainer();
                if (container)
                    dialog = new ContainerSelectionDialog(getShell(), treeConflict.getResource().getProject(), false, title);
                else
                    dialog = new ResourceSelectionDialog(getShell(), treeConflict.getResource().getProject(), title);
                if (dialog.open() == SelectionDialog.OK) {
                    Object[] selectedResources = dialog.getResult();
                    IResource selectedResource = null;
                    if (selectedResources != null && selectedResources.length > 0) {
                        if (selectedResources[0] instanceof IResource)
                            selectedResource = (IResource) selectedResources[0];
                        if (selectedResources[0] instanceof Path) {
                            Path path = (Path) selectedResources[0];
                            selectedResource = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
                        }
                    }
                    if (selectedResource != null) {
                        mergeTarget = selectedResource;
                        svnCompareResource = SVNWorkspaceRoot.getSVNResourceFor(mergeTarget);
                        mergeTargetText.setText(mergeTarget.getFullPath().toString());
                        setPageComplete(true);
                    }
                }
            }
        });
        mergeFromRepositoryButton.setSelection(true);
        SelectionListener choiceListener = new SelectionAdapter() {

            public void widgetSelected(SelectionEvent evt) {
                if (compareButton.getSelection() || (mergeFromRepositoryButton != null && mergeFromRepositoryButton.getSelection()))
                    setPageComplete((mergeTargetText != null && mergeTargetText.getText().length() > 0) || (mergeTargetCombo != null && mergeTargetCombo.getText().length() > 0));
                else
                    setPageComplete(true);
                if (compareButton.getSelection()) {
                    compareLabel.setVisible(true);
                    mergeFromRepositoryButton.setEnabled(false);
                    markResolvedButton.setEnabled(false);
                } else {
                    compareLabel.setVisible(false);
                    mergeFromRepositoryButton.setEnabled(true);
                    markResolvedButton.setEnabled(true);
                }
            }
        };
        compareButton.addSelectionListener(choiceListener);
        if (mergeFromRepositoryButton != null)
            mergeFromRepositoryButton.addSelectionListener(choiceListener);
    }
    if (reason == SVNConflictDescriptor.Reason.edited && action == SVNConflictDescriptor.Action.delete) {
        compareButton = new Button(resolutionGroup, SWT.CHECK);
        String name;
        boolean container = isContainer();
        if (container)
            name = treeConflict.getResource().getFullPath().toString();
        else
            name = treeConflict.getResource().getName();
        compareButton.setText(Messages.ResolveTreeConflictWizardMainPage_compare + name + Messages.ResolveTreeConflictWizardMainPage_to);
        compareButton.setSelection(false);
        if (operation != SVNConflictDescriptor.Operation._switch) {
            compareLabel = new Label(resolutionGroup, SWT.NONE);
            compareLabel.setText(Messages.ResolveTreeConflictWizardMainPage_compareEditorInformation);
            compareLabel.setVisible(false);
        }
        compareResource2 = treeConflict.getResource();
        if (operation == SVNConflictDescriptor.Operation._merge) {
            try {
                adds = wizard.getAdds();
            } catch (SVNException e) {
                SVNUIPlugin.log(IStatus.ERROR, e.getMessage(), e);
            }
            mergeFromRepositoryButton = new Button(resolutionGroup, SWT.CHECK);
            if (container)
                name = treeConflict.getResource().getFullPath().toString();
            else
                name = treeConflict.getResource().getName();
            mergeFromRepositoryButton.setText(Messages.ResolveTreeConflictWizardMainPage_merge + name + Messages.ResolveTreeConflictWizardMainPage_into);
            mergeFromRepositoryButton.setSelection(true);
            mergeFromUrl = wizard.getSvnResource().getUrl().toString();
        } else {
            remoteCopiedTo = getRemoteCopiedTo(false);
        }
        Composite mergeTargetGroup = new Composite(resolutionGroup, SWT.NONE);
        GridLayout mergeTargetLayout = new GridLayout();
        mergeTargetLayout.numColumns = 2;
        mergeTargetGroup.setLayout(mergeTargetLayout);
        mergeTargetGroup.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
        if (adds == null || adds.length == 0) {
            mergeTargetText = new Text(mergeTargetGroup, SWT.BORDER | SWT.READ_ONLY);
            gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
            mergeTargetText.setLayoutData(gd);
        } else {
            mergeTargetCombo = new Combo(mergeTargetGroup, SWT.BORDER | SWT.READ_ONLY);
            gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
            mergeTargetCombo.setLayoutData(gd);
            mergeTargetCombo.addSelectionListener(new SelectionAdapter() {

                public void widgetSelected(SelectionEvent evt) {
                    ISVNStatus selectedAdd = adds[mergeTargetCombo.getSelectionIndex()];
                    mergeTarget = File2Resource.getResource(selectedAdd.getFile());
                    compareResource1 = mergeTarget;
                }
            });
        }
        if (adds != null && adds.length > 0) {
            for (int i = 0; i < adds.length; i++) {
                IResource mergeTargetResource = File2Resource.getResource(adds[i].getFile());
                mergeTargetCombo.add(mergeTargetResource.getFullPath().toString());
            }
            mergeTargetCombo.select(0);
            mergeTarget = File2Resource.getResource(adds[0].getFile());
            compareResource1 = mergeTarget;
        } else if (remoteCopiedTo != null) {
            mergeTarget = File2Resource.getResource(remoteCopiedTo.getFile());
            mergeTargetText.setText(mergeTarget.getFullPath().toString());
            compareResource1 = mergeTarget;
        }
        // else setPageComplete(false);
        Button selectMergeTargetButton = new Button(mergeTargetGroup, SWT.PUSH);
        selectMergeTargetButton.setText(Messages.ResolveTreeConflictWizardMainPage_browse);
        selectMergeTargetButton.addSelectionListener(new SelectionAdapter() {

            public void widgetSelected(SelectionEvent evt) {
                String title;
                if (mergeFromRepositoryButton == null && compareButton != null)
                    title = Messages.ResolveTreeConflictWizardMainPage_selectCompareTarget;
                else if (compareButton == null && mergeFromRepositoryButton != null)
                    title = Messages.ResolveTreeConflictWizardMainPage_selectMergeTarget;
                else
                    title = Messages.ResolveTreeConflictWizardMainPage_selectCompareMergeTarget;
                SelectionDialog dialog;
                boolean container = isContainer();
                if (container)
                    dialog = new ContainerSelectionDialog(getShell(), treeConflict.getResource().getProject(), false, title);
                else
                    dialog = new ResourceSelectionDialog(getShell(), treeConflict.getResource().getProject(), title);
                if (dialog.open() == SelectionDialog.OK) {
                    Object[] selectedResources = dialog.getResult();
                    IResource selectedResource = null;
                    if (selectedResources != null && selectedResources.length > 0) {
                        if (selectedResources[0] instanceof IResource)
                            selectedResource = (IResource) selectedResources[0];
                        if (selectedResources[0] instanceof Path) {
                            Path path = (Path) selectedResources[0];
                            selectedResource = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
                        }
                    }
                    if (selectedResource != null) {
                        mergeTarget = selectedResource;
                        compareResource1 = mergeTarget;
                        if (mergeTargetText == null)
                            mergeTargetCombo.setText(mergeTarget.getFullPath().toString());
                        else
                            mergeTargetText.setText(mergeTarget.getFullPath().toString());
                        setPageComplete(true);
                    }
                }
            }
        });
        if (operation == SVNConflictDescriptor.Operation._switch) {
            compareLabel = new Label(resolutionGroup, SWT.NONE);
            compareLabel.setText(Messages.ResolveTreeConflictWizardMainPage_compareEditorInformation);
            compareLabel.setVisible(false);
        }
        if (operation != SVNConflictDescriptor.Operation._merge) {
            revertResource = treeConflict.getResource();
            if (wizard.isAdded()) {
                revertButton = new Button(resolutionGroup, SWT.CHECK);
                if (revertResource instanceof IContainer)
                    name = revertResource.getFullPath().toString();
                else
                    name = revertResource.getName();
                revertButton.setText(Messages.ResolveTreeConflictWizardMainPage_revert + name + Messages.ResolveTreeConflictWizardMainPage_conflictWillBeResolved);
                revertButton.setSelection(true);
            }
            deleteResource1 = treeConflict.getResource();
            deleteButton1 = new Button(resolutionGroup, SWT.CHECK);
            if (deleteResource1 instanceof IContainer)
                name = deleteResource1.getFullPath().toString();
            else
                name = deleteResource1.getName();
            if (wizard.isAdded())
                deleteButton1.setText(Messages.ResolveTreeConflictWizardMainPage_remove + name + Messages.ResolveTreeConflictWizardMainPage_fromWorkingCopy);
            else
                deleteButton1.setText(Messages.ResolveTreeConflictWizardMainPage_delete + name);
            deleteButton1.setSelection(true);
            if (wizard.isAdded())
                markResolvedEnabled = false;
            SelectionListener choiceListener = new SelectionAdapter() {

                public void widgetSelected(SelectionEvent evt) {
                    if (compareButton.getSelection() || (mergeFromRepositoryButton != null && mergeFromRepositoryButton.getSelection()))
                        setPageComplete((mergeTargetText != null && mergeTargetText.getText().length() > 0) || (mergeTargetCombo != null && mergeTargetCombo.getText().length() > 0));
                    else
                        setPageComplete(true);
                    if (compareButton.getSelection()) {
                        compareLabel.setVisible(true);
                        if (revertButton != null)
                            revertButton.setEnabled(false);
                        deleteButton1.setEnabled(false);
                        markResolvedButton.setEnabled(false);
                    } else {
                        compareLabel.setVisible(false);
                        if (revertButton != null) {
                            revertButton.setEnabled(true);
                            deleteButton1.setEnabled(true);
                            markResolvedButton.setEnabled(true);
                            if (revertButton.getSelection()) {
                                deleteButton1.setEnabled(true);
                                markResolvedButton.setSelection(false);
                                markResolvedButton.setEnabled(false);
                            } else {
                                deleteButton1.setSelection(false);
                                deleteButton1.setEnabled(false);
                                markResolvedButton.setEnabled(true);
                            }
                        }
                    }
                }
            };
            compareButton.addSelectionListener(choiceListener);
            if (mergeFromRepositoryButton != null)
                mergeFromRepositoryButton.addSelectionListener(choiceListener);
            if (revertButton != null)
                revertButton.addSelectionListener(choiceListener);
            deleteButton1.addSelectionListener(choiceListener);
        }
        if (operation == SVNConflictDescriptor.Operation._merge) {
            if (treeConflict.getResource().exists()) {
                deleteResource1 = treeConflict.getResource();
                deleteButton1 = new Button(resolutionGroup, SWT.CHECK);
                if (deleteResource1 instanceof IContainer)
                    name = deleteResource1.getFullPath().toString();
                else
                    name = deleteResource1.getName();
                deleteButton1.setText(Messages.ResolveTreeConflictWizardMainPage_delete + name);
                deleteButton1.setSelection(true);
                markResolvedEnabled = false;
                if (markResolvedButton != null) {
                    markResolvedButton.setSelection(true);
                    markResolvedButton.setEnabled(false);
                }
            }
            SelectionListener choiceListener = new SelectionAdapter() {

                public void widgetSelected(SelectionEvent evt) {
                    if (!compareButton.getSelection() && !mergeFromRepositoryButton.getSelection())
                        setPageComplete(true);
                    else
                        setPageComplete((mergeTargetText != null && mergeTargetText.getText().length() > 0) || (mergeTargetCombo != null && mergeTargetCombo.getText().length() > 0));
                    if (compareButton.getSelection()) {
                        compareLabel.setVisible(true);
                        if (mergeFromRepositoryButton != null)
                            mergeFromRepositoryButton.setEnabled(false);
                        if (deleteButton1 != null)
                            deleteButton1.setEnabled(false);
                        if (markResolvedButton != null)
                            markResolvedButton.setEnabled(false);
                    } else {
                        compareLabel.setVisible(false);
                        if (mergeFromRepositoryButton != null)
                            mergeFromRepositoryButton.setEnabled(true);
                        if (deleteButton1 != null) {
                            deleteButton1.setEnabled(true);
                            if (deleteButton1.getSelection() && markResolvedButton != null) {
                                markResolvedButton.setSelection(true);
                                markResolvedButton.setEnabled(false);
                            }
                        }
                        if (markResolvedButton != null) {
                            if (deleteButton1 == null || !deleteButton1.getSelection()) {
                                markResolvedButton.setEnabled(true);
                            }
                        }
                    }
                }
            };
            compareButton.addSelectionListener(choiceListener);
            mergeFromRepositoryButton.addSelectionListener(choiceListener);
            if (deleteButton1 != null) {
                deleteButton1.addSelectionListener(choiceListener);
            }
        }
    }
    if (reason == SVNConflictDescriptor.Reason.deleted && action == SVNConflictDescriptor.Action.delete && operation != SVNConflictDescriptor.Operation._merge) {
        copiedTo = getCopiedTo(true);
        remoteCopiedTo = getRemoteCopiedTo(true);
        theirs = null;
        mine = null;
        if (remoteCopiedTo != null)
            theirs = File2Resource.getResource(remoteCopiedTo.getFile());
        if (copiedTo != null)
            mine = File2Resource.getResource(copiedTo.getFile());
        if (mine != null && mine.exists() && theirs != null && theirs.exists()) {
            compareButton = new Button(resolutionGroup, SWT.CHECK);
            String name;
            if (mine instanceof IContainer)
                name = mine.getFullPath().toString();
            else
                name = mine.getName();
            compareButton.setText(Messages.ResolveTreeConflictWizardMainPage_compare + name + Messages.ResolveTreeConflictWizardMainPage_to2 + theirs.getName());
            compareButton.setSelection(false);
            compareResource1 = mine;
            compareResource2 = theirs;
            compareLabel = new Label(resolutionGroup, SWT.NONE);
            compareLabel.setText(Messages.ResolveTreeConflictWizardMainPage_compareEditorInformation);
            compareLabel.setVisible(false);
            compareButton.addSelectionListener(new SelectionAdapter() {

                public void widgetSelected(SelectionEvent evt) {
                    compareLabel.setVisible(compareButton.getSelection());
                    if (option1Button != null)
                        option1Button.setEnabled(!compareButton.getSelection());
                    if (option1Group != null)
                        option1Group.setEnabled(!compareButton.getSelection());
                    if (option2Button != null)
                        option2Button.setEnabled(!compareButton.getSelection());
                    if (option2Group != null)
                        option2Group.setEnabled(!compareButton.getSelection());
                    if (option3Button != null)
                        option3Button.setEnabled(!compareButton.getSelection());
                    markResolvedButton.setEnabled(!compareButton.getSelection());
                }
            });
        }
        if (mine != null && mine.exists()) {
            option1Button = new Button(resolutionGroup, SWT.RADIO);
            option1Button.setText(Messages.ResolveTreeConflictWizardMainPage_choose + mine.getFullPath());
            option1Button.setSelection(true);
            option1Group = new Group(resolutionGroup, SWT.NONE);
            String name;
            if (mine instanceof IContainer)
                name = mine.getFullPath().toString();
            else
                name = mine.getName();
            option1Group.setText(name);
            GridLayout option1Layout = new GridLayout();
            option1Layout.numColumns = 1;
            option1Group.setLayout(option1Layout);
            option1Group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
            if (theirs != null && theirs.exists()) {
                deleteResource1 = theirs;
                deleteButton1 = new Button(option1Group, SWT.CHECK);
                if (deleteResource1 instanceof IContainer)
                    name = deleteResource1.getFullPath().toString();
                else
                    name = deleteResource1.getName();
                deleteButton1.setText(Messages.ResolveTreeConflictWizardMainPage_delete + name);
                deleteButton1.setSelection(true);
            } else
                option1Group.setVisible(false);
        }
        if (theirs != null && theirs.exists()) {
            option2Button = new Button(resolutionGroup, SWT.RADIO);
            option2Button.setText(Messages.ResolveTreeConflictWizardMainPage_choose + theirs.getFullPath());
            if (option1Button == null)
                option2Button.setSelection(true);
            option2Group = new Group(resolutionGroup, SWT.NONE);
            String name;
            if (theirs instanceof IContainer)
                name = theirs.getFullPath().toString();
            else
                name = theirs.getName();
            option2Group.setText(name);
            GridLayout option2Layout = new GridLayout();
            option2Layout.numColumns = 1;
            option2Group.setLayout(option2Layout);
            option2Group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
            if (mine != null && mine.exists()) {
                ISVNLocalResource myResource = SVNWorkspaceRoot.getSVNResourceFor(mine);
                try {
                    if (myResource.getStatus().isAdded()) {
                        revertResource = mine;
                        revertButton = new Button(option2Group, SWT.CHECK);
                        if (mine instanceof IContainer)
                            name = mine.getFullPath().toString();
                        else
                            name = mine.getName();
                        revertButton.setText(Messages.ResolveTreeConflictWizardMainPage_revert + name);
                        revertButton.setSelection(true);
                    }
                } catch (SVNException e) {
                    SVNUIPlugin.log(IStatus.ERROR, e.getMessage(), e);
                }
                deleteResource2 = mine;
                deleteButton2 = new Button(option2Group, SWT.CHECK);
                if (deleteResource2 instanceof IContainer)
                    name = deleteResource2.getFullPath().toString();
                else
                    name = deleteResource2.getName();
                deleteButton2.setText(Messages.ResolveTreeConflictWizardMainPage_remove + name + Messages.ResolveTreeConflictWizardMainPage_fromWorkingCopy);
                deleteButton2.setSelection(true);
                option2Group.setEnabled(option1Button == null);
            } else
                option2Group.setVisible(false);
        }
        if (mine != null && mine.exists() && theirs != null && theirs.exists()) {
            option3Button = new Button(resolutionGroup, SWT.RADIO);
            option3Button.setText(Messages.ResolveTreeConflictWizardMainPage_chooseBoth);
        }
        SelectionListener optionListener = new SelectionAdapter() {

            public void widgetSelected(SelectionEvent evt) {
                if (option1Button != null && option1Button.getSelection()) {
                    option1Group.setEnabled(true);
                    if (option2Group != null)
                        option2Group.setEnabled(false);
                }
                if (option2Button != null && option2Button.getSelection()) {
                    option2Group.setEnabled(true);
                    if (option1Group != null)
                        option1Group.setEnabled(false);
                }
                if (option3Button.getSelection()) {
                    option1Group.setEnabled(false);
                    option2Group.setEnabled(false);
                }
                if (revertButton != null) {
                    if (revertButton.getSelection()) {
                        deleteButton2.setEnabled(true);
                    } else {
                        deleteButton2.setEnabled(false);
                        deleteButton2.setSelection(false);
                    }
                }
            }
        };
        if (option1Button != null)
            option1Button.addSelectionListener(optionListener);
        if (option2Button != null)
            option2Button.addSelectionListener(optionListener);
        if (option3Button != null)
            option3Button.addSelectionListener(optionListener);
        if (revertButton != null)
            revertButton.addSelectionListener(optionListener);
    }
    if (reason == SVNConflictDescriptor.Reason.deleted && action == SVNConflictDescriptor.Action.delete && operation == SVNConflictDescriptor.Operation._merge) {
        remoteCopiedTo = getRemoteCopiedTo(true);
        if (remoteCopiedTo != null)
            mine = File2Resource.getResource(remoteCopiedTo.getFile());
        if (mine != null && mine.exists()) {
            try {
                adds = wizard.getAdds();
            } catch (SVNException e) {
                SVNUIPlugin.log(IStatus.ERROR, e.getMessage(), e);
            }
            option1Button = new Button(resolutionGroup, SWT.RADIO);
            option1Button.setText(Messages.ResolveTreeConflictWizardMainPage_choose + mine.getFullPath());
            option1Button.setSelection(true);
            if (adds != null && adds.length > 0) {
                option1Group = new Group(resolutionGroup, SWT.NONE);
                String name;
                if (mine instanceof IContainer)
                    name = mine.getFullPath().toString();
                else
                    name = mine.getName();
                option1Group.setText(name);
                GridLayout option1Layout = new GridLayout();
                option1Layout.numColumns = 1;
                option1Group.setLayout(option1Layout);
                option1Group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
                if (adds.length == 1) {
                    revertResource = File2Resource.getResource(adds[0].getFile());
                    revertButton = new Button(option1Group, SWT.CHECK);
                    if (revertResource instanceof IContainer)
                        name = revertResource.getFullPath().toString();
                    else
                        name = revertResource.getName();
                    revertButton.setText(Messages.ResolveTreeConflictWizardMainPage_revert + name);
                    revertButton.setSelection(true);
                    deleteResource1 = File2Resource.getResource(adds[0].getFile());
                    deleteButton1 = new Button(option1Group, SWT.CHECK);
                    if (deleteResource1 instanceof IContainer)
                        name = deleteResource1.getFullPath().toString();
                    else
                        name = deleteResource1.getName();
                    deleteButton1.setText(Messages.ResolveTreeConflictWizardMainPage_remove + name + Messages.ResolveTreeConflictWizardMainPage_fromWorkingCopy);
                    deleteButton1.setSelection(true);
                } else {
                    revertButton = new Button(option1Group, SWT.CHECK);
                    revertButton.setText(Messages.ResolveTreeConflictWizardMainPage_revertSelected);
                    revertCombo = new Combo(option1Group, SWT.BORDER | SWT.READ_ONLY);
                    gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
                    revertCombo.setLayoutData(gd);
                    revertCombo.addSelectionListener(new SelectionAdapter() {

                        public void widgetSelected(SelectionEvent evt) {
                            ISVNStatus selectedRevert = adds[revertCombo.getSelectionIndex()];
                            revertResource = File2Resource.getResource(selectedRevert.getFile());
                            deleteResource1 = revertResource;
                        }
                    });
                    for (int i = 0; i < adds.length; i++) {
                        IResource revertResource = File2Resource.getResource(adds[i].getFile());
                        revertCombo.add(revertResource.getFullPath().toString());
                    }
                    revertCombo.select(0);
                    revertResource = File2Resource.getResource(adds[0].getFile());
                    deleteResource1 = revertResource;
                    deleteButton1 = new Button(option1Group, SWT.CHECK);
                    deleteButton1.setText(Messages.ResolveTreeConflictWizardMainPage_removeSelected);
                    deleteButton1.setEnabled(false);
                    setPageComplete(false);
                }
            }
            option2Button = new Button(resolutionGroup, SWT.RADIO);
            option2Group = new Group(resolutionGroup, SWT.NONE);
            GridLayout option2Layout = new GridLayout();
            option2Layout.numColumns = 1;
            option2Group.setLayout(option2Layout);
            option2Group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
            if (adds == null || adds.length != 1) {
                option2Button.setText(Messages.ResolveTreeConflictWizardMainPage_chooseIncoming);
                option2Group.setText(Messages.ResolveTreeConflictWizardMainPage_incoming);
            } else {
                IResource addResource = File2Resource.getResource(adds[0].getFile());
                option2Button.setText(Messages.ResolveTreeConflictWizardMainPage_choose + addResource.getFullPath());
                String name;
                if (addResource instanceof IContainer)
                    name = addResource.getFullPath().toString();
                else
                    name = addResource.getName();
                option2Group.setText(name);
            }
            deleteResource2 = mine;
            deleteButton2 = new Button(option2Group, SWT.CHECK);
            String name;
            if (deleteResource2 instanceof IContainer)
                name = deleteResource2.getFullPath().toString();
            else
                name = deleteResource2.getName();
            deleteButton2.setText(Messages.ResolveTreeConflictWizardMainPage_delete + name);
            deleteButton2.setSelection(true);
            option2Group.setEnabled(false);
            option3Button = new Button(resolutionGroup, SWT.RADIO);
            option3Button.setText(Messages.ResolveTreeConflictWizardMainPage_chooseBoth);
            SelectionListener choiceListener = new SelectionAdapter() {

                public void widgetSelected(SelectionEvent evt) {
                    if (option1Group != null)
                        option1Group.setEnabled(option1Button.getSelection());
                    if (option2Group != null)
                        option2Group.setEnabled(option2Button.getSelection());
                    if (revertButton != null && deleteButton1 != null) {
                        if (revertButton.getSelection()) {
                            deleteButton1.setEnabled(true);
                        } else {
                            deleteButton1.setEnabled(false);
                            deleteButton1.setSelection(false);
                        }
                    }
                    if (option1Button.getSelection()) {
                        setPageComplete(revertButton == null || revertButton.getSelection());
                    }
                    if (option2Button.getSelection()) {
                        setPageComplete(deleteButton2 == null || deleteButton2.getSelection());
                    }
                    if (option3Button.getSelection())
                        setPageComplete(true);
                }
            };
            option1Button.addSelectionListener(choiceListener);
            option2Button.addSelectionListener(choiceListener);
            option3Button.addSelectionListener(choiceListener);
            if (revertButton != null)
                revertButton.addSelectionListener(choiceListener);
            if (deleteButton2 != null)
                deleteButton2.addSelectionListener(choiceListener);
            if (revertButton != null)
                revertButton.addSelectionListener(choiceListener);
        }
    }
    if ((reason == SVNConflictDescriptor.Reason.added && action == SVNConflictDescriptor.Action.add && (operation == SVNConflictDescriptor.Operation._update || operation == SVNConflictDescriptor.Operation._merge)) || (reason == SVNConflictDescriptor.Reason.obstructed && action == SVNConflictDescriptor.Action.add && operation == SVNConflictDescriptor.Operation._merge)) {
        String name;
        boolean container = isContainer();
        if (container)
            name = treeConflict.getResource().getFullPath().toString();
        else
            name = treeConflict.getResource().getName();
        replaceButton = new Button(resolutionGroup, SWT.CHECK);
        replaceButton.setText(Messages.ResolveTreeConflictWizardMainPage_0 + name + Messages.ResolveTreeConflictWizardMainPage_1 + treeConflict.getConflictDescriptor().getSrcRightVersion().getPathInRepos() + Messages.ResolveTreeConflictWizardMainPage_inRepository);
        compareButton = new Button(resolutionGroup, SWT.CHECK);
        compareButton.setText(Messages.ResolveTreeConflictWizardMainPage_compare + name + Messages.ResolveTreeConflictWizardMainPage_to2 + treeConflict.getConflictDescriptor().getSrcRightVersion().getPathInRepos() + Messages.ResolveTreeConflictWizardMainPage_inRepository);
        compareButton.setSelection(false);
        compareResource1 = treeConflict.getResource();
        getRemoteResource(wizard, treeConflict);
        compareLabel = new Label(resolutionGroup, SWT.NONE);
        compareLabel.setText(Messages.ResolveTreeConflictWizardMainPage_compareEditorInformation);
        compareLabel.setVisible(false);
        SelectionListener choiceListener = new SelectionAdapter() {

            public void widgetSelected(SelectionEvent evt) {
                if (evt.getSource() == replaceButton) {
                    if (replaceButton.getSelection()) {
                        markResolvedButton.setEnabled(false);
                        markResolvedButton.setSelection(true);
                        compareButton.setVisible(false);
                        compareButton.setSelection(false);
                        compareLabel.setVisible(false);
                    } else {
                        compareButton.setVisible(true);
                        compareLabel.setVisible(compareButton.getSelection());
                        markResolvedButton.setEnabled(!compareButton.getSelection());
                    }
                } else if (evt.getSource() == compareButton) {
                    if (compareButton.getSelection()) {
                        compareLabel.setVisible(true);
                        markResolvedButton.setEnabled(false);
                    } else {
                        compareLabel.setVisible(false);
                        markResolvedButton.setEnabled(true);
                    }
                }
            }
        };
        replaceButton.addSelectionListener(choiceListener);
        compareButton.addSelectionListener(choiceListener);
    }
    if (conflictDescriptor.getSrcLeftVersion() == null) {
        revertButton = new Button(resolutionGroup, SWT.CHECK);
        revertResource = treeConflict.getResource();
        String name;
        if (revertResource instanceof IContainer)
            name = revertResource.getFullPath().toString();
        else
            name = revertResource.getName();
        revertButton.setText(Messages.ResolveTreeConflictWizardMainPage_revert + name + Messages.ResolveTreeConflictWizardMainPage_conflictWillBeResolved);
        revertButton.addSelectionListener(new SelectionAdapter() {

            public void widgetSelected(SelectionEvent e) {
                if (revertButton.getSelection()) {
                    markResolvedButton.setSelection(false);
                }
                markResolvedButton.setEnabled(!revertButton.getSelection());
            }
        });
    }
    markResolvedButton = new Button(resolutionGroup, SWT.CHECK);
    markResolvedButton.setText(Messages.ResolveTreeConflictWizardMainPage_markResolved);
    markResolvedButton.setSelection(true);
    if (markResolvedEnabled) {
        markResolvedButton.setSelection(true);
    } else {
        markResolvedButton.setEnabled(false);
    }
    setMessage(Messages.ResolveTreeConflictWizardMainPage_message);
    setControl(outerContainer);
}
Also used : Group(org.eclipse.swt.widgets.Group) Label(org.eclipse.swt.widgets.Label) Combo(org.eclipse.swt.widgets.Combo) SVNException(org.tigris.subversion.subclipse.core.SVNException) SelectionDialog(org.eclipse.ui.dialogs.SelectionDialog) ContainerSelectionDialog(org.eclipse.ui.dialogs.ContainerSelectionDialog) ResourceSelectionDialog(org.eclipse.ui.dialogs.ResourceSelectionDialog) ISVNLocalResource(org.tigris.subversion.subclipse.core.ISVNLocalResource) GridLayout(org.eclipse.swt.layout.GridLayout) ResourceSelectionDialog(org.eclipse.ui.dialogs.ResourceSelectionDialog) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) IContainer(org.eclipse.core.resources.IContainer) Path(org.eclipse.core.runtime.Path) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Text(org.eclipse.swt.widgets.Text) SVNConflictDescriptor(org.tigris.subversion.svnclientadapter.SVNConflictDescriptor) ISVNStatus(org.tigris.subversion.svnclientadapter.ISVNStatus) ContainerSelectionDialog(org.eclipse.ui.dialogs.ContainerSelectionDialog) GridData(org.eclipse.swt.layout.GridData) IResource(org.eclipse.core.resources.IResource) SelectionListener(org.eclipse.swt.events.SelectionListener)

Example 3 with ResourceSelectionDialog

use of org.eclipse.ui.dialogs.ResourceSelectionDialog in project Pydev by fabioz.

the class PyProjectProperties method createTabProjectSourceFolders.

private void createTabProjectSourceFolders(String sourcePath) {
    TabItem tabItem = new TabItem(tabFolder, SWT.None);
    tabItem.setText("Source Folders");
    tabItem.setImage(ImageCache.asImage(SharedUiPlugin.getImageCache().get(UIConstants.SOURCE_FOLDER_ICON)));
    Composite topComp = new Composite(tabFolder, SWT.None);
    topComp.setLayout(new GridLayout(1, false));
    GridData gd;
    GridData data;
    Label l2 = new Label(topComp, SWT.None);
    l2.setText("Project Source Folders (and zips/jars/eggs).\n\n" + "When using variables, the final paths resolved must be workspace-relative.");
    gd = new GridData();
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = false;
    l2.setLayoutData(gd);
    treeSourceFolders = new TreeWithAddRemove(topComp, 0, PythonNature.getStrAsStrItems(sourcePath)) {

        @Override
        protected String getButtonLabel(int i) {
            switch(i) {
                case 0:
                    return "Add source folder";
                case 1:
                    return "Add zip/jar/egg";
                case 2:
                    return "Add based on variable";
                default:
                    throw new AssertionError("Unexpected: " + i);
            }
        }

        @Override
        protected void handleAddButtonSelected(int nButton) {
            if (nButton == 0) {
                addItemWithDialog(new ProjectFolderSelectionDialog(getShell(), project, true, "Choose source folders to add to PYTHONPATH"), project);
            } else if (nButton == 1) {
                addItemWithDialog(new ResourceSelectionDialog(getShell(), project, "Choose zip/jar/egg to add to PYTHONPATH"), project);
            } else if (nButton == 2) {
                addItemWithDialog(new InputDialog(getShell(), "Add path to resolve with variable", "Add path to resolve with variable in the format: ${VARIABLE}", "", null));
            } else {
                throw new AssertionError("Unexpected");
            }
        }

        @Override
        protected String getImageConstant() {
            return UIConstants.SOURCE_FOLDER_ICON;
        }
    };
    data = new GridData(GridData.FILL_BOTH);
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    treeSourceFolders.setLayoutData(data);
    tabItem.setControl(topComp);
}
Also used : InputDialog(org.eclipse.jface.dialogs.InputDialog) Composite(org.eclipse.swt.widgets.Composite) Label(org.eclipse.swt.widgets.Label) TabItem(org.eclipse.swt.widgets.TabItem) GridLayout(org.eclipse.swt.layout.GridLayout) ResourceSelectionDialog(org.eclipse.ui.dialogs.ResourceSelectionDialog) TreeWithAddRemove(org.python.pydev.ui.editors.TreeWithAddRemove) ProjectFolderSelectionDialog(org.python.pydev.ui.dialogs.ProjectFolderSelectionDialog) GridData(org.eclipse.swt.layout.GridData)

Example 4 with ResourceSelectionDialog

use of org.eclipse.ui.dialogs.ResourceSelectionDialog in project uima-uimaj by apache.

the class INSDComponentPage method addButton.

/**
 * Creates a new button
 * <p>
 * The <code>Dialog</code> implementation of this framework method creates a standard push button,
 * registers for selection events including button presses and registers default buttons with its
 * shell. The button id is stored as the buttons client data. Note that the parent's layout is
 * assumed to be a GridLayout and the number of columns in this layout is incremented. Subclasses
 * may override.
 * </p>
 *
 * @param parent
 *          the parent composite
 * @param label
 *          the label from the button
 * @param defaultButton
 *          <code>true</code> if the button is to be the default button, and <code>false</code>
 *          otherwise
 * @param text
 *          the text
 * @return the button
 */
protected Button addButton(Composite parent, String label, boolean defaultButton, final Text text) {
    Button button = new Button(parent, SWT.PUSH);
    button.setText(label);
    if (defaultButton) {
        Shell shell = parent.getShell();
        if (shell != null) {
            shell.setDefaultButton(button);
        }
        button.setFocus();
    }
    button.setFont(parent.getFont());
    SelectionListener listener = new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            ResourceSelectionDialog dialog = new ResourceSelectionDialog(getShell(), currentContainer, "Selection Dialog");
            dialog.setTitle("Selection Dialog");
            dialog.setMessage("Please select a file:");
            dialog.open();
            Object[] result = dialog.getResult();
            if (result[0] != null) {
                IResource res = (IResource) result[0];
                text.setText(res.getProjectRelativePath().toOSString());
            }
        }
    };
    button.addSelectionListener(listener);
    return button;
}
Also used : Shell(org.eclipse.swt.widgets.Shell) ResourceSelectionDialog(org.eclipse.ui.dialogs.ResourceSelectionDialog) Button(org.eclipse.swt.widgets.Button) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) SelectionEvent(org.eclipse.swt.events.SelectionEvent) IResource(org.eclipse.core.resources.IResource) SelectionListener(org.eclipse.swt.events.SelectionListener)

Aggregations

ResourceSelectionDialog (org.eclipse.ui.dialogs.ResourceSelectionDialog)4 IResource (org.eclipse.core.resources.IResource)3 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)3 SelectionEvent (org.eclipse.swt.events.SelectionEvent)3 GridData (org.eclipse.swt.layout.GridData)3 GridLayout (org.eclipse.swt.layout.GridLayout)3 Button (org.eclipse.swt.widgets.Button)3 Composite (org.eclipse.swt.widgets.Composite)3 SelectionListener (org.eclipse.swt.events.SelectionListener)2 Label (org.eclipse.swt.widgets.Label)2 IContainer (org.eclipse.core.resources.IContainer)1 Path (org.eclipse.core.runtime.Path)1 InputDialog (org.eclipse.jface.dialogs.InputDialog)1 Combo (org.eclipse.swt.widgets.Combo)1 FileDialog (org.eclipse.swt.widgets.FileDialog)1 Group (org.eclipse.swt.widgets.Group)1 Shell (org.eclipse.swt.widgets.Shell)1 TabItem (org.eclipse.swt.widgets.TabItem)1 Text (org.eclipse.swt.widgets.Text)1 LanguageConfigurationInfoWidget (org.eclipse.tm4e.languageconfiguration.internal.widgets.LanguageConfigurationInfoWidget)1