Example usage for org.eclipse.jface.viewers IStructuredSelection isEmpty

List of usage examples for org.eclipse.jface.viewers IStructuredSelection isEmpty

Introduction

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

Prototype

public boolean isEmpty();

Source Link

Document

Returns whether this selection is empty.

Usage

From source file:com.siteview.mde.internal.ui.editor.product.FeatureSection.java

License:Open Source License

private void handleOpen(IStructuredSelection selection) {
    if (!selection.isEmpty()) {
        IProductFeature feature = (IProductFeature) selection.getFirstElement();
        FeatureModelManager manager = MDECore.getDefault().getFeatureModelManager();
        IFeatureModel model = manager.findFeatureModel(feature.getId(), feature.getVersion());
        FeatureEditor.openFeatureEditor(model);
    }/*from  w w w . j  a  va  2s  . c  om*/
}

From source file:com.siteview.mde.internal.ui.editor.product.PluginConfigurationSection.java

License:Open Source License

private void showControls() {
    // Clean up any previous editor control
    clearEditors();/*from   ww w .jav  a2s .  c o  m*/

    // Identify the selected row
    Table table = fConfigurationsTable.getTable();
    IStructuredSelection selection = (IStructuredSelection) fConfigurationsTable.getSelection();
    if (selection.isEmpty())
        return;
    final TableItem item = table.getSelection()[0];
    if (item != null && !isEditable())
        return;

    if (item != null) {
        final IPluginConfiguration ppc = (IPluginConfiguration) selection.getFirstElement();
        final Spinner spinner = new Spinner(table, SWT.BORDER);

        spinner.setMinimum(0);
        String level = item.getText(1);
        int defaultLevel = level.length() == 0 || "default".equals(level) ? 0 : Integer.parseInt(level); //$NON-NLS-1$
        spinner.setSelection(defaultLevel);
        spinner.addModifyListener(new ModifyListener() {
            public void modifyText(ModifyEvent e) {
                int selection = spinner.getSelection();
                item.setText(1, selection == 0 ? "default" //$NON-NLS-1$
                        : Integer.toString(selection));
                ppc.setStartLevel(selection);
            }
        });
        fLevelColumnEditor.setEditor(spinner, item, 1);

        final CCombo combo = new CCombo(table, SWT.BORDER | SWT.READ_ONLY);
        //TODO is there need for the default options ??
        combo.setItems(new String[] { Boolean.toString(true), Boolean.toString(false) });
        combo.setText(item.getText(2));
        combo.pack();
        combo.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                item.setText(2, combo.getText());
                ppc.setAutoStart(Boolean.valueOf(combo.getText()).booleanValue());
            }
        });
        fAutoColumnEditor.setEditor(combo, item, 2);
    }
}

From source file:com.siteview.mde.internal.ui.editor.site.CategorySection.java

License:Open Source License

