Search in sources :

Example 11 with ContainerSelectionDialog

use of org.eclipse.ui.dialogs.ContainerSelectionDialog in project webtools.servertools by eclipse.

the class OverviewEditorPart method createGeneralSection.

protected void createGeneralSection(Composite leftColumnComp, FormToolkit toolkit) {
    Section section = toolkit.createSection(leftColumnComp, ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
    section.setText(Messages.serverEditorOverviewGeneralSection);
    section.setDescription(Messages.serverEditorOverviewGeneralDescription);
    section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
    Composite composite = toolkit.createComposite(section);
    GridLayout layout = new GridLayout();
    layout.numColumns = 3;
    layout.marginHeight = 5;
    layout.marginWidth = 10;
    layout.verticalSpacing = 5;
    layout.horizontalSpacing = 5;
    composite.setLayout(layout);
    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));
    IWorkbenchHelpSystem whs = PlatformUI.getWorkbench().getHelpSystem();
    whs.setHelp(composite, ContextIds.EDITOR_OVERVIEW_PAGE);
    toolkit.paintBordersFor(composite);
    section.setClient(composite);
    int decorationWidth = FieldDecorationRegistry.getDefault().getMaximumDecorationWidth();
    // server name
    if (server != null) {
        createLabel(toolkit, composite, Messages.serverEditorOverviewServerName);
        serverName = toolkit.createText(composite, server.getName());
        GridData data = new GridData(GridData.FILL_HORIZONTAL);
        data.horizontalSpan = 2;
        data.horizontalIndent = decorationWidth;
        serverName.setLayoutData(data);
        serverName.addModifyListener(new ModifyListener() {

            public void modifyText(ModifyEvent e) {
                if (updating)
                    return;
                updating = true;
                execute(new SetServerNameCommand(getServer(), serverName.getText(), new SetServerNameCommand.Validator() {

                    public void validate() {
                        OverviewEditorPart.this.validate();
                    }
                }));
                updating = false;
            }
        });
        whs.setHelp(serverName, ContextIds.EDITOR_SERVER);
        // hostname
        hostnameLabel = createLabel(toolkit, composite, Messages.serverEditorOverviewServerHostname);
        hostname = toolkit.createText(composite, server.getHost());
        hostnameDecoration = new ControlDecoration(hostname, SWT.TOP | SWT.LEAD);
        data = new GridData(GridData.FILL_HORIZONTAL);
        data.horizontalSpan = 2;
        data.horizontalIndent = decorationWidth;
        hostname.setLayoutData(data);
        hostname.addModifyListener(new ModifyListener() {

            public void modifyText(ModifyEvent e) {
                if (updating)
                    return;
                updating = true;
                execute(new SetServerHostnameCommand(getServer(), hostname.getText()));
                updating = false;
            }
        });
        whs.setHelp(hostname, ContextIds.EDITOR_HOSTNAME);
        FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
        FieldDecoration fd = registry.getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
        hostnameDecoration.setImage(fd.getImage());
        hostnameDecoration.setDescriptionText(fd.getDescription());
        hostnameDecoration.hide();
        hostname.addFocusListener(new FocusListener() {

            public void focusGained(FocusEvent e) {
                hostnameDecoration.show();
            }

            public void focusLost(FocusEvent e) {
                hostnameDecoration.hide();
            }
        });
        // updateDecoration(hostnameDecoration, new Status(IStatus.INFO, ServerUIPlugin.PLUGIN_ID, "Press Ctrl-Space"));
        List<String> hosts = ServerUIPlugin.getPreferences().getHostnames();
        String[] hosts2 = hosts.toArray(new String[hosts.size()]);
        new AutoCompleteField(hostname, new TextContentAdapter(), hosts2);
    }
    // runtime
    if (server != null && server.getServerType() != null && server.getServerType().hasRuntime()) {
        final Hyperlink link = toolkit.createHyperlink(composite, Messages.serverEditorOverviewRuntime, SWT.NONE);
        final IServerWorkingCopy server2 = server;
        link.addHyperlinkListener(new HyperlinkAdapter() {

            public void linkActivated(HyperlinkEvent e) {
                IRuntime runtime = server2.getRuntime();
                if (runtime != null && ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId()))
                    editRuntime(runtime);
            }
        });
        final IRuntime runtime = server.getRuntime();
        if (runtime == null || !ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId()))
            link.setEnabled(false);
        IRuntimeType runtimeType = server.getServerType().getRuntimeType();
        runtimes = ServerUIPlugin.getRuntimes(runtimeType);
        runtimeCombo = new Combo(composite, SWT.READ_ONLY);
        GridData data = new GridData(GridData.FILL_HORIZONTAL);
        data.horizontalIndent = decorationWidth;
        data.horizontalSpan = 2;
        runtimeCombo.setLayoutData(data);
        updateRuntimeCombo();
        int size = runtimes.length;
        for (int i = 0; i < size; i++) {
            if (runtimes[i].equals(runtime))
                runtimeCombo.select(i);
        }
        runtimeCombo.addSelectionListener(new SelectionListener() {

            public void widgetSelected(SelectionEvent e) {
                try {
                    if (updating)
                        return;
                    updating = true;
                    IRuntime newRuntime = runtimes[runtimeCombo.getSelectionIndex()];
                    execute(new SetServerRuntimeCommand(getServer(), newRuntime));
                    link.setEnabled(newRuntime != null && ServerUIPlugin.hasWizardFragment(newRuntime.getRuntimeType().getId()));
                    updating = false;
                } catch (Exception ex) {
                // ignore
                }
            }

            public void widgetDefaultSelected(SelectionEvent e) {
                widgetSelected(e);
            }
        });
        whs.setHelp(runtimeCombo, ContextIds.EDITOR_RUNTIME);
        // add runtime listener
        runtimeListener = new IRuntimeLifecycleListener() {

            public void runtimeChanged(final IRuntime runtime2) {
                // may be name change of current runtime
                Display.getDefault().syncExec(new Runnable() {

                    public void run() {
                        if (runtime2.equals(getServer().getRuntime())) {
                            try {
                                if (updating)
                                    return;
                                updating = true;
                                execute(new SetServerRuntimeCommand(getServer(), runtime2));
                                updating = false;
                            } catch (Exception ex) {
                            // ignore
                            }
                        }
                        if (runtimeCombo != null && !runtimeCombo.isDisposed()) {
                            updateRuntimeCombo();
                            int size2 = runtimes.length;
                            for (int i = 0; i < size2; i++) {
                                if (runtimes[i].equals(runtime))
                                    runtimeCombo.select(i);
                            }
                        }
                    }
                });
            }

            public void runtimeAdded(final IRuntime runtime2) {
                Display.getDefault().syncExec(new Runnable() {

                    public void run() {
                        if (runtimeCombo != null && !runtimeCombo.isDisposed()) {
                            updateRuntimeCombo();
                            int size2 = runtimes.length;
                            for (int i = 0; i < size2; i++) {
                                if (runtimes[i].equals(runtime))
                                    runtimeCombo.select(i);
                            }
                        }
                    }
                });
            }

            public void runtimeRemoved(IRuntime runtime2) {
                Display.getDefault().syncExec(new Runnable() {

                    public void run() {
                        if (runtimeCombo != null && !runtimeCombo.isDisposed()) {
                            updateRuntimeCombo();
                            int size2 = runtimes.length;
                            for (int i = 0; i < size2; i++) {
                                if (runtimes[i].equals(runtime))
                                    runtimeCombo.select(i);
                            }
                        }
                    }
                });
            }
        };
        ServerCore.addRuntimeLifecycleListener(runtimeListener);
    }
    // server configuration path
    if (server != null && server.getServerType() != null && server.getServerType().hasServerConfiguration()) {
        createLabel(toolkit, composite, Messages.serverEditorOverviewServerConfigurationPath);
        IFolder folder = server.getServerConfiguration();
        if (folder == null)
            serverConfiguration = toolkit.createText(composite, Messages.elementUnknownName);
        else
            serverConfiguration = toolkit.createText(composite, "" + server.getServerConfiguration().getFullPath());
        serverConfiguration.setEditable(false);
        GridData data = new GridData(GridData.FILL_HORIZONTAL);
        data.horizontalIndent = decorationWidth;
        data.widthHint = 75;
        serverConfiguration.setLayoutData(data);
        whs.setHelp(serverConfiguration, ContextIds.EDITOR_CONFIGURATION);
        final IFolder currentFolder = server.getServerConfiguration();
        browse = toolkit.createButton(composite, Messages.serverEditorOverviewServerConfigurationBrowse, SWT.PUSH);
        browse.addSelectionListener(new SelectionAdapter() {

            public void widgetSelected(SelectionEvent e) {
                ContainerSelectionDialog dialog = new ContainerSelectionDialog(serverConfiguration.getShell(), currentFolder, true, Messages.serverEditorOverviewServerConfigurationBrowseMessage);
                dialog.showClosedProjects(false);
                if (dialog.open() != Window.CANCEL) {
                    Object[] result = dialog.getResult();
                    if (result != null && result.length == 1) {
                        IPath path = (IPath) result[0];
                        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
                        IResource resource = root.findMember(path);
                        if (resource != null && resource instanceof IFolder) {
                            IFolder folder2 = (IFolder) resource;
                            if (updating)
                                return;
                            updating = true;
                            execute(new SetServerConfigurationFolderCommand(getServer(), folder2));
                            serverConfiguration.setText(folder2.getFullPath().toString());
                            updating = false;
                        }
                    }
                }
            }
        });
        browse.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
    }
    IServerType serverType = null;
    if (server != null && server.getServerType() != null) {
        serverType = server.getServerType();
        if (serverType.supportsLaunchMode(ILaunchManager.RUN_MODE) || serverType.supportsLaunchMode(ILaunchManager.DEBUG_MODE) || serverType.supportsLaunchMode(ILaunchManager.PROFILE_MODE)) {
            ILaunchConfigurationType launchType = ((ServerType) serverType).getLaunchConfigurationType();
            if (launchType != null && launchType.isPublic()) {
                final Hyperlink link = toolkit.createHyperlink(composite, Messages.serverEditorOverviewOpenLaunchConfiguration, SWT.NONE);
                GridData data = new GridData();
                data.horizontalSpan = 3;
                link.setLayoutData(data);
                link.addHyperlinkListener(new HyperlinkAdapter() {

                    public void linkActivated(HyperlinkEvent e) {
                        IEditorPart part = ((MultiPageEditorSite) getSite()).getMultiPageEditor();
                        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                        page.saveEditor(part, true);
                        try {
                            ILaunchConfiguration launchConfig = ((Server) getServer()).getLaunchConfiguration(true, null);
                            // TODO: use correct launch group
                            DebugUITools.openLaunchConfigurationPropertiesDialog(link.getShell(), launchConfig, "org.eclipse.debug.ui.launchGroup.run");
                        } catch (CoreException ce) {
                            if (Trace.SEVERE) {
                                Trace.trace(Trace.STRING_SEVERE, "Could not create launch configuration", ce);
                            }
                        }
                    }
                });
            }
        }
    }
    // Insertion of extension widgets. If the page modifier createControl is not implemented still
    // add the modifier to the listeners list.
    List<ServerEditorOverviewPageModifier> pageModifiersLst = getPageModifiers(serverType == null ? null : serverType.getId());
    for (ServerEditorOverviewPageModifier curPageModifier : pageModifiersLst) {
        if (server != null && server.getServerType() != null) {
            curPageModifier.setServerWorkingCopy(server);
            curPageModifier.setServerEditorPart(this);
            curPageModifier.setFormToolkit(toolkit);
            curPageModifier.createControl(ServerEditorOverviewPageModifier.UI_LOCATION.OVERVIEW, composite);
            curPageModifier.setUIControlListener(this);
        }
    }
}
Also used : ILaunchConfigurationType(org.eclipse.debug.core.ILaunchConfigurationType) ContainerSelectionDialog(org.eclipse.ui.dialogs.ContainerSelectionDialog) HyperlinkEvent(org.eclipse.ui.forms.events.HyperlinkEvent) GridLayout(org.eclipse.swt.layout.GridLayout) IWorkbenchHelpSystem(org.eclipse.ui.help.IWorkbenchHelpSystem) ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) ServerEditorOverviewPageModifier(org.eclipse.wst.server.ui.editor.ServerEditorOverviewPageModifier) GridData(org.eclipse.swt.layout.GridData) HyperlinkAdapter(org.eclipse.ui.forms.events.HyperlinkAdapter)

