Search in sources :

Example 86 with Dialog

use of org.eclipse.jface.dialogs.Dialog in project eclipse.platform.ui by eclipse-platform.

the class KeyAssistDialog method open.

/**
 * Opens this dialog with the list of bindings for the user to select from.
 *
 * @return The return code from this dialog.
 * @since 3.3
 */
public int open(Collection<Binding> bindings) {
    matches = new TreeSet<>((a, b) -> {
        Binding bindingA = a;
        Binding bindingB = b;
        ParameterizedCommand commandA = bindingA.getParameterizedCommand();
        ParameterizedCommand commandB = bindingB.getParameterizedCommand();
        try {
            return commandA.getName().compareTo(commandB.getName());
        } catch (NotDefinedException e) {
            // should not happen
            return 0;
        }
    });
    matches.addAll(bindings);
    // If the dialog is already open, dispose the shell and recreate it.
    Shell shell = getShell();
    if (shell != null) {
        close(false, false);
        return Window.OK;
    }
    create();
    // Bug 369860. Stop ShellActivationListener from creating a context for this.
    // $NON-NLS-1$
    getShell().setData("org.eclipse.e4.ui.ignoreDialog", Boolean.TRUE);
    // Configure the size and location.
    Point size = configureSize();
    configureLocation(size);
    // Call the super method.
    return super.open();
}
Also used : ParameterizedCommand(org.eclipse.core.commands.ParameterizedCommand) NotDefinedException(org.eclipse.core.commands.common.NotDefinedException) TableColumn(org.eclipse.swt.widgets.TableColumn) Rectangle(org.eclipse.swt.graphics.Rectangle) Table(org.eclipse.swt.widgets.Table) Point(org.eclipse.swt.graphics.Point) TreeSet(java.util.TreeSet) Event(org.eclipse.swt.widgets.Event) ArrayList(java.util.ArrayList) IEclipseContext(org.eclipse.e4.core.contexts.IEclipseContext) Composite(org.eclipse.swt.widgets.Composite) GridData(org.eclipse.swt.layout.GridData) EBindingService(org.eclipse.e4.ui.bindings.EBindingService) CommandException(org.eclipse.core.commands.common.CommandException) TableItem(org.eclipse.swt.widgets.TableItem) Shell(org.eclipse.swt.widgets.Shell) Iterator(java.util.Iterator) KeyBindingDispatcher(org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher) Collection(java.util.Collection) PopupDialog(org.eclipse.jface.dialogs.PopupDialog) List(java.util.List) Window(org.eclipse.jface.window.Window) Dialog(org.eclipse.jface.dialogs.Dialog) Binding(org.eclipse.jface.bindings.Binding) SWT(org.eclipse.swt.SWT) Label(org.eclipse.swt.widgets.Label) Control(org.eclipse.swt.widgets.Control) GridLayout(org.eclipse.swt.layout.GridLayout) Binding(org.eclipse.jface.bindings.Binding) Shell(org.eclipse.swt.widgets.Shell) NotDefinedException(org.eclipse.core.commands.common.NotDefinedException) Point(org.eclipse.swt.graphics.Point) ParameterizedCommand(org.eclipse.core.commands.ParameterizedCommand)

Example 87 with Dialog

use of org.eclipse.jface.dialogs.Dialog in project eclipse.platform.ui by eclipse-platform.

the class ChooseWorkspaceDialog method createRecentWorkspacesComposite.

/**
 * The Recent Workspaces area of the dialog is only shown if Recent
 * Workspaces are defined. It provides a faster way to launch a specific
 * Workspace
 */
