Example usage for org.eclipse.jface.viewers StructuredSelection StructuredSelection

List of usage examples for org.eclipse.jface.viewers StructuredSelection StructuredSelection

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers StructuredSelection StructuredSelection.

Prototype

public StructuredSelection(List elements) 

Source Link

Document

Creates a structured selection from the given List.

Usage

From source file:com.aptana.preview.ui.properties.PreviewSettingComposite.java

License:Open Source License

/**
 * Set the composite to select a specific server.
 * //from w ww  . ja v a 2 s  .  c  o  m
 * @param server
 *            the selected server
 */
public void setSelectedServer(IServer server) {
    fSelectedServer = server;
    if (fSelectedServer == null || fSelectedServer == getBuiltInServer()) {
        fServersCombo.setSelection(new StructuredSelection(getBuiltInServer()));
    } else {
        fServersCombo.setSelection(new StructuredSelection(fSelectedServer));
    }
    updateStates();
}

From source file:com.aptana.preview.ui.properties.PreviewSettingComposite.java

License:Open Source License

private void createNewServer() {
    ListDialog dialog = new ListDialog(getShell());
    dialog.setContentProvider(ArrayContentProvider.getInstance());
    dialog.setLabelProvider(new LabelProvider() {

        @Override/*from  w  ww . j  a v a  2  s .c om*/
        public String getText(Object element) {
            if (element instanceof IServerType) {
                return ((IServerType) element).getName();
            }
            return super.getText(element);
        }
    });
    dialog.setInput(WebServerCorePlugin.getDefault().getServerManager().getServerTypes());
    dialog.setTitle(Messages.ProjectPreviewPropertyPage_ChooseServerType);

    Object[] result;
    if (dialog.open() == Window.OK && (result = dialog.getResult()) != null && result.length == 1) {
        String typeId = ((IServerType) result[0]).getId();
        try {
            IServer newConfiguration = WebServerCorePlugin.getDefault().getServerManager().createServer(typeId);
            if (newConfiguration != null) {
                if (editServerConfiguration(newConfiguration)) {
                    WebServerCorePlugin.getDefault().getServerManager().add(newConfiguration);
                    updateServersContent(false);
                    fServersCombo.setSelection(new StructuredSelection(newConfiguration));
                    // forces an update of widget enablements
                    updateStates();
                }
            }
        } catch (CoreException e) {
            PreviewPlugin.log(Messages.ProjectPreviewPropertyPage_ERR_FailToCreateServer, e);
        }
    }
}

From source file:com.aptana.preview.ui.properties.PreviewSettingComposite.java

License:Open Source License

/**
 * Update the servers content.//www.ja  v  a  2  s .  c  o  m
 * 
 * @param async
 *            An indication that the UI part of this update should be done asynchronously.
 */
private void updateServersContent(boolean async) {
    final List<IServer> servers = new ArrayList<IServer>();
    servers.add(getBuiltInServer());
    servers.addAll(WebServerCorePlugin.getDefault().getServerManager().getServers());
    Runnable runnable = new Runnable() {
        public void run() {
            ISelection selection = fServersCombo.getSelection();
            fServersCombo.setInput(servers);
            // keeps the selection if there was one
            fServersCombo.setSelection(selection);
            if (fServersCombo.getSelection().isEmpty()) {
                fServersCombo.setSelection(new StructuredSelection(servers.get(0)));
            }
        }
    };
    if (async) {
        UIUtils.getDisplay().asyncExec(runnable);
    } else {
        UIUtils.getDisplay().syncExec(runnable);
    }
}

From source file:com.aptana.projects.internal.wizards.ProjectTemplateSelectionPage.java

License:Open Source License

