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

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

Introduction

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

Prototype

public CheckboxTableViewer(Table table) 

Source Link

Document

Creates a table viewer on the given table control.

Usage

From source file:org.chromium.debug.ui.actions.ChooseVmControl.java

License:Open Source License

public static Logic create(Composite parent) {
    final Table table = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);

    table.setFont(parent.getFont());//  w  ww  .  jav a  2s . c om

    final CheckboxTableViewer tableViewer = new CheckboxTableViewer(table);

    table.setHeaderVisible(true);

    tableViewer.setContentProvider(new ContentProviderImpl());

    ValueAdapter<ScriptTargetMapping, ConnectedTargetData> pairToTargetAdapter = new ValueAdapter<ScriptTargetMapping, ConnectedTargetData>() {
        public ConnectedTargetData convert(ScriptTargetMapping from) {
            return from.getConnectedTargetData();
        }
    };

    List<ColumnData<ScriptTargetMapping, ?>> columnDataList = createLaunchTargetColumns(pairToTargetAdapter);

    for (ColumnData<?, ?> data : columnDataList) {
        data.getLabelProvider().createColumn(table);
    }

    ValueAdapter<Object, ScriptTargetMapping> rowElementAdapter = TableUtils
            .createCastAdapter(ScriptTargetMapping.class);

    ColumnBasedLabelProvider<ScriptTargetMapping> labelProvider = new ColumnBasedLabelProvider<ScriptTargetMapping>(
            rowElementAdapter, columnDataList);

    tableViewer.setLabelProvider(labelProvider);

    final List<Logic.Listener> listeners = new ArrayList<Logic.Listener>(1);

    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            for (Logic.Listener listener : listeners) {
                listener.checkStateChanged();
            }
        }
    });

    return new Logic() {
        public Control getControl() {
            return table;
        }

        public void setData(List<? extends ScriptTargetMapping> targets) {
            TableData input = new TableData(targets);
            tableViewer.setInput(input);
        }

        public List<ScriptTargetMapping> getSelected() {
            final Object[] array = tableViewer.getCheckedElements();
            return new AbstractList<ScriptTargetMapping>() {
                @Override
                public ScriptTargetMapping get(int index) {
                    return (ScriptTargetMapping) array[index];
                }

                @Override
                public int size() {
                    return array.length;
                }
            };
        }

        public void selectAll() {
            tableViewer.setAllChecked(true);
        }

        public void addListener(Listener listener) {
            listeners.add(listener);
        }

        public void removeListener(Listener listener) {
            listeners.remove(listener);
        }
    };
}

From source file:org.cloudfoundry.ide.eclipse.internal.server.ui.wizards.CloudFoundryApplicationServicesWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    setTitle("Services selection");
    setDescription(DESCRIPTION);//from  w  ww  .  j  a  v  a  2  s.c o  m
    ImageDescriptor banner = CloudFoundryImages.getWizardBanner(serverTypeId);
    if (banner != null) {
        setImageDescriptor(banner);
    }

    Composite tableArea = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(tableArea);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableArea);

    Composite toolBarArea = new Composite(tableArea, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(toolBarArea);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(toolBarArea);

    Label label = new Label(toolBarArea, SWT.NONE);
    GridDataFactory.fillDefaults().grab(false, false).align(SWT.BEGINNING, SWT.CENTER).applyTo(label);
    label.setText("Select services to bind to the application:");

    Table table = new Table(tableArea, SWT.BORDER | SWT.SINGLE | SWT.CHECK);

    GridDataFactory.fillDefaults().grab(true, true).applyTo(table);

    ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
    ToolBar bar = toolBarManager.createControl(toolBarArea);
    GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(true, false).applyTo(bar);

    servicesViewer = new CheckboxTableViewer(table);

    new ServiceViewerConfigurator().enableAutomaticViewerResizing().configureViewer(servicesViewer);

    servicesViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            Object[] services = servicesViewer.getCheckedElements();
            if (services != null) {
                selectedServicesToBind.clear();
                for (Object obj : services) {
                    CloudService service = (CloudService) obj;
                    selectedServicesToBind.put(service.getName(), service);
                }
            }
        }
    });

    Action addServiceAction = new Action("Add Service", CloudFoundryImages.NEW_SERVICE) {

        public void run() {
            boolean deferAdditionOfService = true;
            CloudFoundryServiceWizard wizard = new CloudFoundryServiceWizard(cloudServer,
                    deferAdditionOfService);
            WizardDialog dialog = new WizardDialog(getShell(), wizard);
            dialog.setBlockOnOpen(true);
            if (dialog.open() == Window.OK) {
                CloudService addedService = wizard.getService();
                if (addedService != null) {
                    addService(addedService);
                }
            }
        }

        public String getToolTipText() {
            return "Add a service to the server and automatically select it for the deployed application.";
        }
    };
    toolBarManager.add(addServiceAction);

    toolBarManager.update(true);

    setControl(tableArea);
    setInput();
}