private void createRecentWorkspacesComposite(final Composite composite) {
    FormToolkit toolkit = new FormToolkit(composite.getDisplay());
    composite.addDisposeListener(c -> toolkit.dispose());
    recentWorkspacesForm = toolkit.createForm(composite);
    recentWorkspacesForm.setBackground(composite.getBackground());
    recentWorkspacesForm.getBody().setLayout(new GridLayout());
    ExpandableComposite recentWorkspacesExpandable = toolkit.createExpandableComposite(recentWorkspacesForm.getBody(), ExpandableComposite.TWISTIE);
    recentWorkspacesForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    recentWorkspacesExpandable.setBackground(composite.getBackground());
    recentWorkspacesExpandable.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_recentWorkspaces);
    recentWorkspacesExpandable.setExpanded(launchData.isShowRecentWorkspaces());
    recentWorkspacesExpandable.addExpansionListener(new ExpansionAdapter() {

        @Override
        public void expansionStateChanged(ExpansionEvent e) {
            launchData.setShowRecentWorkspaces(((ExpandableComposite) e.getSource()).isExpanded());
            Point size = getInitialSize();
            Shell shell = getShell();
            shell.setBounds(getConstrainedShellBounds(new Rectangle(shell.getLocation().x, shell.getLocation().y, size.x, size.y)));
        }
    });
    Composite panel = new Composite(recentWorkspacesExpandable, SWT.NONE);
    recentWorkspacesExpandable.setClient(panel);
    RowLayout layout = new RowLayout(SWT.VERTICAL);
    layout.marginLeft = 14;
    layout.spacing = 6;
    panel.setLayout(layout);
    recentWorkspacesLinks = new HashMap<>(launchData.getRecentWorkspaces().length);
    Map<String, String> uniqueWorkspaceNames = createUniqueWorkspaceNameMap();
    List<String> recentWorkspacesList = Arrays.asList(launchData.getRecentWorkspaces()).stream().filter(s -> s != null && !s.isEmpty()).collect(Collectors.toList());
    List<Entry<String, String>> sortedList = uniqueWorkspaceNames.entrySet().stream().sorted((e1, e2) -> Integer.compare(recentWorkspacesList.indexOf(e1.getValue()), recentWorkspacesList.indexOf(e2.getValue()))).collect(Collectors.toList());
    for (Entry<String, String> uniqueWorkspaceEntry : sortedList) {
        final String recentWorkspace = uniqueWorkspaceEntry.getValue();
        Link link = new Link(panel, SWT.WRAP);
        link.setLayoutData(new RowData(SWT.DEFAULT, SWT.DEFAULT));
        // $NON-NLS-1$ //$NON-NLS-2$
        link.setText("<a>" + uniqueWorkspaceEntry.getKey() + "</a>");
        link.setToolTipText(recentWorkspace);
        link.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                workspaceSelected(recentWorkspace);
            }
        });
        recentWorkspacesLinks.put(recentWorkspace, link);
        Menu menu = new Menu(link);
        MenuItem forgetItem = new MenuItem(menu, SWT.PUSH);
        forgetItem.setText(IDEWorkbenchMessages.ChooseWorkspaceDialog_removeWorkspaceSelection);
        forgetItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                removeWorkspaceFromLauncher(recentWorkspace);
            }
        });
        link.setMenu(menu);
    }
}
Also used : CLabel(org.eclipse.swt.custom.CLabel) Arrays(java.util.Arrays) TextProcessor(org.eclipse.osgi.util.TextProcessor) Rectangle(org.eclipse.swt.graphics.Rectangle) HashMap(java.util.HashMap) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) Function(java.util.function.Function) Point(org.eclipse.swt.graphics.Point) ArrayList(java.util.ArrayList) ExpansionEvent(org.eclipse.ui.forms.events.ExpansionEvent) Composite(org.eclipse.swt.widgets.Composite) Map(java.util.Map) GridData(org.eclipse.swt.layout.GridData) Geometry(org.eclipse.jface.util.Geometry) RowData(org.eclipse.swt.layout.RowData) Link(org.eclipse.swt.widgets.Link) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Combo(org.eclipse.swt.widgets.Combo) Shell(org.eclipse.swt.widgets.Shell) Button(org.eclipse.swt.widgets.Button) NLS(org.eclipse.osgi.util.NLS) PlatformUI(org.eclipse.ui.PlatformUI) Monitor(org.eclipse.swt.widgets.Monitor) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) Collectors(java.util.stream.Collectors) File(java.io.File) Form(org.eclipse.ui.forms.widgets.Form) List(java.util.List) Window(org.eclipse.jface.window.Window) RowLayout(org.eclipse.swt.layout.RowLayout) ExpansionAdapter(org.eclipse.ui.forms.events.ExpansionAdapter) TitleAreaDialog(org.eclipse.jface.dialogs.TitleAreaDialog) MenuItem(org.eclipse.swt.widgets.MenuItem) Dialog(org.eclipse.jface.dialogs.Dialog) SWT(org.eclipse.swt.SWT) DirectoryDialog(org.eclipse.swt.widgets.DirectoryDialog) Entry(java.util.Map.Entry) IProduct(org.eclipse.core.runtime.IProduct) Platform(org.eclipse.core.runtime.Platform) Pattern(java.util.regex.Pattern) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Menu(org.eclipse.swt.widgets.Menu) FrameworkUtil(org.osgi.framework.FrameworkUtil) Control(org.eclipse.swt.widgets.Control) GridLayout(org.eclipse.swt.layout.GridLayout) ExpandableComposite(org.eclipse.ui.forms.widgets.ExpandableComposite) FormToolkit(org.eclipse.ui.forms.widgets.FormToolkit) Rectangle(org.eclipse.swt.graphics.Rectangle) GridLayout(org.eclipse.swt.layout.GridLayout) Shell(org.eclipse.swt.widgets.Shell) Entry(java.util.Map.Entry) RowData(org.eclipse.swt.layout.RowData) RowLayout(org.eclipse.swt.layout.RowLayout) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Menu(org.eclipse.swt.widgets.Menu) Composite(org.eclipse.swt.widgets.Composite) ExpandableComposite(org.eclipse.ui.forms.widgets.ExpandableComposite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) MenuItem(org.eclipse.swt.widgets.MenuItem) ExpansionAdapter(org.eclipse.ui.forms.events.ExpansionAdapter) Point(org.eclipse.swt.graphics.Point) GridData(org.eclipse.swt.layout.GridData) ExpandableComposite(org.eclipse.ui.forms.widgets.ExpandableComposite) ExpansionEvent(org.eclipse.ui.forms.events.ExpansionEvent) Link(org.eclipse.swt.widgets.Link)