public void createControl(Composite parent) {
    defaultTemplateImage = wizardDesc.createImage();
    parent.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent e) {
            if (defaultTemplateImage != null) {
                defaultTemplateImage.dispose();
                defaultTemplateImage = null;
            }/*from  www .j a  v  a  2  s. co m*/
            for (Image image : templateImages.values()) {
                if (!image.isDisposed()) {
                    image.dispose();
                }
            }
            templateImages = null;
        }
    });

    Composite main = new Composite(parent, SWT.NONE);
    main.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 10).create());
    main.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    stepIndicatorComposite = new StepIndicatorComposite(main, stepNames);
    stepIndicatorComposite.setSelection(getStepName());

    Label label = new Label(main, SWT.NONE);
    label.setText(Messages.ProjectTemplateSelectionPage_AvailableTemplates_TXT);
    label.setLayoutData(GridDataFactory.swtDefaults().create());

    SashForm sashForm = new SashForm(main, SWT.HORIZONTAL);
    sashForm.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    fTemplateSelectionViewer = new TableViewer(sashForm, SWT.BORDER);
    fTemplateSelectionViewer.setContentProvider(new ListContentProvider());
    fTemplateSelectionViewer.setLabelProvider(new ListLabelProvider());
    fTemplateSelectionViewer.setInput(fTemplates);
    fTemplateSelectionViewer.addSelectionChangedListener(this);

    fPreviewText = new Label(sashForm, SWT.WRAP | SWT.READ_ONLY);

    // auto-selects the first one
    if (!ArrayUtil.isEmpty(fTemplates)) {
        fTemplateSelectionViewer.setSelection(new StructuredSelection(fTemplates[0]));
        setSelectedTemplate(fTemplates[0]);
    }

    Dialog.applyDialogFont(main);
    setControl(main);
}

From source file:com.aptana.projects.wizards.ProjectTemplateSelectionPage.java

License:Open Source License

private void setSelectedTag(String tag) {
    tagsListViewer.removeSelectionChangedListener(tagSelectionChangedListener);
    tagsListViewer.setSelection(new StructuredSelection(tag));
    tagsListViewer.addSelectionChangedListener(tagSelectionChangedListener);
    // re-construct the list of templates shown on the right
    Control[] children = templatesListComposite.getChildren();
    for (Control templateControl : children) {
        templateControl.dispose();//from w w  w.jav a  2 s .c  om
    }
    templateControlMap.clear();

    List<IProjectTemplate> templates = templateTagsMap.get(tag);
    Color background = templatesListComposite.getBackground();
    for (IProjectTemplate template : templates) {
        final Composite templateControl = new Composite(templatesListComposite, SWT.NONE);
        templateControl.setLayout(GridLayoutFactory.fillDefaults().extendedMargins(0, 0, 5, 5).create());
        templateControl.setLayoutData(RowDataFactory.swtDefaults().hint(95, SWT.DEFAULT).create());
        templateControl.setBackground(background);

        Label image = new Label(templateControl, SWT.CENTER);
        image.setImage(getImage(template));
        image.setBackground(background);
        image.setLayoutData(
                GridDataFactory.fillDefaults().grab(true, false).align(SWT.CENTER, SWT.CENTER).create());
        Label text = new Label(templateControl, SWT.CENTER | SWT.WRAP);
        text.setText(template.getDisplayName());
        text.setBackground(background);
        text.setLayoutData(
                GridDataFactory.fillDefaults().grab(true, true).align(SWT.CENTER, SWT.BEGINNING).create());

        MouseAdapter mouseAdapter = new MouseAdapter() {

            @Override
            public void mouseDown(MouseEvent e) {
                setSelectedTemplate(templateControlMap.get(templateControl));
            }

            @Override
            public void mouseDoubleClick(MouseEvent e) {
                // Treat double-click like selecting the template and clicking "Next"
                if (canFlipToNextPage()) {
                    getContainer().showPage(getNextPage());
                }
            }
        };
        templateControl.addMouseListener(mouseAdapter);
        image.addMouseListener(mouseAdapter);
        text.addMouseListener(mouseAdapter);

        templateControlMap.put(templateControl, template);
    }
    templatesListComposite.layout(true, true);
}

From source file:com.aptana.ui.dialogs.InputMessageDialog.java

License:Open Source License