From source file:org.cloudfoundry.ide.eclipse.internal.server.ui.wizards.DeleteServicesWizardPage.java

License:Open Source License

public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new GridLayout());

    Table table = new Table(container, SWT.CHECK | SWT.BORDER);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    viewer = new CheckboxTableViewer(table);

    viewer.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            checkedElements = viewer.getCheckedElements();
            getWizard().getContainer().updateButtons();
        }/*  w  w w  .  ja v  a 2  s  .  co m*/
    });

    LabelProvider labelProvider = new LabelProvider();
    ITreeContentProvider contentProvider = new ITreeContentProvider() {

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // ignore
        }

        public void dispose() {
            // ignore
        }

        public Object[] getElements(Object inputElement) {
            return services.toArray();
        }

        public boolean hasChildren(Object element) {
            return false;
        }

        public Object getParent(Object element) {
            return null;
        }

        public Object[] getChildren(Object parentElement) {
            return null;
        }
    };

    viewer.setLabelProvider(labelProvider);
    viewer.setContentProvider(contentProvider);
    viewer.setInput(services);

    setControl(container);

    getWizard().getContainer().updateButtons();
}

From source file:org.cloudfoundry.ide.eclipse.server.ui.internal.CloudRoutePart.java

License:Open Source License

protected void createTableButtonArea(Composite parent) {

    Composite buttonsAndViewer = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(buttonsAndViewer);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(buttonsAndViewer);

    Composite tableArea = new Composite(buttonsAndViewer, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(tableArea);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableArea);

    createSelectionButtonArea(buttonsAndViewer);

    final Table table = new Table(tableArea, SWT.BORDER | SWT.CHECK);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(table);

    viewer = new CheckboxTableViewer(table);

    viewer.setContentProvider(new RoutesContentProvider());

    viewer.setLabelProvider(new TreeLabelProvider(viewer));

    viewer.setSorter(new ViewerSorter() {

        @Override//from   w  w w  .j a v a  2s  . c  o m
        public int compare(Viewer viewer, Object e1, Object e2) {
            TableColumn sortColumn = table.getSortColumn();
            if (sortColumn != null) {
                RouteColumn column = (RouteColumn) sortColumn.getData();
                int result = 0;
                int sortDirection = table.getSortDirection();
                if (column != null) {
                    if (e1 instanceof CloudRoute && e2 instanceof CloudRoute) {
                        CloudRoute rt1 = (CloudRoute) e1;
                        CloudRoute rt2 = (CloudRoute) e2;

                        switch (column) {
                        case NAME:
                            result = rt1.getName().toLowerCase().compareTo(rt2.getName().toLowerCase());
                            break;
                        case DOMAIN:
                            result = rt1.getDomain().getName().compareTo(rt2.getDomain().getName());
                            break;
                        case IN_USE:
                            if (rt1.inUse() && !rt2.inUse()) {
                                result = -1;
                            } else if (rt2.inUse() && !rt1.inUse()) {
                                result = 1;
                            }
                            break;
                        }

                    }
                }
                return sortDirection == SWT.UP ? result : -result;
            }

            return super.compare(viewer, e1, e2);
        }

    });

    viewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object items, Object item) {
            if (item instanceof CloudRoute) {
                CloudRoute route = (CloudRoute) item;
                return route.inUse() ? showInUseButton.getSelection()
                        : (showRemovedRoutesButton.getSelection() && routesToRemove.contains(route))
                                || (!showRemovedRoutesButton.getSelection() && !routesToRemove.contains(route));
            }
            return false;
        }
    });

    viewer.getTable().addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent event) {

            Widget item = event.item;
            // Disable selecting routes that are in use
            if (event.detail == SWT.CHECK && item instanceof TableItem) {
                TableItem tableItem = (TableItem) item;

                Object element = tableItem.getData();

                if (element instanceof CloudRoute && ((CloudRoute) element).inUse()) {
                    event.doit = false;
                    event.detail = SWT.NONE;
                    tableItem.setChecked(false);
                }
            }
        }
    });

    addColumns(viewer);

    new TableResizeHelper(viewer).enableResizing();

    // Add accessibility listener to the table, so screen reader can provide a good description
    // of what is selected (in this case, a cloud route and its value)
    viewer.getControl().getAccessible().addAccessibleListener(new AccessibleAdapter() {
        @Override
        public void getName(AccessibleEvent e) {
            if (e.childID >= 0) {
                if (e.result != null) {
                    e.result = NLS.bind(Messages.CloudRoutePart_TEXT_TABLE_ACC_LABEL, e.result);
                } else {
                    e.result = Messages.CloudFoundryApplicationServicesWizardPage_TEXT_SERVICE_SELECTION;
                }
            }
        }
    });
}