public void createClient(Section section, FormToolkit toolkit) {
    fModel = (ISiteModel) getPage().getModel();
    fModel.addModelChangedListener(this);

    Composite container = createClientContainer(section, 2, toolkit);
    createViewerPartControl(container, SWT.MULTI, 2, toolkit);
    fCategoryTreePart = getTreePart();/*w w  w .j  a  v  a 2 s. co m*/
    fCategoryViewer = fCategoryTreePart.getTreeViewer();
    fCategoryViewer.setContentProvider(new CategoryContentProvider());
    fSiteLabelProvider = new SiteLabelProvider();
    fCategoryViewer.setLabelProvider(fSiteLabelProvider);

    fCategoryViewer.setInput(fModel.getSite());
    int ops = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_DEFAULT;
    Transfer[] transfers = new Transfer[] { ModelDataTransfer.getInstance() };
    if (isEditable()) {
        fCategoryViewer.addDropSupport(ops, transfers, new ViewerDropAdapter(fCategoryViewer) {
            public void dragEnter(DropTargetEvent event) {
                Object target = determineTarget(event);
                if (target == null && event.detail == DND.DROP_COPY) {
                    event.detail = DND.DROP_MOVE;
                }
                super.dragEnter(event);
            }

            /*
             * (non-Javadoc)
             * 
             * @see org.eclipse.jface.viewers.ViewerDropAdapter#dragOperationChanged(org.eclipse.swt.dnd.DropTargetEvent)
             */
            public void dragOperationChanged(DropTargetEvent event) {
                Object target = determineTarget(event);
                if (target == null && event.detail == DND.DROP_COPY) {
                    event.detail = DND.DROP_MOVE;
                }
                super.dragOperationChanged(event);
            }

            /*
             * (non-Javadoc)
             * 
             * @see org.eclipse.jface.viewers.ViewerDropAdapter#dragOver(org.eclipse.swt.dnd.DropTargetEvent)
             */
            public void dragOver(DropTargetEvent event) {
                Object target = determineTarget(event);
                if (target == null && event.detail == DND.DROP_COPY) {
                    event.detail = DND.DROP_MOVE;
                }
                super.dragOver(event);
            }

            /**
             * Returns the position of the given event's coordinates
             * relative to its target. The position is determined to
             * be before, after, or on the item, based on some
             * threshold value.
             * 
             * @param event
             *            the event
             * @return one of the <code>LOCATION_* </code>
             *         constants defined in this class
             */
            protected int determineLocation(DropTargetEvent event) {
                if (!(event.item instanceof Item)) {
                    return LOCATION_NONE;
                }
                Item item = (Item) event.item;
                Point coordinates = new Point(event.x, event.y);
                coordinates = getViewer().getControl().toControl(coordinates);
                if (item != null) {
                    Rectangle bounds = getBounds(item);
                    if (bounds == null) {
                        return LOCATION_NONE;
                    }
                }
                return LOCATION_ON;
            }

            public boolean performDrop(Object data) {
                if (!(data instanceof Object[]))
                    return false;
                Object target = getCurrentTarget();

                int op = getCurrentOperation();
                Object[] objects = (Object[]) data;
                if (objects.length > 0 && objects[0] instanceof SiteFeatureAdapter) {
                    if (op == DND.DROP_COPY && target != null) {
                        copyFeature((SiteFeatureAdapter) objects[0], target);
                    } else {
                        moveFeature((SiteFeatureAdapter) objects[0], target);
                    }
                    return true;
                }
                return false;
            }

            public boolean validateDrop(Object target, int operation, TransferData transferType) {
                return (target instanceof ISiteCategoryDefinition || target == null);
            }

        });
    }

    fCategoryViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, transfers, new DragSourceListener() {
        public void dragStart(DragSourceEvent event) {
            IStructuredSelection ssel = (IStructuredSelection) fCategoryViewer.getSelection();
            if (ssel == null || ssel.isEmpty() || !(ssel.getFirstElement() instanceof SiteFeatureAdapter)) {
                event.doit = false;
            }
        }

        public void dragSetData(DragSourceEvent event) {
            IStructuredSelection ssel = (IStructuredSelection) fCategoryViewer.getSelection();
            event.data = ssel.toArray();
        }

        public void dragFinished(DragSourceEvent event) {
        }
    });

    fCategoryTreePart.setButtonEnabled(BUTTON_ADD_CATEGORY, isEditable());
    fCategoryTreePart.setButtonEnabled(BUTTON_ADD_FEATURE, isEditable());
    fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_FEATURE, isEditable());
    fCategoryTreePart.setButtonEnabled(BUTTON_BUILD_ALL, isEditable());

    // fCategoryViewer.expandAll();
    toolkit.paintBordersFor(container);
    section.setClient(container);
    initialize();
}

From source file:com.siteview.mde.internal.ui.editor.site.CategorySection.java

License:Open Source License