private void createInput(Composite composite) {
    new Label(composite, SWT.NONE);
    Composite parent = new Composite(composite, SWT.NONE);
    parent.setLayout(GridLayoutFactory.fillDefaults().margins(0, 0).numColumns(2).create());
    Label label = new Label(parent, SWT.NONE);
    label.setText(dialogMessage);/*from w  w w  .  ja  va 2  s  .  co  m*/
    GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, false).hint(SWT.DEFAULT, 25)
            .applyTo(label);

    Composite valueComp = new Composite(parent, SWT.NONE);
    valueComp.setLayout(new FillLayout(SWT.HORIZONTAL));

    if (INPUT.equals(inputType) || PASSWORD.equals(inputType)) {
        int flags = SWT.BORDER;
        if (PASSWORD.equals(inputType)) {
            flags |= SWT.PASSWORD;
        }
        Text t = new Text(valueComp, flags);
        input.add(t);
        GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false)
                .hint(convertHorizontalDLUsToPixels(160), 25).applyTo(valueComp);
    } else if (CHECKBOX.equals(inputType)) {
        for (JsonNode value : values) {
            Button b = new Button(valueComp, SWT.CHECK);
            b.setText(value.asText());
            input.add(b);
        }
        GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(valueComp);
    } else if (LIST.equals(inputType)) {
        Combo l = new Combo(valueComp, SWT.NONE);
        ComboViewer combo = new ComboViewer(l);
        input.add(combo);
        combo.setContentProvider(new ArrayContentProvider() {
            @Override
            public Object[] getElements(Object inputElement) {
                if (inputElement instanceof ArrayNode) {
                    ArrayNode arrayNode = (ArrayNode) inputElement;
                    JsonNode[] names = new JsonNode[arrayNode.size()];
                    int i = 0;
                    for (JsonNode node : arrayNode) {
                        names[i++] = node;
                    }
                    return names;
                }
                return super.getElements(inputElement);
            }
        });
        combo.setInput(values);

        combo.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                if (element instanceof ObjectNode) {
                    String name = ((ObjectNode) element).path(NAME).asText();
                    if (StringUtil.isEmpty(name)) {
                        return ((ObjectNode) element).asText();
                    }
                    return name;
                } else if (element instanceof JsonNode) {
                    return ((JsonNode) element).asText();
                }
                return element.toString();
            }
        });
        combo.setSelection(new StructuredSelection(values.get(0)));
        GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(valueComp);
    }
}

From source file:com.aptana.ui.dialogs.MultipleInputMessageDialog.java

License:Open Source License

private void createInput(Composite composite) {
    for (JsonNode question : questionsNode) {
        List<Object> input = new ArrayList<Object>(1);

        new Label(composite, SWT.NONE);
        Composite parent = new Composite(composite, SWT.NONE);
        parent.setLayout(/* w  w w  .jav a  2 s . c om*/
                GridLayoutFactory.fillDefaults().margins(0, 0).numColumns(2).equalWidth(false).create());
        Label label = new Label(parent, SWT.NONE);
        String lblTxt = question.path(MESSAGE).asText();
        label.setText(lblTxt);
        Point requiredSize = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
        int minSize = convertHorizontalDLUsToPixels(80);
        if (requiredSize.x > minSize) {
            minSize = requiredSize.x;
        }
        GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, false)
                .hint(minSize, SWT.DEFAULT).applyTo(label);

        Composite valueComp = new Composite(parent, SWT.NONE);
        valueComp.setLayout(new FillLayout(SWT.HORIZONTAL));
        JsonNode choices = question.path(CHOICES);
        ArrayNode values = JsonNodeFactory.instance.arrayNode();
        if (!choices.isArray()) {
            values.add(choices);
        } else {
            values = (ArrayNode) choices;
        }
        String inputType = question.path(TYPE).asText();
        String responseKey = question.path(NAME).asText();

        if (INPUT.equals(inputType) || PASSWORD.equals(inputType)) {
            int flags = SWT.BORDER;
            if (PASSWORD.equals(inputType)) {
                flags |= SWT.PASSWORD;
            }
            Text t = new Text(valueComp, flags);
            input.add(t);

            GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false)
                    .hint(convertHorizontalDLUsToPixels(160), 25).applyTo(valueComp);
        } else if (CHECKBOX.equals(inputType)) {
            for (JsonNode value : values) {
                Button b = new Button(valueComp, SWT.CHECK);
                b.setText(value.asText());
                input.add(b);
            }
            GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(valueComp);
        } else if (LIST.equals(inputType)) {
            Combo l = new Combo(valueComp, SWT.READ_ONLY);
            ComboViewer combo = new ComboViewer(l);
            input.add(combo);
            combo.setContentProvider(new ArrayContentProvider() {
                @Override
                public Object[] getElements(Object inputElement) {
                    if (inputElement instanceof ArrayNode) {
                        ArrayNode arrayNode = (ArrayNode) inputElement;
                        JsonNode[] names = new JsonNode[arrayNode.size()];
                        int i = 0;
                        for (JsonNode node : arrayNode) {
                            names[i++] = node;
                        }
                        return names;
                    }
                    return super.getElements(inputElement);
                }
            });
            combo.setInput(values);
            combo.setLabelProvider(new LabelProvider() {
                @Override
                public String getText(Object element) {
                    if (element instanceof ObjectNode) {
                        String name = ((ObjectNode) element).path(NAME).asText();
                        if (StringUtil.isEmpty(name)) {
                            return ((ObjectNode) element).asText();
                        }
                        return name;
                    } else if (element instanceof JsonNode) {
                        return ((JsonNode) element).asText();
                    }
                    return element.toString();
                }
            });
            JsonNode defaultValue = question.path(DEFAULT);
            if (defaultValue != null && values instanceof ArrayNode) {
                ArrayNode arrayNode = (ArrayNode) values;
                for (JsonNode node : arrayNode) {
                    if (ObjectUtil.areEqual(node.get(VALUE).textValue(), defaultValue.textValue())) {
                        combo.setSelection(new StructuredSelection(node));
                        break;
                    }
                }
            } else {
                combo.setSelection(new StructuredSelection(values.get(0)));
            }
            GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(valueComp);
        } else if (CONFIRMATION.equals(inputType)) {
            input.add(Boolean.TRUE);
            setButtonLabels(new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL });//TISTUD-7408
        }

        userInput.putPOJO(responseKey, input);

    }
}