From source file:org.cloudfoundry.ide.eclipse.server.ui.internal.ServiceToApplicationsBindingPart.java

License:Open Source License

protected void createTableArea(Composite parent) {
    Composite tableArea = new Composite(parent, SWT.NONE);
    Label l = new Label(tableArea, SWT.NONE);
    l.setBackground(parent.getBackground());
    l.setText(Messages.MANAGE_SERVICES_TO_APPLICATIONS_SELECTION_DESCRIPTION);

    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(tableArea);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableArea);

    final Table table = new Table(tableArea, SWT.BORDER | SWT.CHECK);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(table);

    viewer = new CheckboxTableViewer(table);

    viewer.setContentProvider(new IStructuredContentProvider() {
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof Collection) {
                return ((Collection<?>) inputElement).toArray(new Object[0]);
            }/* w w  w  .j  av  a  2 s . com*/
            return null;
        }

        public void dispose() {
            // Do nothing
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // Do nothing
        }
    });

    viewer.setLabelProvider(new BindServiceToApplicationLabelProvider(viewer));

    // Sort the applications so it is consistent with the application list that shows up in the Applications and Services editor
    viewer.setSorter(new CloudFoundryViewerSorter());

    viewer.getTable().addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            Widget item = event.item;

            if (event.detail == SWT.CHECK && item != null && item instanceof TableItem) {
                TableItem tableItem = (TableItem) item;
                String appName = tableItem.getText();

                ApplicationToService curr = applicationToServiceMapping.get(appName);

                if (curr != null) {
                    curr.setBoundToServiceAfter(tableItem.getChecked());
                }
            }
        }
    });

    new TableColumn(table, SWT.NONE, 0);

    TableResizeHelper resizer = new TableResizeHelper(viewer);
    resizer.enableResizing();
}

From source file:org.cloudfoundry.ide.eclipse.server.ui.internal.wizards.CloudFoundryApplicationServicesWizardPage.java

License:Open Source License