private ISiteFeature[] getFeaturesFromSelection(IStructuredSelection sel) {
    if (sel.isEmpty())
        return new ISiteFeature[0];
    if (cachedSelection == sel)
        return cachedFeatures;
    cachedSelection = sel;//from  ww  w  .  j av  a  2  s  . c o  m
    ArrayList features = new ArrayList(sel.size());
    Iterator iterator = sel.iterator();
    while (iterator.hasNext()) {
        Object next = iterator.next();
        if (next instanceof SiteFeatureAdapter) {
            if ((((SiteFeatureAdapter) next).feature) != null) {
                features.add(((SiteFeatureAdapter) next).feature);
            }
        }
    }
    cachedFeatures = (ISiteFeature[]) features.toArray(new ISiteFeature[features.size()]);
    return cachedFeatures;
}

From source file:com.siteview.mde.internal.ui.launcher.TracingBlock.java

License:Open Source License

public void createControl(Composite parent) {
    fTracingCheck = new Button(parent, SWT.CHECK);
    fTracingCheck.setText(MDEUIMessages.TracingLauncherTab_tracing);
    fTracingCheck.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    fTracingCheck.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            masterCheckChanged(true);//ww w . j av a 2s. c  o m
            fTab.updateLaunchConfigurationDialog();
            if (fTracingCheck.getSelection()) {
                IStructuredSelection selection = (IStructuredSelection) fPluginViewer.getSelection();
                if (!selection.isEmpty()) {
                    pluginSelected((IMonitorModelBase) selection.getFirstElement(),
                            fPluginViewer.getChecked(selection.getFirstElement()));
                }
            }
        }
    });

    createSashSection(parent);
    createButtonSection(parent);
}

From source file:com.siteview.mde.internal.ui.preferences.TargetPlatformPreferencePage.java

License:Open Source License

private void handleReload() {
    IStructuredSelection selection = (IStructuredSelection) fTableViewer.getSelection();
    if (!selection.isEmpty()) {
        isOutOfSynch = false;//from w w  w. j a v a2 s  . co m
        ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell()) {
            protected void configureShell(Shell shell) {
                super.configureShell(shell);
                shell.setText(MDEUIMessages.TargetPlatformPreferencePage2_12);
            }
        };
        try {
            dialog.run(true, true, new IRunnableWithProgress() {
                public void run(IProgressMonitor monitor)
                        throws InvocationTargetException, InterruptedException {
                    if (monitor.isCanceled()) {
                        throw new InterruptedException();
                    }
                    // Resolve the target
                    fActiveTarget.resolve(monitor);
                    if (monitor.isCanceled()) {
                        throw new InterruptedException();
                    }
                }
            });
        } catch (InvocationTargetException e) {
            MDEPlugin.log(e);
            setErrorMessage(e.getMessage());
        } catch (InterruptedException e) {
            // Do nothing, resolve will happen when user presses ok
        }

        if (fActiveTarget.isResolved()) {
            // Check if the bundle resolution has errors
            IStatus bundleStatus = fActiveTarget.getBundleStatus();
            if (bundleStatus.getSeverity() == IStatus.ERROR) {
                ErrorDialog.openError(getShell(), MDEUIMessages.TargetPlatformPreferencePage2_14,
                        MDEUIMessages.TargetPlatformPreferencePage2_15, bundleStatus, IStatus.ERROR);
            }

            // Compare the target to the existing platform
            try {
                if (bundleStatus.getSeverity() != IStatus.ERROR && fActiveTarget.getHandle().equals(fPrevious)
                        && ((TargetDefinition) fPrevious.getTargetDefinition())
                                .isContentEquivalent(fActiveTarget)) {
                    IStatus compare = getTargetService().compareWithTargetPlatform(fActiveTarget);
                    if (!compare.isOK()) {
                        MessageDialog.openInformation(getShell(),
                                MDEUIMessages.TargetPlatformPreferencePage2_17,
                                MDEUIMessages.TargetPlatformPreferencePage2_18);
                        isOutOfSynch = true;
                    }
                }
            } catch (CoreException e) {
                MDEPlugin.log(e);
                setErrorMessage(e.getMessage());
            }
        }
        fTableViewer.refresh(true);
    }
}

From source file:com.siteview.mde.internal.ui.preferences.TargetPlatformPreferencePage.java

License:Open Source License

/**
 * Removes the selected targets/*from  ww  w. j a va  2s  .  c om*/
 */
