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

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

Introduction

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

Prototype

public int size();

Source Link

Document

Returns the number of elements selected in this selection.

Usage

From source file:com.amalto.workbench.editors.DataClusterBrowserMainPage.java

License:Open Source License

protected void hookContextMenu() {
    MenuManager menuMgr = new MenuManager();
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {

        public void menuAboutToShow(IMenuManager manager) {
            // ViewBrowserMainPage.this.fillContextMenu(manager);
            manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
            manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS,
                    new NewItemAction(getShell(), resultsViewer));
            IStructuredSelection selection = ((IStructuredSelection) resultsViewer.getSelection());
            if (exAdapter != null) {
                exAdapter.menuAboutToShow(manager, IWorkbenchActionConstants.MB_ADDITIONS, resultsViewer,
                        selection, getShell(), getXObject());
            }//from  w w w  . j  a v a 2  s.co  m
            if (selection.size() == 1) {
                manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS,
                        new EditItemAction(getShell(), resultsViewer));
            }
            if (selection.size() > 0) {
                manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS,
                        new PhysicalDeleteItemsAction(getShell(), resultsViewer));
                manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS,
                        new LogicalDeleteItemsAction(getShell(), resultsViewer));
                manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS,
                        new SubmitItemsAction(getShell(), resultsViewer));
            }
            // compare item with each other
            if (selection.size() == 2) {
                manager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS,
                        new CompareItemWithEachOtherAction(getShell(), resultsViewer));
            }
            // available models
            if (selection.size() == 1) {
                java.util.List<IAvailableModel> availablemodels = AvailableModelUtil.getAvailableModels();
                for (IAvailableModel model : availablemodels) {
                    model.menuAboutToShow(manager, DataClusterBrowserMainPage.this);
                }
            }
        }
    });
    Menu menu = menuMgr.createContextMenu(resultsViewer.getControl());
    resultsViewer.getControl().setMenu(menu);
    getSite().registerContextMenu(menuMgr, resultsViewer);
}

From source file:com.amazonaws.eclipse.explorer.DragAdapterAssistant.java

License:Apache License

@Override
public void dragStart(DragSourceEvent anEvent, IStructuredSelection aSelection) {

    anEvent.doit = aSelection.size() == 1 && aSelection.getFirstElement() instanceof S3ObjectSummary;

    /*/*w ww  . j  a v  a  2s  .  c  o  m*/
     * We need to make sure that our drag is treated *only* as a plugin
     * transfer, whereas the superclass defaults to treating all such events
     * as either LocalSelectionTransfer or PluginTransfer. In the case of
     * the former, the drag adapter for other views won't recognize the
     * object being dropped and so disallows it.
     */
    DragSource source = ((DragSource) anEvent.getSource());
    source.setTransfer(getSupportedTransferTypes());
    //printEvent(anEvent);
}

From source file:com.amazonaws.eclipse.explorer.s3.actions.S3ActionProvider.java

License:Apache License

@Override
public void fillContextMenu(IMenuManager menu) {
    IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();

    if (selection.size() == 1 && selection.toList().get(0) instanceof Bucket) {
        Bucket bucket = (Bucket) selection.toList().get(0);
        menu.add(new OpenBucketEditorAction(bucket.getName()));
        menu.add(new Separator());
    }//w  w  w.j ava2  s.com

    boolean onlyBucketsSelected = true;
    for (Object obj : selection.toList()) {
        if (obj instanceof Bucket == false) {
            onlyBucketsSelected = false;
            break;
        }
    }

    menu.add(new CreateBucketAction());

    if (onlyBucketsSelected) {
        menu.add(new DeleteBucketAction(selection.toList()));
    }
}

From source file:com.amitinside.e4.rcp.todo.parts.TodoDeletionPart.java

License:Apache License

@PostConstruct
public void createControls(Composite parent) {
    parent.setLayout(new GridLayout(2, false));
    viewer = new ComboViewer(parent, SWT.READ_ONLY);
    viewer.setLabelProvider(new LabelProvider() {
        @Override/*w ww .ja  v  a2 s . c  om*/
        public String getText(Object element) {
            Todo todo = (Todo) element;
            return todo.getSummary();
        }
    });
    viewer.setContentProvider(ArrayContentProvider.getInstance());

    List<Todo> todos = model.getTodos();
    updateViewer(todos);

    Button button = new Button(parent, SWT.PUSH);
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection selection = viewer.getSelection();
            IStructuredSelection sel = (IStructuredSelection) selection;
            if (sel.size() > 0) {
                selectionService.setSelection(sel.getFirstElement());
                // assure that "com.example.e4.rcp.todo.remove" is the ID
                // of the command which deletes todos in your application model
                ParameterizedCommand cmd = commandService.createCommand("com.example.e4.rcp.todo.remove", null);
                handlerService.executeHandler(cmd, ctx);
            }

        }
    });
    button.setText(messages.TodoDeletionPart_0);
}