public void createControl(Composite parent) {

    setDescription(DESCRIPTION);//from ww w.j  ava  2 s  . c o m
    ImageDescriptor banner = CloudFoundryImages.getWizardBanner(serverTypeId);
    if (banner != null) {
        setImageDescriptor(banner);
    }

    Composite tableArea = new Composite(parent, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(tableArea);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(tableArea);

    Composite toolBarArea = new Composite(tableArea, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(2).applyTo(toolBarArea);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(toolBarArea);

    Label label = new Label(toolBarArea, SWT.NONE);
    GridDataFactory.fillDefaults().grab(false, false).align(SWT.BEGINNING, SWT.CENTER).applyTo(label);
    label.setText(Messages.CloudFoundryApplicationServicesWizardPage_LABEL_SELECT_SERVICE);

    Table table = new Table(tableArea, SWT.BORDER | SWT.SINGLE | SWT.CHECK);

    GridDataFactory.fillDefaults().grab(true, true).applyTo(table);

    ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT);
    ToolBar bar = toolBarManager.createControl(toolBarArea);
    GridDataFactory.fillDefaults().align(SWT.END, SWT.BEGINNING).grab(true, false).applyTo(bar);

    servicesViewer = new CheckboxTableViewer(table);

    servicesViewer.setContentProvider(new TreeContentProvider());
    servicesViewer.setLabelProvider(new ServicesTreeLabelProvider(servicesViewer));
    servicesViewer.setSorter(new ServiceViewerSorter(servicesViewer));

    new ServiceViewerConfigurator().enableAutomaticViewerResizing().configureViewer(servicesViewer);

    servicesViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            Object[] services = servicesViewer.getCheckedElements();
            if (services != null) {
                selectedServicesToBind.clear();
                for (Object obj : services) {
                    CloudService service = (CloudService) obj;
                    selectedServicesToBind.add(service.getName());
                }
                setServicesToBindInDescriptor();
            }
        }
    });

    Action addServiceAction = new Action(Messages.COMMONTXT_ADD_SERVICE, CloudFoundryImages.NEW_SERVICE) {

        public void run() {
            // Do not create the service right away.
            boolean deferAdditionOfService = true;

            CloudFoundryServiceWizard wizard = new CloudFoundryServiceWizard(cloudServer,
                    deferAdditionOfService);
            WizardDialog dialog = new WizardDialog(getShell(), wizard);
            wizard.setParent(dialog);
            dialog.setPageSize(900, 600);
            dialog.setBlockOnOpen(true);

            if (dialog.open() == Window.OK) {
                // This cloud service does not yet exist. It will be created
                // outside of the wizard
                List<CloudService> addedService = wizard.getServices();
                if (addedService != null) {
                    addServices(addedService);
                }
            }
        }

        public String getToolTipText() {
            return Messages.CloudFoundryApplicationServicesWizardPage_TEXT_TOOLTIP;
        }
    };
    // Add accessibility text to the table, so at least when navigating through the table, the screen reader 
    // know these are services being selected
    servicesViewer.getControl().getAccessible().addAccessibleListener(new AccessibleAdapter() {
        @Override
        public void getName(AccessibleEvent e) {
            if (e.childID >= 0) {
                if (e.result != null) {
                    e.result = NLS.bind(Messages.CloudFoundryApplicationServicesWizardPage_TEXT_TABLE_ACC_LABEL,
                            e.result);
                } else {
                    e.result = Messages.CloudFoundryApplicationServicesWizardPage_TEXT_SERVICE_SELECTION;
                }
            }
        }
    });

    toolBarManager.add(addServiceAction);

    toolBarManager.update(true);

    setControl(tableArea);
    setInput();
}

From source file:org.cropinformatics.ui.viewers.list.IdentificationListTableViewer.java

License:Apache License

@Override
protected StructuredViewer createStructuredViewer(Composite parent) {
    TableViewer tableViewer;/*  w  w w  .  j  a v a 2s .c  o  m*/
    Table table;

    if (ConfigurationUtils.isCheckSelectionInUse(getConfiguration()))
        table = new Table(parent, createWidgetStyle() | SWT.CHECK);
    else
        table = new Table(parent, createWidgetStyle());

    table.setHeaderVisible(true);

    int nameWidth = (int) (getInitialStructuredViewerSize().x * 0.33);

    TableColumn column = new TableColumn(table, SWT.LEFT);
    column.setText(Activator.getDefault().getString(NAME_COLUMN));
    column.setWidth(nameWidth);

    column = new TableColumn(table, SWT.LEFT);
    column.setText(Activator.getDefault().getString(DESCRIPTION_COLUMN));
    column.setWidth(getInitialStructuredViewerSize().x - nameWidth);

    if (ConfigurationUtils.isCheckSelectionInUse(getConfiguration())) {
        tableViewer = new CheckboxTableViewer(table);
    } else {
        tableViewer = new TableViewer(table);
    }

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    tableViewer.setColumnProperties(COLUMN_PROPERTIES);

    return tableViewer;
}