From source file:com.aptana.ui.properties.ProjectNaturesPage.java

License:Open Source License

/**
 * Ask to reset the project (e.g. Close and Open) to apply the changes.
 *///w w  w .  j  av  a2s.  co  m
protected void resetProject() {
    boolean reset = MessageDialog.openQuestion(getControl().getShell(),
            EplMessages.ProjectNaturesPage_ResetTitle, EplMessages.ProjectNaturesPage_ResetMessage);
    if (reset) {
        // close the project
        IRunnableWithProgress close = new IRunnableWithProgress() {

            public void run(final IProgressMonitor monitor) throws InvocationTargetException {
                // use the CloseResourceAction to provide a file saving
                // dialog in case the project has some unsaved
                // files
                UIJob job = new UIJob(EplMessages.ProjectNaturesPage_CloseProjectJob_Title + "...") //$NON-NLS-1$
                {
                    @Override
                    public IStatus runInUIThread(IProgressMonitor monitor) {
                        CloseResourceAction closeAction = new CloseResourceAction(new IShellProvider() {
                            public Shell getShell() {
                                return Display.getDefault().getActiveShell();
                            }
                        });
                        closeAction.selectionChanged(new StructuredSelection(new Object[] { fProject }));
                        closeAction.run();
                        monitor.done();
                        return Status.OK_STATUS;
                    }
                };
                job.schedule();
                try {
                    job.join();
                } catch (InterruptedException e) {
                    // ignore
                }
                monitor.done();
            }
        };
        try {
            new ProgressMonitorJobsDialog(getControl().getShell()).run(true, true, close);
        } catch (InterruptedException e) {
            // ignore
        } catch (InvocationTargetException e) {
            IdeLog.logError(UIEplPlugin.getDefault(), EplMessages.ProjectNaturesPage_ERR_CloseProject, e);
        }

        // re-open the project
        IRunnableWithProgress open = new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException {
                try {
                    fProject.open(monitor);
                } catch (CoreException e) {
                    throw new InvocationTargetException(e);
                }
            }
        };
        try {
            new ProgressMonitorJobsDialog(getControl().getShell()).run(true, true, open);
        } catch (InterruptedException e) {
            // ignore
        } catch (InvocationTargetException e) {
            IdeLog.logError(UIEplPlugin.getDefault(), EplMessages.ProjectNaturesPage_ERR_OpenProject, e);
        }
    }
}

From source file:com.aptana.ui.widgets.CListTable.java

License:Open Source License

/**
 * @param parent/* ww w .  j av  a 2s  .  c  o  m*/
 *            the parent composite
 * @param style
 *            the style bits
 */