From source file:com.android.ddmuilib.explorer.DeviceExplorer.java

License:Apache License

/**
 * Creates a control capable of displaying some information.  This is
 * called once, when the application is initializing, from the UI thread.
 *//* w w w  .j a v  a  2s.  c  om*/
@Override
protected Control createControl(Composite parent) {
    mParent = parent;
    parent.setLayout(new FillLayout());

    ImageLoader loader = ImageLoader.getDdmUiLibLoader();
    if (mFileImage == null) {
        mFileImage = loader.loadImage("file.png", mParent.getDisplay());
    }
    if (mFolderImage == null) {
        mFolderImage = loader.loadImage("folder.png", mParent.getDisplay());
    }
    if (mPackageImage == null) {
        mPackageImage = loader.loadImage("android.png", mParent.getDisplay());
    }
    if (mOtherImage == null) {
        // TODO: find a default image for other.
    }

    mTree = new Tree(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL);
    mTree.setHeaderVisible(true);

    IPreferenceStore store = DdmUiPreferences.getStore();

    // create columns
    TableHelper.createTreeColumn(mTree, "Name", SWT.LEFT, "0000drwxrwxrwx", COLUMN_NAME, store); //$NON-NLS-2$
    TableHelper.createTreeColumn(mTree, "Size", SWT.RIGHT, "000000", COLUMN_SIZE, store); //$NON-NLS-2$
    TableHelper.createTreeColumn(mTree, "Date", SWT.LEFT, "2007-08-14", COLUMN_DATE, store); //$NON-NLS-2$
    TableHelper.createTreeColumn(mTree, "Time", SWT.LEFT, "20:54", COLUMN_TIME, store); //$NON-NLS-2$
    TableHelper.createTreeColumn(mTree, "Permissions", SWT.LEFT, "drwxrwxrwx", COLUMN_PERMISSIONS, store); //$NON-NLS-2$
    TableHelper.createTreeColumn(mTree, "Info", SWT.LEFT, "drwxrwxrwx", COLUMN_INFO, store); //$NON-NLS-2$

    // create the jface wrapper
    mTreeViewer = new TreeViewer(mTree);

    // setup data provider
    mContentProvider = new DeviceContentProvider();
    mTreeViewer.setContentProvider(mContentProvider);
    mTreeViewer.setLabelProvider(new FileLabelProvider(mFileImage, mFolderImage, mPackageImage, mOtherImage));

    // setup a listener for selection
    mTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection sel = event.getSelection();
            if (sel.isEmpty()) {
                mPullAction.setEnabled(false);
                mPushAction.setEnabled(false);
                mDeleteAction.setEnabled(false);
                mCreateNewFolderAction.setEnabled(false);
                return;
            }
            if (sel instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) sel;
                Object element = selection.getFirstElement();
                if (element == null)
                    return;
                if (element instanceof FileEntry) {
                    mPullAction.setEnabled(true);
                    mPushAction.setEnabled(selection.size() == 1);
                    if (selection.size() == 1) {
                        FileEntry entry = (FileEntry) element;
                        setDeleteEnabledState(entry);
                        mCreateNewFolderAction.setEnabled(entry.isDirectory());
                    } else {
                        mDeleteAction.setEnabled(false);
                    }
                }
            }
        }
    });

    // add support for double click
    mTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            ISelection sel = event.getSelection();

            if (sel instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) sel;

                if (selection.size() == 1) {
                    FileEntry entry = (FileEntry) selection.getFirstElement();
                    String name = entry.getName();

                    FileEntry parentEntry = entry.getParent();

                    // can't really do anything with no parent
                    if (parentEntry == null) {
                        return;
                    }

                    // check this is a file like we want.
                    Matcher m = mKeyFilePattern.matcher(name);
                    if (m.matches()) {
                        // get the name w/o the extension
                        String baseName = m.group(1);

                        // add the data extension
                        String dataName = baseName + TRACE_DATA_EXT;

                        FileEntry dataEntry = parentEntry.findChild(dataName);

                        handleTraceDoubleClick(baseName, entry, dataEntry);

                    } else {
                        m = mDataFilePattern.matcher(name);
                        if (m.matches()) {
                            // get the name w/o the extension
                            String baseName = m.group(1);

                            // add the key extension
                            String keyName = baseName + TRACE_KEY_EXT;

                            FileEntry keyEntry = parentEntry.findChild(keyName);

                            handleTraceDoubleClick(baseName, keyEntry, entry);
                        }
                    }
                }
            }
        }
    });

    // setup drop listener
    mTreeViewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, new Transfer[] { FileTransfer.getInstance() },
            new ViewerDropAdapter(mTreeViewer) {
                @Override
                public boolean performDrop(Object data) {
                    // get the item on which we dropped the item(s)
                    FileEntry target = (FileEntry) getCurrentTarget();

                    // in case we drop at the same level as root
                    if (target == null) {
                        return false;
                    }

                    // if the target is not a directory, we get the parent directory
                    if (target.isDirectory() == false) {
                        target = target.getParent();
                    }

                    if (target == null) {
                        return false;
                    }

                    // get the list of files to drop
                    String[] files = (String[]) data;

                    // do the drop
                    pushFiles(files, target);

                    // we need to finish with a refresh
                    refresh(target);

                    return true;
                }

                @Override
                public boolean validateDrop(Object target, int operation, TransferData transferType) {
                    if (target == null) {
                        return false;
                    }

                    // convert to the real item
                    FileEntry targetEntry = (FileEntry) target;

                    // if the target is not a directory, we get the parent directory
                    if (targetEntry.isDirectory() == false) {
                        target = targetEntry.getParent();
                    }

                    if (target == null) {
                        return false;
                    }

                    return true;
                }
            });

    // create and start the refresh thread
    new Thread("Device Ls refresher") {
        @Override
        public void run() {
            while (true) {
                try {
                    sleep(FileListingService.REFRESH_RATE);
                } catch (InterruptedException e) {
                    return;
                }

                if (mTree != null && mTree.isDisposed() == false) {
                    Display display = mTree.getDisplay();
                    if (display.isDisposed() == false) {
                        display.asyncExec(new Runnable() {
                            @Override
                            public void run() {
                                if (mTree.isDisposed() == false) {
                                    mTreeViewer.refresh(true);
                                }
                            }
                        });
                    } else {
                        return;
                    }
                } else {
                    return;
                }
            }

        }
    }.start();

    return mTree;
}