Example 88 with Dialog

use of org.eclipse.jface.dialogs.Dialog in project eclipse.platform.ui by eclipse-platform.

the class EditorSelectionDialog method createDialogArea.

/**
 * Creates and returns the contents of the upper part of the dialog (above the
 * button bar).
 *
 * Subclasses should overide.
 *
 * @param parent the parent composite to contain the dialog area
 * @return the dialog area control
 */
@Override
protected Control createDialogArea(Composite parent) {
    Font font = parent.getFont();
    // create main group
    Composite contents = (Composite) super.createDialogArea(parent);
    ((GridLayout) contents.getLayout()).numColumns = 2;
    // begin the layout
    Label textLabel = new Label(contents, SWT.WRAP);
    textLabel.setText(message);
    GridData data = new GridData();
    data.horizontalSpan = 2;
    data.horizontalAlignment = SWT.FILL;
    data.widthHint = TABLE_WIDTH;
    textLabel.setLayoutData(data);
    textLabel.setFont(font);
    Composite group = new Composite(contents, SWT.SHADOW_NONE);
    data = new GridData();
    data.grabExcessHorizontalSpace = true;
    data.horizontalAlignment = SWT.FILL;
    data.horizontalSpan = 2;
    group.setLayout(new RowLayout(SWT.HORIZONTAL));
    group.setLayoutData(data);
    internalButton = new Button(group, SWT.RADIO | SWT.LEFT);
    internalButton.setText(WorkbenchMessages.EditorSelection_internal);
    internalButton.addListener(SWT.Selection, listener);
    internalButton.setFont(font);
    externalButton = new Button(group, SWT.RADIO | SWT.LEFT);
    externalButton.setText(WorkbenchMessages.EditorSelection_external);
    externalButton.addListener(SWT.Selection, listener);
    externalButton.setFont(font);
    editorTable = new FilteredTree(contents, SWT.SINGLE | SWT.BORDER, new PatternFilter(), true);
    editorTableViewer = editorTable.getViewer();
    Tree tree = editorTableViewer.getTree();
    tree.addListener(SWT.Selection, listener);
    tree.addListener(SWT.DefaultSelection, listener);
    tree.addListener(SWT.MouseDoubleClick, listener);
    data = new GridData();
    data.widthHint = convertHorizontalDLUsToPixels(TABLE_WIDTH);
    data.horizontalAlignment = GridData.FILL;
    data.grabExcessHorizontalSpace = true;
    data.verticalAlignment = GridData.FILL;
    data.grabExcessVerticalSpace = true;
    data.horizontalSpan = 2;
    editorTable.setLayoutData(data);
    editorTable.setFont(font);
    data.heightHint = tree.getItemHeight() * 12;
    editorTableViewer.setContentProvider(new TreeArrayContentProvider());
    editorTableViewer.setLabelProvider(createTextImageProvider(element -> {
        IEditorDescriptor d = (IEditorDescriptor) element;
        // $NON-NLS-1$
        return TextProcessor.process(d.getLabel(), ".");
    }, element -> {
        IEditorDescriptor d = (IEditorDescriptor) element;
        return (Image) resourceManager.get(d.getImageDescriptor());
    }));
    browseExternalEditorsButton = new Button(contents, SWT.PUSH);
    browseExternalEditorsButton.setText(WorkbenchMessages.EditorSelection_browse);
    browseExternalEditorsButton.addListener(SWT.Selection, listener);
    data = new GridData();
    int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
    data.widthHint = Math.max(widthHint, browseExternalEditorsButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
    data.horizontalSpan = 2;
    browseExternalEditorsButton.setLayoutData(data);
    browseExternalEditorsButton.setFont(font);
    if (fileName != null) {
        rememberEditorButton = new Button(contents, SWT.CHECK | SWT.LEFT);
        rememberEditorButton.setText(NLS.bind(WorkbenchMessages.EditorSelection_rememberEditor, fileName));
        rememberEditorButton.addListener(SWT.Selection, listener);
        data = new GridData();
        data.horizontalSpan = 2;
        rememberEditorButton.setLayoutData(data);
        rememberEditorButton.setFont(font);
        String fileType = getFileType();
        if (!fileType.isEmpty()) {
            rememberTypeButton = new Button(contents, SWT.CHECK | SWT.LEFT);
            rememberTypeButton.setText(NLS.bind(WorkbenchMessages.EditorSelection_rememberType, fileType));
            rememberTypeButton.addListener(SWT.Selection, listener);
            data = new GridData();
            data.horizontalSpan = 2;
            rememberTypeButton.setLayoutData(data);
            rememberTypeButton.setFont(font);
        }
    }
    initializeSuggestion();
    // Place buttons to the appropriate state
    restoreWidgetValues();
    // Run async to restore selection on *visible* dialog - otherwise three won't
    // scroll
    PlatformUI.getWorkbench().getDisplay().asyncExec(() -> {
        if (editorTable.isDisposed()) {
            return;
        }
        fillEditorTable();
        updateEnableState();
    });
    return contents;
}
Also used : Arrays(java.util.Arrays) WorkbenchPlugin(org.eclipse.ui.internal.WorkbenchPlugin) TextProcessor(org.eclipse.osgi.util.TextProcessor) ResourceManager(org.eclipse.jface.resource.ResourceManager) CoreException(org.eclipse.core.runtime.CoreException) IDialogConstants(org.eclipse.jface.dialogs.IDialogConstants) IDialogSettings(org.eclipse.jface.dialogs.IDialogSettings) Program(org.eclipse.swt.program.Program) IStatus(org.eclipse.core.runtime.IStatus) EditorDescriptor(org.eclipse.ui.internal.registry.EditorDescriptor) Composite(org.eclipse.swt.widgets.Composite) IProgressService(org.eclipse.ui.progress.IProgressService) ITreeContentProvider(org.eclipse.jface.viewers.ITreeContentProvider) StatusManager(org.eclipse.ui.statushandlers.StatusManager) Button(org.eclipse.swt.widgets.Button) NLS(org.eclipse.osgi.util.NLS) PlatformUI(org.eclipse.ui.PlatformUI) Status(org.eclipse.core.runtime.Status) InvocationTargetException(java.lang.reflect.InvocationTargetException) Util(org.eclipse.jface.util.Util) LabelProvider.createTextImageProvider(org.eclipse.jface.viewers.LabelProvider.createTextImageProvider) List(java.util.List) Tree(org.eclipse.swt.widgets.Tree) SWT(org.eclipse.swt.SWT) TreeViewer(org.eclipse.jface.viewers.TreeViewer) IEditorRegistry(org.eclipse.ui.IEditorRegistry) IEditorDescriptor(org.eclipse.ui.IEditorDescriptor) Label(org.eclipse.swt.widgets.Label) Image(org.eclipse.swt.graphics.Image) JFaceResources(org.eclipse.jface.resource.JFaceResources) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) Event(org.eclipse.swt.widgets.Event) ArrayList(java.util.ArrayList) IWorkbenchHelpContextIds(org.eclipse.ui.internal.IWorkbenchHelpContextIds) Listener(org.eclipse.swt.widgets.Listener) Font(org.eclipse.swt.graphics.Font) GridData(org.eclipse.swt.layout.GridData) Shell(org.eclipse.swt.widgets.Shell) WorkbenchMessages(org.eclipse.ui.internal.WorkbenchMessages) FileDialog(org.eclipse.swt.widgets.FileDialog) IFileEditorMapping(org.eclipse.ui.IFileEditorMapping) FileEditorMapping(org.eclipse.ui.internal.registry.FileEditorMapping) RowLayout(org.eclipse.swt.layout.RowLayout) EditorRegistry(org.eclipse.ui.internal.registry.EditorRegistry) Dialog(org.eclipse.jface.dialogs.Dialog) IRunnableWithProgress(org.eclipse.jface.operation.IRunnableWithProgress) LocalResourceManager(org.eclipse.jface.resource.LocalResourceManager) FrameworkUtil(org.osgi.framework.FrameworkUtil) Control(org.eclipse.swt.widgets.Control) GridLayout(org.eclipse.swt.layout.GridLayout) Composite(org.eclipse.swt.widgets.Composite) IEditorDescriptor(org.eclipse.ui.IEditorDescriptor) Label(org.eclipse.swt.widgets.Label) Font(org.eclipse.swt.graphics.Font) Button(org.eclipse.swt.widgets.Button) RowLayout(org.eclipse.swt.layout.RowLayout) GridData(org.eclipse.swt.layout.GridData) Tree(org.eclipse.swt.widgets.Tree)