From source file:org.dbeclipse.ui.internal.browser.WebBrowserPreferencePage.java

License:Open Source License

/**
 * Create the preference options.//from ww  w . j  ava 2s.c o  m
 * 
 * @param parent
 *            org.eclipse.swt.widgets.Composite
 * @return org.eclipse.swt.widgets.Control
 */
protected Control createContents(Composite parent) {
    initializeDialogUnits(parent);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, ContextIds.PREF_BROWSER);

    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(4);
    layout.verticalSpacing = convertVerticalDLUsToPixels(3);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    composite.setLayout(layout);
    GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
    composite.setLayoutData(data);

    Label label = new Label(composite, SWT.WRAP);
    label.setText(Messages.preferenceWebBrowserDescription);
    data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    data.horizontalSpan = 2;
    label.setLayoutData(data);

    label = new Label(composite, SWT.WRAP);
    data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    data.horizontalSpan = 2;
    label.setLayoutData(data);

    internal = new Button(composite, SWT.RADIO);
    internal.setText(Messages.prefInternalBrowser);
    data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    data.horizontalSpan = 2;
    internal.setLayoutData(data);

    if (!WebBrowserUtil.canUseInternalWebBrowser())
        internal.setEnabled(false);

    external = new Button(composite, SWT.RADIO);
    external.setText(Messages.prefExternalBrowser);
    data = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    data.horizontalSpan = 2;
    external.setLayoutData(data);

    label = new Label(composite, SWT.NONE);
    label.setText(Messages.browserList);
    data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
    data.horizontalSpan = 2;
    label.setLayoutData(data);

    table = new Table(composite,
            SWT.CHECK | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
    data = new GridData(GridData.FILL_BOTH);
    table.setLayoutData(data);
    table.setHeaderVisible(false);
    table.setLinesVisible(false);

    TableLayout tableLayout = new TableLayout();
    new TableColumn(table, SWT.NONE);
    tableLayout.addColumnData(new ColumnWeightData(100));
    table.setLayout(tableLayout);

    tableViewer = new CheckboxTableViewer(table);
    tableViewer.setContentProvider(new BrowserContentProvider());
    tableViewer.setLabelProvider(new BrowserTableLabelProvider());
    tableViewer.setInput("root"); //$NON-NLS-1$

    // uncheck any other elements that might be checked and leave only the
    // element checked to remain checked since one can only chose one
    // brower at a time to be current.
    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent e) {
            checkNewDefaultBrowser(e.getElement());
            checkedBrowser = (IBrowserDescriptor) e.getElement();

            // if no other browsers are checked, don't allow the single one
            // currently checked to become unchecked, and lose a current
            // browser. That is, don't permit unchecking if no other item
            // is checked which is supposed to be the case.
            Object[] obj = tableViewer.getCheckedElements();
            if (obj.length == 0)
                tableViewer.setChecked(e.getElement(), true);
        }
    });

    // set a default, checked browser based on the current browser. If there
    // is not a current browser, but the first item exists, use that instead.
    // This will work currently until workbench shutdown, because current
    // browser is not yet persisted.
    checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser();
    if (checkedBrowser != null)
        tableViewer.setChecked(checkedBrowser, true);
    else {
        Object obj = tableViewer.getElementAt(0);
        if (obj != null)
            tableViewer.setChecked(obj, true);
    }

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection sele = ((IStructuredSelection) tableViewer.getSelection());
            boolean sel = sele.getFirstElement() != null
                    && !(sele.getFirstElement() instanceof SystemBrowserDescriptor);
            remove.setEnabled(sel);
            edit.setEnabled(sel);
        }
    });

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
            Object firstElem = sel.getFirstElement();
            if (firstElem != null && !(firstElem instanceof SystemBrowserDescriptor)) {
                IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
                IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy();
                BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell(), wc);
                if (dialog.open() != Window.CANCEL) {
                    try {
                        tableViewer.refresh(wc.save());
                    } catch (Exception ex) {
                        // ignore
                    }
                }
            }
        }
    });

    table.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.DEL) {
                IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
                if (sel.getFirstElement() != null) {
                    IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
                    try {
                        browser2.delete();
                        tableViewer.remove(browser2);

                        // need here to ensure that if the item deleted was
                        // checked, ie. was
                        // the current browser, that the new current browser
                        // will be the first in the
                        // list, typically, the internal browser, which
                        // cannot be
                        // deleted, and be current
                        BrowserManager manager = BrowserManager.getInstance();
                        if (browser2 == checkedBrowser) {
                            if (manager.browsers.size() > 0) {
                                checkedBrowser = (IBrowserDescriptor) manager.browsers.get(0);
                                tableViewer.setChecked(checkedBrowser, true);
                            }
                        }
                    } catch (Exception ex) {
                        // ignore
                    }
                }
            }
        }

        public void keyReleased(KeyEvent e) {
            // ignore
        }
    });

    Composite buttonComp = new Composite(composite, SWT.NONE);
    layout = new GridLayout();
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = convertVerticalDLUsToPixels(3);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    layout.numColumns = 1;
    buttonComp.setLayout(layout);
    data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
    buttonComp.setLayoutData(data);

    final Button add = SWTUtil.createButton(buttonComp, Messages.add);
    add.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell());
            if (dialog.open() == Window.CANCEL)
                return;
            tableViewer.refresh();
            if (checkedBrowser != null)
                tableViewer.setChecked(checkedBrowser, true);
        }
    });

    edit = SWTUtil.createButton(buttonComp, Messages.edit);
    edit.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
            IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
            IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy();
            BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell(), wc);
            if (dialog.open() != Window.CANCEL) {
                try {
                    tableViewer.refresh(wc.save());
                } catch (Exception ex) {
                    // ignore
                }
            }
        }
    });

    remove = SWTUtil.createButton(buttonComp, Messages.remove);
    remove.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection());
            IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement();
            try {
                browser2.delete();
                tableViewer.remove(browser2);

                // need here to ensure that if the item deleted was checked,
                // ie. was
                // the current browser, that the new current browser will be
                // the first in the
                // list, typically, the internal browser, which cannot be
                // deleted, and be current
                BrowserManager manager = BrowserManager.getInstance();
                if (browser2 == checkedBrowser) {
                    if (manager.browsers.size() > 0) {
                        checkedBrowser = (IBrowserDescriptor) manager.browsers.get(0);
                        tableViewer.setChecked(checkedBrowser, true);
                    }
                }
            } catch (Exception ex) {
                // ignore
            }
        }
    });

    search = SWTUtil.createButton(buttonComp, Messages.search);
    data = (GridData) search.getLayoutData();
    data.verticalIndent = 9;
    search.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            final List foundBrowsers = new ArrayList();
            final List existingPaths = WebBrowserUtil.getExternalBrowserPaths();

            // select a target directory for the search
            DirectoryDialog dialog = new DirectoryDialog(getShell());
            dialog.setMessage(Messages.selectDirectory);
            dialog.setText(Messages.directoryDialogTitle);

            String path = dialog.open();
            if (path == null)
                return;

            final File rootDir = new File(path);
            ProgressMonitorDialog pm = new ProgressMonitorDialog(getShell());

            IRunnableWithProgress r = new IRunnableWithProgress() {
                public void run(IProgressMonitor monitor) {
                    monitor.beginTask(Messages.searchingTaskName, IProgressMonitor.UNKNOWN);
                    search(rootDir, existingPaths, foundBrowsers, monitor);
                    monitor.done();
                }
            };

            try {
                pm.run(true, true, r);
            } catch (InvocationTargetException ex) {
                Trace.trace(Trace.SEVERE, "Invocation Exception occured running monitor: " //$NON-NLS-1$
                        + ex);
            } catch (InterruptedException ex) {
                Trace.trace(Trace.SEVERE, "Interrupted exception occured running monitor: " //$NON-NLS-1$
                        + ex);
                return;
            }

            if (pm.getProgressMonitor().isCanceled())
                return;

            List browsersToCreate = foundBrowsers;

            if (browsersToCreate == null) // cancelled
                return;

            if (browsersToCreate.isEmpty()) { // no browsers found
                WebBrowserUtil.openMessage(Messages.searchingNoneFound);
                return;
            }

            Iterator iterator = browsersToCreate.iterator();
            while (iterator.hasNext()) {
                IBrowserDescriptorWorkingCopy browser2 = (IBrowserDescriptorWorkingCopy) iterator.next();
                browser2.save();
            }
            tableViewer.refresh();

            if (checkedBrowser != null)
                tableViewer.setChecked(checkedBrowser, true);
        }
    });

    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent e) {
            checkNewDefaultBrowser(e.getElement());
            checkedBrowser = (IBrowserDescriptor) e.getElement();
        }
    });

    /*external.addSelectionListener(new SelectionListener() {
       public void widgetSelected(SelectionEvent e) {
    boolean sel = !tableViewer.getSelection().isEmpty();
    edit.setEnabled(sel);
    remove.setEnabled(sel);
       }
            
       public void widgetDefaultSelected(SelectionEvent e) {
    // ignore
       }
    });*/
    internal.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.INTERNAL);
    external.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.EXTERNAL);

    //boolean sel = !tableViewer.getSelection().isEmpty();
    IStructuredSelection sele = ((IStructuredSelection) tableViewer.getSelection());
    boolean sel = sele.getFirstElement() != null
            && !(sele.getFirstElement() instanceof SystemBrowserDescriptor);
    edit.setEnabled(sel);
    remove.setEnabled(sel);

    Dialog.applyDialogFont(composite);

    return composite;
}