public CListTable(Composite parent, int style) {
    super(parent, style);
    items = new ArrayList<Object>();
    listeners = new ArrayList<Listener>();

    setLayout(GridLayoutFactory.fillDefaults().create());

    descriptionLabel = new Label(this, SWT.WRAP);
    descriptionLabel.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    Composite buttons = new Composite(this, SWT.NONE);
    buttons.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());
    buttons.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    addButton = new Button(buttons, SWT.PUSH);
    addButton.setToolTipText(StringUtil.ellipsify(CoreStrings.ADD));
    addButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            boolean itemAdded = false;
            Object newItem = null;
            for (Listener listener : listeners) {
                newItem = listener.addItem();
                if (newItem != null) {
                    items.add(newItem);
                    itemAdded = true;
                }
            }
            if (itemAdded) {
                tableViewer.refresh();
                tableViewer.setSelection(new StructuredSelection(newItem));
                for (Listener listener : listeners) {
                    listener.itemsChanged(getItems());
                }
            }
        }
    });
    addButton.setImage(SWTUtils.getImage(UIPlugin.getDefault(), "/icons/add.gif")); //$NON-NLS-1$

    editButton = new Button(buttons, SWT.PUSH);
    editButton.setToolTipText(StringUtil.ellipsify(CoreStrings.EDIT));
    editButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            if (!selection.isEmpty()) {
                Object element = selection.getFirstElement();
                items.remove(element);
                Object newElement = null;
                boolean changed = false;
                for (Listener listener : listeners) {
                    newElement = listener.editItem(element);
                    if (newElement != null) {
                        items.add(newElement);
                        changed = true;
                    }
                }
                if (changed) {
                    tableViewer.refresh();
                    tableViewer.setSelection(new StructuredSelection(newElement));
                    for (Listener listener : listeners) {
                        listener.itemsChanged(getItems());
                    }
                }
            }
        }

    });
    editButton.setImage(SWTUtils.getImage(UIPlugin.getDefault(), "/icons/edit.png")); //$NON-NLS-1$

    removeButton = new Button(buttons, SWT.PUSH);
    removeButton.setToolTipText(CoreStrings.REMOVE);
    removeButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            Object[] elements = selection.toArray();
            for (Object element : elements) {
                items.remove(element);
            }
            tableViewer.refresh();
            updateStates();
            for (Listener listener : listeners) {
                listener.itemsChanged(getItems());
            }
        }
    });
    removeButton.setImage(SWTUtils.getImage(UIPlugin.getDefault(), "/icons/delete.gif")); //$NON-NLS-1$

    createTable(this);
}

From source file:com.aptana.workbench.hyperlink.EditorLineHyperlink.java

License:Open Source License

protected void openDirectory(IWorkbenchPage page, IFileStore store) throws CoreException {
    URI uri = store.toURI();//from ww w.  j  a  v  a2 s.  c  o  m
    if (!SCHEME_FILE.equals(uri.getScheme())) {
        return;
    }
    File file = store.toLocalFile(EFS.NONE, new NullProgressMonitor());
    IContainer container = ResourcesPlugin.getWorkspace().getRoot()
            .getContainerForLocation(Path.fromOSString(file.getAbsolutePath()));
    if (container == null) {
        // If this is an external directory, open it in the "finder" - OpenInFinderHandler.open(uri)
        IHandlerService service = (IHandlerService) page.getActivePart().getSite()
                .getService(IHandlerService.class);
        ICommandService commandService = (ICommandService) page.getActivePart().getSite()
                .getService(ICommandService.class);
        Command command = commandService.getCommand(IUIConstants.OPEN_IN_OS_FILE_MANAGER_ID);
        ParameterizedCommand pc = ParameterizedCommand.generateCommand(command, null);
        List<Object> list = new ArrayList<Object>();
        list.add(store);
        IEvaluationContext context = new EvaluationContext(service.getCurrentState(), list);
        context.addVariable(ISources.SHOW_IN_SELECTION, new StructuredSelection(list));
        try {
            service.executeCommandInContext(pc, null, context);
        } catch (Exception e) {
            // ignore
        }
        return;
    }
    // Select in the App Explorer
    IViewReference[] viewRefs = page.getViewReferences();
    for (IViewReference ref : viewRefs) {
        if (IExplorerUIConstants.VIEW_ID.equals(ref.getId())) {
            IViewPart part = (IViewPart) ref.getPart(false);
            if (part != null && part instanceof ISetSelectionTarget) {
                // Select the directory!
                ISetSelectionTarget target = (ISetSelectionTarget) part;
                target.selectReveal(new StructuredSelection(container));
            }
            // Also expand it, if possible
            if (part != null && part instanceof CommonNavigator) {
                CommonNavigator navigator = (CommonNavigator) part;
                AbstractTreeViewer treeViewer = navigator.getCommonViewer();
                treeViewer.expandToLevel(container, 1);
            }
        }
    }
}