private void handleRemove() {
    IStructuredSelection selection = (IStructuredSelection) fTableViewer.getSelection();
    if (!selection.isEmpty()) {
        List selected = selection.toList();

        // If we are going to remove a workspace file, prompt to ask the user first
        boolean isWorkspace = false;
        for (Iterator iterator = selected.iterator(); iterator.hasNext();) {
            ITargetDefinition currentTarget = (ITargetDefinition) iterator.next();
            if (currentTarget.getHandle() instanceof WorkspaceFileTargetHandle) {
                isWorkspace = true;
                break;
            }
        }
        if (isWorkspace) {
            MDEPreferencesManager preferences = new MDEPreferencesManager(IMDEUIConstants.PLUGIN_ID);
            String choice = preferences.getString(IPreferenceConstants.PROP_PROMPT_REMOVE_TARGET);
            if (!MessageDialogWithToggle.ALWAYS.equalsIgnoreCase(choice)) {
                MessageDialogWithToggle dialog = MessageDialogWithToggle.openYesNoQuestion(getShell(),
                        MDEUIMessages.TargetPlatformPreferencePage2_19,
                        MDEUIMessages.TargetPlatformPreferencePage2_20,
                        MDEUIMessages.TargetPlatformPreferencePage2_21, false,
                        MDEPlugin.getDefault().getPreferenceStore(),
                        IPreferenceConstants.PROP_PROMPT_REMOVE_TARGET);
                preferences.savePluginPreferences();
                if (dialog.getReturnCode() != IDialogConstants.YES_ID) {
                    return;
                }
            }
        }

        if (fActiveTarget != null && selected.contains(fActiveTarget)) {
            fActiveTarget = null;
            setMessage(MDEUIMessages.TargetPlatformPreferencePage2_22, IMessageProvider.INFORMATION);
        }
        fRemoved.addAll(selected);
        fTargets.removeAll(selected);
        // Quick hack because the first refresh loses the checkedState, which is being used to bold the active target
        fTableViewer.refresh(false);
        fTableViewer.refresh(true);
    }
}

From source file:com.siteview.mde.internal.ui.shared.target.AddBundleContainerSelectionPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite comp = SWTFactory.createComposite(parent, 1, 1, GridData.FILL_BOTH, 0, 0);

    SashForm sashForm = new SashForm(comp, SWT.VERTICAL);
    GridData gd = new GridData(GridData.FILL_BOTH);
    // limit the width of the sash form to avoid the wizard opening very wide.
    gd.widthHint = 300;/* ww w.jav a  2s  . co  m*/
    sashForm.setLayoutData(gd);
    sashForm.setFont(comp.getFont());

    TableViewer wizardSelectionViewer = new TableViewer(sashForm, SWT.BORDER);
    wizardSelectionViewer.setContentProvider(new ArrayContentProvider());
    wizardSelectionViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof AbstractBundleContainerNode) {
                return ((AbstractBundleContainerNode) element).getName();
            }
            return super.getText(element);
        }

        public Image getImage(Object element) {
            if (element instanceof AbstractBundleContainerNode) {
                return ((AbstractBundleContainerNode) element).getImage();
            }
            return super.getImage(element);
        }
    });
    wizardSelectionViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (!selection.isEmpty()) {
                setSelectedNode((IWizardNode) selection.getFirstElement());
                getContainer().showPage(getNextPage());
            }
        }
    });
    wizardSelectionViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (!selection.isEmpty()) {
                fDescription
                        .setText(((AbstractBundleContainerNode) selection.getFirstElement()).getDescription());
                setSelectedNode((AbstractBundleContainerNode) selection.getFirstElement());
            }
        }
    });
    wizardSelectionViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
    wizardSelectionViewer.getTable().setFont(sashForm.getFont());

    fDescription = SWTFactory.createText(sashForm, SWT.READ_ONLY | SWT.BORDER | SWT.MULTI | SWT.WRAP, 1);

    sashForm.setWeights(new int[] { 70, 30 });
    initViewerContents(wizardSelectionViewer);
    setControl(comp);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IHelpContextIds.ADD_LOCATION_WIZARD);
}