Example 12 with ContainerSelectionDialog

use of org.eclipse.ui.dialogs.ContainerSelectionDialog in project org.csstudio.display.builder by kasemir.

the class NewDisplayWizardPage method handleBrowse.

private void handleBrowse() {
    final ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), false, Messages.NewDisplay_BrowseTitle);
    if (dialog.open() != ContainerSelectionDialog.OK)
        return;
    final Object[] result = dialog.getResult();
    if (result.length == 1)
        containerText.setText(((Path) result[0]).toString());
}
Also used : Path(org.eclipse.core.runtime.Path) ContainerSelectionDialog(org.eclipse.ui.dialogs.ContainerSelectionDialog)

Example 13 with ContainerSelectionDialog

use of org.eclipse.ui.dialogs.ContainerSelectionDialog 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 14 with ContainerSelectionDialog

use of org.eclipse.ui.dialogs.ContainerSelectionDialog in project axis-axis2-java-core by apache.

the class OutputPage method handleBrowse.

/**
 * Handle the browse button events: opens a dialog where the user can choose
 * an external directory location
 */
private void handleBrowse() {
    // Change this to add the clarity of 2 option buttions
    // boolean location = locationSelectCheckBox.getSelection();
    boolean location = false;
    if (settings.getBoolean(PREF_CHECK_FILE_SYSTEM)) {
        location = false;
    } else if (settings.getBoolean(PREF_CHECK_WORKSPACE)) {
        location = true;
    }
    if (workspaceSaveOption) {
        location = true;
    }
    if (!location) {
        DirectoryDialog dialog = new DirectoryDialog(this.getShell());
        String returnString = dialog.open();
        if (returnString != null) {
            outputLocation.setText(returnString);
        }
    } else {
        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
        ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), root, false, CodegenWizardPlugin.getResourceString("page3.containerbox.title"));
        if (dialog.open() == ContainerSelectionDialog.OK) {
            Object[] result = dialog.getResult();
            if (result.length == 1) {
                Path path = ((Path) result[0]);
                if (root.exists(path)) {
                    // Fixing issue AXIS2-4008 by retrieving the project path instead of appending it to the workspace root.
                    IProject project = null;
                    StringBuilder builder = new StringBuilder();
                    if (path.segmentCount() > 1) {
                        // User has selected a folder inside a project
                        project = root.getProject(path.segment(ECLIPSE_PROJECT_NAME_SEGMENT_INDEX));
                        for (int i = ECLIPSE_PROJECT_NAME_SEGMENT_INDEX + 1; i < path.segments().length; i++) {
                            builder.append(File.separator).append(path.segment(i));
                        }
                    } else {
                        project = root.getProject(path.toOSString());
                    }
                    if (project != null) {
                        outputLocation.setText(project.getLocation().toOSString() + builder.toString());
                        // Fixing AXIS2-4063
                        selectedWorkspaceProject = project;
                    } else {
                        // append to the workspace path if the project is
                        // null
                        outputLocation.setText(root.getLocation().append(path).toFile().getAbsolutePath());
                    }
                }
            }
        }
    }
}
Also used : Path(org.eclipse.core.runtime.Path) IWorkspaceRoot(org.eclipse.core.resources.IWorkspaceRoot) ContainerSelectionDialog(org.eclipse.ui.dialogs.ContainerSelectionDialog) IProject(org.eclipse.core.resources.IProject) DirectoryDialog(org.eclipse.swt.widgets.DirectoryDialog)