From source file:org.drools.eclipse.preferences.DroolsRuntimesBlock.java

License:Apache License

public void createControl(Composite ancestor) {
    Font font = ancestor.getFont();
    Composite parent = SWTFactory.createComposite(ancestor, font, 2, 1, GridData.FILL_BOTH);
    fControl = parent;/*from   ww  w  . j  a va 2  s. co  m*/

    SWTFactory.createLabel(parent, "Installed Drools Runtimes", 2);

    fTable = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.heightHint = 250;
    gd.widthHint = 350;
    fTable.setLayoutData(gd);
    fTable.setFont(font);
    fTable.setHeaderVisible(true);
    fTable.setLinesVisible(true);

    TableColumn column = new TableColumn(fTable, SWT.NULL);
    column.setText("Name");
    int defaultwidth = 350 / 2 + 1;
    column.setWidth(defaultwidth);

    column = new TableColumn(fTable, SWT.NULL);
    column.setText("Location");
    column.setWidth(defaultwidth);

    droolsRuntimesList = new CheckboxTableViewer(fTable);
    droolsRuntimesList.setLabelProvider(new DroolsRuntimesLabelProvider());
    droolsRuntimesList.setContentProvider(new DroolsRuntimesContentProvider());

    droolsRuntimesList.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent evt) {
            enableButtons();
        }
    });

    droolsRuntimesList.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                setDefaultDroolsRuntime((DroolsRuntime) event.getElement());
            } else {
                setDefaultDroolsRuntime(null);
            }
        }
    });

    droolsRuntimesList.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            if (!droolsRuntimesList.getSelection().isEmpty()) {
                editDroolsRuntime();
            }
        }
    });
    fTable.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent event) {
            if (event.character == SWT.DEL && event.stateMask == 0) {
                if (fRemoveButton.isEnabled()) {
                    removeDroolsRuntimes();
                }
            }
        }
    });

    Composite buttons = SWTFactory.createComposite(parent, font, 1, 1, GridData.VERTICAL_ALIGN_BEGINNING, 0, 0);

    fAddButton = SWTFactory.createPushButton(buttons, "Add...", null);
    fAddButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            addDroolsRuntime();
        }
    });

    fEditButton = SWTFactory.createPushButton(buttons, "Edit...", null);
    fEditButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            editDroolsRuntime();
        }
    });

    fRemoveButton = SWTFactory.createPushButton(buttons, "Remove", null);
    fRemoveButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            removeDroolsRuntimes();
        }
    });

    SWTFactory.createVerticalSpacer(parent, 1);

    enableButtons();
    fAddButton.setEnabled(true);
}