From source file:com.android.ide.eclipse.adt.cdt.internal.actions.AddNativeAction.java

License:Open Source License

@Override
public void run(IAction action) {
    IProject project = null;//from  ww  w .j  ava2 s . co m
    if (selection != null && selection instanceof IStructuredSelection) {
        IStructuredSelection ss = (IStructuredSelection) selection;
        if (ss.size() == 1) {
            Object obj = ss.getFirstElement();
            if (obj instanceof IProject) {
                project = (IProject) obj;
            } else if (obj instanceof PlatformObject) {
                project = (IProject) ((PlatformObject) obj).getAdapter(IProject.class);
            }
        }
    }

    if (project != null) {
        AddNativeWizard wizard = new AddNativeWizard(project, part.getSite().getWorkbenchWindow());
        WizardDialog dialog = new WizardDialog(part.getSite().getShell(), wizard);
        dialog.open();
    }

}

From source file:com.android.ide.eclipse.adt.internal.ui.ResourceExplorerView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    mTree = new Tree(parent, SWT.SINGLE | SWT.VIRTUAL);
    mTree.setLayoutData(new GridData(GridData.FILL_BOTH));
    mTree.setHeaderVisible(true);/*w w  w .  ja va 2s  .c  o  m*/
    mTree.setLinesVisible(true);

    final IPreferenceStore store = AdtPlugin.getDefault().getPreferenceStore();

    // create 2 columns. The main one with the resources, and an "info" column.
    createTreeColumn(mTree, "Resources", SWT.LEFT, "abcdefghijklmnopqrstuvwxz", -1, PREFS_COLUMN_RES, store); //$NON-NLS-2$
    createTreeColumn(mTree, "Info", SWT.LEFT, "0123456789", -1, PREFS_COLUMN_2, store); //$NON-NLS-2$

    // create the jface wrapper
    mTreeViewer = new TreeViewer(mTree);

    mTreeViewer.setContentProvider(new ResourceContentProvider(true /* fullLevels */));
    mTreeViewer.setLabelProvider(new ResourceLabelProvider());

    // listen to selection change in the workbench.
    IWorkbenchPage page = getSite().getPage();

    page.addSelectionListener(this);

    // init with current selection
    selectionChanged(getSite().getPart(), page.getSelection());

    // add support for double click.
    mTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            ISelection sel = event.getSelection();

            if (sel instanceof IStructuredSelection) {
                IStructuredSelection selection = (IStructuredSelection) sel;

                if (selection.size() == 1) {
                    Object element = selection.getFirstElement();

                    // if it's a resourceFile, we directly open it.
                    if (element instanceof ResourceFile) {
                        try {
                            IAbstractFile iAbstractFile = ((ResourceFile) element).getFile();
                            if (iAbstractFile instanceof IFileWrapper) {
                                IDE.openEditor(getSite().getWorkbenchWindow().getActivePage(),
                                        ((IFileWrapper) iAbstractFile).getIFile());
                            }
                        } catch (PartInitException e) {
                        }
                    } else if (element instanceof ResourceItem) {
                        // if it's a ResourceItem, we open the first file, but only if
                        // there's no alternate files.
                        ResourceItem item = (ResourceItem) element;

                        if (item.isEditableDirectly()) {
                            ResourceFile[] files = item.getSourceFileArray();
                            if (files[0] != null) {
                                try {
                                    IAbstractFile iAbstractFile = files[0].getFile();
                                    if (iAbstractFile instanceof IFileWrapper) {
                                        IDE.openEditor(getSite().getWorkbenchWindow().getActivePage(),
                                                ((IFileWrapper) iAbstractFile).getIFile());
                                    }
                                } catch (PartInitException e) {
                                }
                            }
                        }
                    }
                }
            }
        }
    });

    // set up the resource manager to send us resource change notification
    AdtPlugin.getDefault().getResourceMonitor().addResourceEventListener(this);
}