Example 15 with ContainerSelectionDialog

use of org.eclipse.ui.dialogs.ContainerSelectionDialog in project axis-axis2-java-core by apache.

the class JavaWSDLOutputLocationPage method handleBrowse.

private void handleBrowse() {
    // boolean location = locationSelectCheckBox.getSelection();
    boolean location = false;
    if (settings.getBoolean(PREF_JAVA_OUTPUT_FILESYATEM)) {
        location = false;
    } else if (settings.getBoolean(PREF_JAVA_OUTPUT_WORKSPACE)) {
        location = true;
    }
    if (workspaceSaveOption) {
        location = true;
    }
    if (!location) {
        DirectoryDialog dialog = new DirectoryDialog(this.getShell());
        String returnString = dialog.open();
        if (returnString != null) {
            outputFolderTextBox.setText(returnString);
        }
    } else {
        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
        ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), root, false, CodegenWizardPlugin.getResourceString("page3.containerbox.title"));
        if (dialog.open() == ContainerSelectionDialog.OK) {
            Object[] result = dialog.getResult();
            if (result.length == 1) {
                Path path = ((Path) result[0]);
                if (root.exists(path)) {
                    // Fixing issue AXIS2-4008 by retrieving the project
                    // path instead of appending it to the workspace root.
                    IProject project = null;
                    StringBuilder builder = new StringBuilder();
                    if (path.segmentCount() > 1) {
                        // User has selected a folder inside a project
                        project = root.getProject(path.segment(ECLIPSE_PROJECT_NAME_SEGMENT_INDEX));
                        for (int i = ECLIPSE_PROJECT_NAME_SEGMENT_INDEX + 1; i < path.segments().length; i++) {
                            builder.append(File.separator).append(path.segment(i));
                        }
                    } else {
                        project = root.getProject(path.toOSString());
                    }
                    if (project != null) {
                        outputFolderTextBox.setText(project.getLocation().toOSString() + builder.toString());
                    } else {
                        // append to the workspace path if the project is
                        // null
                        outputFolderTextBox.setText(root.getLocation().append(path).toFile().getAbsolutePath());
                    }
                }
            }
        }
    }
}
Also used : Path(org.eclipse.core.runtime.Path) IWorkspaceRoot(org.eclipse.core.resources.IWorkspaceRoot) ContainerSelectionDialog(org.eclipse.ui.dialogs.ContainerSelectionDialog) IProject(org.eclipse.core.resources.IProject) DirectoryDialog(org.eclipse.swt.widgets.DirectoryDialog)

Aggregations

ContainerSelectionDialog (org.eclipse.ui.dialogs.ContainerSelectionDialog)30 IPath (org.eclipse.core.runtime.IPath)15 GridData (org.eclipse.swt.layout.GridData)11 IProject (org.eclipse.core.resources.IProject)8 File (java.io.File)7 Path (org.eclipse.core.runtime.Path)7 SelectionEvent (org.eclipse.swt.events.SelectionEvent)7 GridLayout (org.eclipse.swt.layout.GridLayout)7 Button (org.eclipse.swt.widgets.Button)7 IResource (org.eclipse.core.resources.IResource)6 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)6 Label (org.eclipse.swt.widgets.Label)6 Text (org.eclipse.swt.widgets.Text)6 IContainer (org.eclipse.core.resources.IContainer)5 Composite (org.eclipse.swt.widgets.Composite)5 IFolder (org.eclipse.core.resources.IFolder)4 IWorkspaceRoot (org.eclipse.core.resources.IWorkspaceRoot)4 ModifyEvent (org.eclipse.swt.events.ModifyEvent)4 ModifyListener (org.eclipse.swt.events.ModifyListener)4 Group (org.eclipse.swt.widgets.Group)4