From source file:org.ebayopensource.vjet.eclipse.internal.ui.preferences.InstalledSdksBlock.java

License:Open Source License

/**
 * Creates this block's control in the given control.
 * //from  w w w  . ja  v  a2 s.co  m
 * @param ancestor containing control
 * @param useManageButton whether to present a single 'manage...' button to
 *  the user that opens the installed JREs pref page for JRE management,
 *  or to provide 'add, remove, edit, and search' buttons.
 */
public void createControl(Composite ancestor) {

    Composite parent = new Composite(ancestor, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    parent.setLayout(layout);
    Font font = ancestor.getFont();
    parent.setFont(font);
    fControl = parent;

    GridData data;

    Label tableLabel = new Label(parent, SWT.NONE);
    tableLabel.setText("VJET SKD");
    //      tableLabel.setText(JREMessages.InstalledJREsBlock_15); 
    data = new GridData();
    data.horizontalSpan = 2;
    tableLabel.setLayoutData(data);
    tableLabel.setFont(font);

    fTable = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);

    data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 450;
    fTable.setLayoutData(data);
    fTable.setFont(font);

    fTable.setHeaderVisible(true);
    fTable.setLinesVisible(true);

    TableColumn column1 = new TableColumn(fTable, SWT.NULL);
    //      column1.setText(JREMessages.InstalledJREsBlock_0); 
    column1.setText("name");
    column1.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortByName();
        }
    });

    TableColumn column2 = new TableColumn(fTable, SWT.NULL);
    //      column2.setText(JREMessages.InstalledJREsBlock_1); 
    column2.setText("Location");
    column2.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortByLocation();
        }
    });

    TableColumn column3 = new TableColumn(fTable, SWT.NULL);
    column3.setText("type");
    //      column3.setText(JREMessages.InstalledJREsBlock_2); 
    column3.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            sortByType();
        }
    });

    fVMList = new CheckboxTableViewer(fTable);
    fVMList.setLabelProvider(new VMLabelProvider());
    fVMList.setContentProvider(new JREsContentProvider());
    // by default, sort by name
    sortByName();

    fVMList.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent evt) {
            enableButtons();
        }
    });

    fVMList.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                setCheckedJRE((ISdkEnvironment) event.getElement());
            } else {
                setCheckedJRE(null);
            }
        }
    });

    fVMList.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            if (!fVMList.getSelection().isEmpty()) {
                editVM();
            }
        }
    });
    fTable.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent event) {
            if (event.character == SWT.DEL && event.stateMask == 0) {
                removeVMs();
            }
        }
    });

    Composite buttons = new Composite(parent, SWT.NULL);
    buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttons.setLayout(layout);
    buttons.setFont(font);

    //      fAddButton = createPushButton(buttons, JREMessages.InstalledJREsBlock_3); 
    fAddButton = createPushButton(buttons, "add");
    fAddButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            addVM();
        }
    });

    //      fEditButton= createPushButton(buttons, JREMessages.InstalledJREsBlock_4); 
    fEditButton = createPushButton(buttons, "edit");
    fEditButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            editVM();
        }
    });

    //      fCopyButton = createPushButton(buttons, JREMessages.InstalledJREsBlock_16); 
    fCopyButton = createPushButton(buttons, "push");
    fCopyButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            copyVM();
        }
    });

    //      fRemoveButton= createPushButton(buttons, JREMessages.InstalledJREsBlock_5); 
    fRemoveButton = createPushButton(buttons, "remove");
    fRemoveButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            removeVMs();
        }
    });

    // copied from ListDialogField.CreateSeparator()
    Label separator = new Label(buttons, SWT.NONE);
    separator.setVisible(false);
    GridData gd = new GridData();
    gd.horizontalAlignment = GridData.FILL;
    gd.verticalAlignment = GridData.BEGINNING;
    gd.heightHint = 4;
    separator.setLayoutData(gd);

    fSearchButton = createPushButton(buttons, "Install");
    //      fSearchButton = createPushButton(buttons, JREMessages.InstalledJREsBlock_6); 
    fSearchButton.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event evt) {
            search();
        }
    });

    fillWithWorkspaceJREs();
    enableButtons();
    fAddButton.setEnabled(VjetSdkRuntime.getSdkEnviromentTypes().length > 0);
}