Example 89 with Dialog

use of org.eclipse.jface.dialogs.Dialog in project eclipse.platform.ui by eclipse-platform.

the class InfoAboutHandler method execute.

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
    Dialog dialog = new InfoAboutDialog(window.getShell());
    dialog.open();
    return null;
}
Also used : IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) Dialog(org.eclipse.jface.dialogs.Dialog)

Example 90 with Dialog

use of org.eclipse.jface.dialogs.Dialog in project eclipse.platform.ui by eclipse-platform.

the class DeprecatedUIPreferences method testPerspectivesPref.

@Test
public void testPerspectivesPref() {
    Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Perspectives");
    DialogCheck.assertDialog(dialog);
}
Also used : PropertyDialog(org.eclipse.ui.internal.dialogs.PropertyDialog) PreferenceDialog(org.eclipse.jface.preference.PreferenceDialog) Dialog(org.eclipse.jface.dialogs.Dialog) Test(org.junit.Test)

Aggregations

Dialog (org.eclipse.jface.dialogs.Dialog)330 MessageDialog (org.eclipse.jface.dialogs.MessageDialog)138 Test (org.junit.Test)127 PreferenceDialog (org.eclipse.jface.preference.PreferenceDialog)59 Composite (org.eclipse.swt.widgets.Composite)48 Shell (org.eclipse.swt.widgets.Shell)38 SWT (org.eclipse.swt.SWT)37 GridData (org.eclipse.swt.layout.GridData)37 Control (org.eclipse.swt.widgets.Control)35 ProgressMonitorDialog (org.eclipse.jface.dialogs.ProgressMonitorDialog)32 Button (org.eclipse.swt.widgets.Button)31 WizardDialog (org.eclipse.jface.wizard.WizardDialog)28 GridLayout (org.eclipse.swt.layout.GridLayout)28 SelectPerspectiveDialog (org.eclipse.ui.internal.dialogs.SelectPerspectiveDialog)27 ShowViewDialog (org.eclipse.ui.internal.dialogs.ShowViewDialog)27 ArrayList (java.util.ArrayList)24 SaveAsDialog (org.eclipse.ui.dialogs.SaveAsDialog)24 ContainerSelectionDialog (org.eclipse.ui.dialogs.ContainerSelectionDialog)23 EditorSelectionDialog (org.eclipse.ui.dialogs.EditorSelectionDialog)23 ListSelectionDialog (org.eclipse.ui.dialogs.ListSelectionDialog)23