From source file:com.siteview.mde.internal.ui.shared.target.TargetLocationsGroup.java

License:Open Source License

private void handleEdit() {
    IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection();
    if (!selection.isEmpty()) {
        Object selected = selection.getFirstElement();
        IBundleContainer oldContainer = null;
        if (selected instanceof IBundleContainer) {
            oldContainer = (IBundleContainer) selected;
        } else if (selected instanceof IUWrapper) {
            oldContainer = ((IUWrapper) selected).getParent();
        } else if (selected instanceof IResolvedBundle) {
            TreeItem[] treeSelection = fTreeViewer.getTree().getSelection();
            if (treeSelection.length > 0) {
                Object parent = treeSelection[0].getParentItem().getData();
                if (parent instanceof IBundleContainer) {
                    oldContainer = (IBundleContainer) parent;
                }/*w  w w. ja  va  2  s .c  o  m*/
            }
        }
        if (oldContainer != null) {
            Shell parent = fTreeViewer.getTree().getShell();
            EditBundleContainerWizard wizard = new EditBundleContainerWizard(fTarget, oldContainer);
            WizardDialog dialog = new WizardDialog(parent, wizard);
            if (dialog.open() == Window.OK) {
                // Replace the old container with the new one
                IBundleContainer newContainer = wizard.getBundleContainer();
                if (newContainer != null) {
                    IBundleContainer[] containers = fTarget.getBundleContainers();
                    java.util.List newContainers = new ArrayList(containers.length);
                    for (int i = 0; i < containers.length; i++) {
                        if (!containers[i].equals(oldContainer)) {
                            newContainers.add(containers[i]);
                        }
                    }
                    newContainers.add(newContainer);
                    fTarget.setBundleContainers((IBundleContainer[]) newContainers
                            .toArray(new IBundleContainer[newContainers.size()]));

                    // Update the table
                    contentsChanged(false);
                    fTreeViewer.refresh();
                    updateButtons();
                    fTreeViewer.setSelection(new StructuredSelection(newContainer), true);
                }
            }
        }
    }
}

From source file:com.siteview.mde.internal.ui.shared.target.TargetLocationsGroup.java

License:Open Source License

private void handleRemove() {
    IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection();
    IBundleContainer[] containers = fTarget.getBundleContainers();
    if (!selection.isEmpty() && containers != null && containers.length > 0) {
        List toRemove = new ArrayList();
        boolean removedSite = false;
        boolean removedContainer = false;
        for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
            Object currentSelection = iterator.next();
            if (currentSelection instanceof IBundleContainer) {
                if (currentSelection instanceof IUBundleContainer) {
                    removedSite = true;/*from w  w  w .ja v  a2s .  c om*/
                }
                removedContainer = true;
                toRemove.add(currentSelection);
            }
            if (currentSelection instanceof IUWrapper) {
                toRemove.add(currentSelection);
            }
        }

        if (removedContainer) {
            Set newContainers = new HashSet();
            newContainers.addAll(Arrays.asList(fTarget.getBundleContainers()));
            newContainers.removeAll(toRemove);
            if (newContainers.size() > 0) {
                fTarget.setBundleContainers(
                        (IBundleContainer[]) newContainers.toArray(new IBundleContainer[newContainers.size()]));
            } else {
                fTarget.setBundleContainers(null);
            }

            // If we remove a site container, the content change update must force a re-resolve bug 275458 / bug 275401
            contentsChanged(removedSite);
            fTreeViewer.refresh(false);
            updateButtons();
        } else {
            for (Iterator iterator = toRemove.iterator(); iterator.hasNext();) {
                Object current = iterator.next();
                if (current instanceof IUWrapper) {
                    ((IUWrapper) current).getParent().removeInstallableUnit(((IUWrapper) current).getIU());
                }
            }
            contentsChanged(removedSite);
            fTreeViewer.refresh(true);
            updateButtons();
        }
    }
}