From source file:com.android.ide.eclipse.adt.internal.wizards.actions.ExportAction.java

License:Open Source License

@Override
public void run(IAction action) {
    if (mSelection instanceof IStructuredSelection) {
        IStructuredSelection selection = (IStructuredSelection) mSelection;
        // get the unique selected item.
        if (selection.size() == 1) {
            Object element = selection.getFirstElement();

            // get the project object from it.
            IProject project = null;/*from w  ww  .  ja  va2  s  . com*/
            if (element instanceof IProject) {
                project = (IProject) element;
            } else if (element instanceof IAdaptable) {
                project = (IProject) ((IAdaptable) element).getAdapter(IProject.class);
            }

            // and finally do the action
            if (project != null) {
                if (!EclipseLintRunner.runLintOnExport(mShell, project)) {
                    return;
                }

                ProjectState state = Sdk.getProjectState(project);
                if (state.isLibrary()) {
                    MessageDialog.openError(mShell, "Android Export",
                            "Android library projects cannot be exported.");
                } else {
                    ExportHelper.exportUnsignedReleaseApk(project);
                }
            }
        }
    }
}

From source file:com.android.ide.eclipse.adt.internal.wizards.actions.ExportWizardAction.java

License:Open Source License

@Override
public void run(IAction action) {
    if (mSelection instanceof IStructuredSelection) {
        IStructuredSelection selection = (IStructuredSelection) mSelection;

        // get the unique selected item.
        if (selection.size() == 1) {
            Object element = selection.getFirstElement();

            // get the project object from it.
            IProject project = null;//  w ww  .j a va  2s.c  o m
            if (element instanceof IProject) {
                project = (IProject) element;
            } else if (element instanceof IAdaptable) {
                project = (IProject) ((IAdaptable) element).getAdapter(IProject.class);
            }

            // and finally do the action
            if (project != null) {
                if (!EclipseLintRunner.runLintOnExport(mWorkbench.getActiveWorkbenchWindow().getShell(),
                        project)) {
                    return;
                }

                ProjectState state = Sdk.getProjectState(project);
                if (state.isLibrary()) {
                    MessageDialog.openError(mWorkbench.getDisplay().getActiveShell(), "Android Export",
                            "Android library projects cannot be exported.");
                } else {
                    // call the export wizard on the current selection.
                    ExportWizard wizard = new ExportWizard();
                    wizard.init(mWorkbench, selection);
                    WizardDialog dialog = new WizardDialog(mWorkbench.getDisplay().getActiveShell(), wizard);
                    dialog.open();
                }
            }
        }
    }
}

From source file:com.android.ide.eclipse.adt.ndk.internal.actions.AddNativeAction.java

License:Open Source License

public void run(IAction action) {
    IProject project = null;/*from w  w  w. j a  va 2s .c o m*/
    if (mSelection instanceof IStructuredSelection) {
        IStructuredSelection ss = (IStructuredSelection) mSelection;
        if (ss.size() == 1) {
            Object obj = ss.getFirstElement();
            if (obj instanceof IProject) {
                project = (IProject) obj;
            } else if (obj instanceof PlatformObject) {
                project = (IProject) ((PlatformObject) obj).getAdapter(IProject.class);
            }
        }
    }

    if (project != null) {
        AddNativeWizard wizard = new AddNativeWizard(project, mPart.getSite().getWorkbenchWindow());
        WizardDialog dialog = new WizardDialog(mPart.getSite().getShell(), wizard);
        dialog.open();
    }

}