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.eclipse.equinox.p2.ui.RepositoryManipulationPage.java

License:Open Source License

protected Control createContents(Composite parent) {
    display = parent.getDisplay();//from w  w w  . j  a  v  a2 s. c  o m
    // The help refers to the full-blown dialog.  No help if it's read only.
    if (policy.getRepositoriesVisible())
        PlatformUI.getWorkbench().getHelpSystem().setHelp(parent.getShell(),
                IProvHelpContextIds.REPOSITORY_MANIPULATION_DIALOG);

    Composite composite = new Composite(parent, SWT.NONE);
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    composite.setLayoutData(gd);

    GridLayout layout = new GridLayout();
    layout.numColumns = policy.getRepositoriesVisible() ? 2 : 1;
    layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
    layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
    layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
    layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    composite.setLayout(layout);

    // Filter box
    pattern = new Text(composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH | SWT.CANCEL);
    pattern.getAccessible().addAccessibleListener(new AccessibleAdapter() {
        public void getName(AccessibleEvent e) {
            e.result = DEFAULT_FILTER_TEXT;
        }
    });
    pattern.setText(DEFAULT_FILTER_TEXT);
    pattern.selectAll();
    pattern.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            applyFilter();
        }
    });

    pattern.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN) {
                if (table.getItemCount() > 0) {
                    table.setFocus();
                } else if (e.character == SWT.CR) {
                    return;
                }
            }
        }
    });

    pattern.addFocusListener(new FocusAdapter() {
        public void focusGained(FocusEvent e) {
            display.asyncExec(new Runnable() {
                public void run() {
                    if (!pattern.isDisposed()) {
                        if (DEFAULT_FILTER_TEXT.equals(pattern.getText().trim())) {
                            pattern.selectAll();
                        }
                    }
                }
            });
        }
    });
    gd = new GridData(SWT.FILL, SWT.FILL, true, false);
    pattern.setLayoutData(gd);

    // spacer to fill other column
    if (policy.getRepositoriesVisible())
        new Label(composite, SWT.NONE);

    // Table of available repositories
    table = new Table(composite,
            SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    repositoryViewer = new CheckboxTableViewer(table);

    // Key listener for delete
    table.addKeyListener(new KeyAdapter() {
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.DEL) {
                removeRepositories();
            }
        }
    });
    setTableColumns();
    CopyUtils.activateCopy(this, table);

    repositoryViewer.setComparer(new ProvElementComparer());
    comparator = new MetadataRepositoryElementComparator(RepositoryDetailsLabelProvider.COL_NAME);
    repositoryViewer.setComparator(comparator);
    filter = new MetadataRepositoryPatternFilter();
    repositoryViewer.setFilters(new ViewerFilter[] { filter });
    // We don't need a deferred content provider because we are caching local results before
    // actually querying
    repositoryViewer.setContentProvider(new ProvElementContentProvider());
    labelProvider = new RepositoryDetailsLabelProvider();
    repositoryViewer.setLabelProvider(labelProvider);

    // Edit the nickname
    repositoryViewer.setCellModifier(new ICellModifier() {
        public boolean canModify(Object element, String property) {
            return element instanceof MetadataRepositoryElement;
        }

        public Object getValue(Object element, String property) {
            return ((MetadataRepositoryElement) element).getName();
        }

        public void modify(Object element, String property, Object value) {
            if (value != null && value.toString().length() >= 0) {
                MetadataRepositoryElement repo;
                if (element instanceof Item) {
                    repo = (MetadataRepositoryElement) ((Item) element).getData();
                } else if (element instanceof MetadataRepositoryElement) {
                    repo = (MetadataRepositoryElement) element;
                } else {
                    return;
                }
                if (!value.toString().equals(repo.getName())) {
                    changed = true;
                    repo.setNickname(value.toString());
                    if (comparator.getSortKey() == RepositoryDetailsLabelProvider.COL_NAME)
                        repositoryViewer.refresh(true);
                    else
                        repositoryViewer.update(repo, null);
                }
            }
        }

    });
    repositoryViewer.setColumnProperties(new String[] { "nickname" }); //$NON-NLS-1$
    repositoryViewer.setCellEditors(new CellEditor[] { new TextCellEditor(repositoryViewer.getTable()) });

    repositoryViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (policy.getRepositoriesVisible())
                validateButtons();
            setDetails();
        }
    });

    repositoryViewer.setCheckStateProvider(new ICheckStateProvider() {
        public boolean isChecked(Object element) {
            return ((MetadataRepositoryElement) element).isEnabled();
        }

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

    repositoryViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            MetadataRepositoryElement element = (MetadataRepositoryElement) event.getElement();
            element.setEnabled(event.getChecked());
            // paranoid that an equal but not identical element was passed in as the selection.
            // update the cache map just in case.
            getInput().put(element);
            // update the viewer to show the change
            updateForEnablementChange(new MetadataRepositoryElement[] { element });
        }
    });

    // Input last
    repositoryViewer.setInput(getInput());

    GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
    data.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH);
    data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT);
    table.setLayoutData(data);

    // Drop targets and vertical buttons only if repository manipulation is provided.
    if (policy.getRepositoriesVisible()) {
        DropTarget target = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK);
        target.setTransfer(new Transfer[] { URLTransfer.getInstance(), FileTransfer.getInstance() });
        target.addDropListener(new RepositoryManipulatorDropTarget(ui, table));

        // Vertical buttons
        Composite verticalButtonBar = createVerticalButtonBar(composite);
        data = new GridData(SWT.FILL, SWT.FILL, false, false);
        data.verticalAlignment = SWT.TOP;
        data.verticalIndent = 0;
        verticalButtonBar.setLayoutData(data);
        listener = getViewerProvisioningListener();

        ProvUI.getProvisioningEventBus(ui.getSession()).addListener(listener);
        composite.addDisposeListener(new DisposeListener() {
            public void widgetDisposed(DisposeEvent event) {
                ProvUI.getProvisioningEventBus(ui.getSession()).removeListener(listener);
            }
        });

        validateButtons();
    }

    // Details area
    details = new Text(composite, SWT.READ_ONLY | SWT.WRAP);
    data = new GridData(SWT.FILL, SWT.FILL, true, false);
    data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_SITEDETAILS_HEIGHT);

    details.setLayoutData(data);

    Dialog.applyDialogFont(composite);
    return composite;
}

From source file:org.eclipse.gyrex.admin.ui.internal.wizards.dialogfields.CheckedListDialogField.java

License:Open Source License

@Override
protected TableViewer createTableViewer(final Composite parent) {
    final Table table = new Table(parent, SWT.CHECK | getListStyle());
    table.setFont(parent.getFont());//from   ww w . j a v  a  2s. c o  m
    final CheckboxTableViewer tableViewer = new CheckboxTableViewer(table);
    tableViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent e) {
            doCheckStateChanged(e);
        }
    });
    return tableViewer;
}

From source file:org.eclipse.jdt.internal.debug.ui.jres.ExecutionEnvironmentsPreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite ancestor) {
    initializeDialogUnits(ancestor);/*from w  ww .ja v a 2s.  co  m*/
    noDefaultAndApplyButton();
    // TODO: fix help
    PlatformUI.getWorkbench().getHelpSystem().setHelp(ancestor, IJavaDebugHelpContextIds.JRE_PROFILES_PAGE);

    // init default mappings
    IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager();
    IExecutionEnvironment[] environments = manager.getExecutionEnvironments();
    for (int i = 0; i < environments.length; i++) {
        IExecutionEnvironment environment = environments[i];
        IVMInstall install = environment.getDefaultVM();
        if (install != null) {
            fDefaults.put(environment, install);
        }
    }

    Composite container = new Composite(ancestor, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.makeColumnsEqualWidth = true;
    container.setLayout(layout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    container.setLayoutData(gd);
    container.setFont(ancestor.getFont());

    Composite eeContainer = new Composite(container, SWT.NONE);
    layout = new GridLayout();
    layout.marginWidth = 0;
    eeContainer.setLayout(layout);
    eeContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

    Label label = new Label(eeContainer, SWT.NONE);
    label.setFont(ancestor.getFont());
    label.setText(JREMessages.JREProfilesPreferencePage_2);
    label.setLayoutData(new GridData(SWT.FILL, 0, true, false));

    Table table = new Table(eeContainer, SWT.BORDER | SWT.SINGLE);
    table.setLayout(layout);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    fProfilesViewer = new TableViewer(table);
    fProfilesViewer.setContentProvider(new ArrayContentProvider());
    fProfilesViewer.setLabelProvider(new ExecutionEnvironmentsLabelProvider());
    fProfilesViewer.setInput(JavaRuntime.getExecutionEnvironmentsManager().getExecutionEnvironments());

    Composite jreContainer = new Composite(container, SWT.NONE);
    layout = new GridLayout();
    layout.marginWidth = 0;
    jreContainer.setLayout(layout);
    jreContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

    label = new Label(jreContainer, SWT.NONE);
    label.setFont(ancestor.getFont());
    label.setText(JREMessages.JREProfilesPreferencePage_3);
    label.setLayoutData(new GridData(SWT.FILL, 0, true, false));

    table = new Table(jreContainer, SWT.CHECK | SWT.BORDER | SWT.SINGLE);
    table.setLayout(layout);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    fJREsViewer = new CheckboxTableViewer(table);
    fJREsViewer.setContentProvider(new JREsContentProvider());
    fJREsViewer.setLabelProvider(
            new JREsEnvironmentLabelProvider(new JREsEnvironmentLabelProvider.IExecutionEnvironmentProvider() {
                public IExecutionEnvironment getEnvironment() {
                    return (IExecutionEnvironment) fJREsViewer.getInput();
                }
            }));
    fJREsViewer.setComparator(new JREsEnvironmentComparator());

    label = new Label(container, SWT.NONE);
    label.setFont(ancestor.getFont());
    label.setText(JREMessages.JREProfilesPreferencePage_4);
    label.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1));

    Text text = new Text(container, SWT.READ_ONLY | SWT.WRAP | SWT.BORDER);
    text.setFont(ancestor.getFont());
    text.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1));
    fDescription = text;

    fProfilesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleEESelectionAndJREViewer((IStructuredSelection) event.getSelection());
        }
    });

    fJREsViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked()) {
                Object element = event.getElement();
                fDefaults.put(fJREsViewer.getInput(), element);
                fJREsViewer.setCheckedElements(new Object[] { element });
            } else {
                fDefaults.remove(fJREsViewer.getInput());
            }

        }
    });

    Dialog.applyDialogFont(ancestor);
    return ancestor;
}

From source file:org.eclipse.jdt.internal.debug.ui.jres.InstalledJREsBlock.java

License:Open Source License

/**
 * Creates this block's control in the given control.
 * /*from   w  w w  .  jav  a  2 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) {
    Font font = ancestor.getFont();
    Composite parent = SWTFactory.createComposite(ancestor, font, 2, 1, GridData.FILL_BOTH);
    fControl = parent;

    SWTFactory.createLabel(parent, JREMessages.InstalledJREsBlock_15, 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(JREMessages.InstalledJREsBlock_0);
    column.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            sortByName();
            fVMList.refresh(true);
        }
    });
    int defaultwidth = 350 / 3 + 1;
    column.setWidth(defaultwidth);

    column = new TableColumn(fTable, SWT.NULL);
    column.setText(JREMessages.InstalledJREsBlock_1);
    column.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            sortByLocation();
            fVMList.refresh(true);
        }
    });
    column.setWidth(defaultwidth);

    column = new TableColumn(fTable, SWT.NULL);
    column.setText(JREMessages.InstalledJREsBlock_2);
    column.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            sortByType();
            fVMList.refresh(true);
        }
    });
    column.setWidth(defaultwidth);

    fVMList = new CheckboxTableViewer(fTable);
    fVMList.setLabelProvider(new VMLabelProvider());
    fVMList.setContentProvider(new JREsContentProvider());
    fVMList.setUseHashlookup(true);
    // 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((IVMInstall) event.getElement());
            } else {
                setCheckedJRE(null);
            }
        }
    });

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

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

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

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

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

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

    SWTFactory.createVerticalSpacer(parent, 1);

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

    fillWithWorkspaceJREs();
    enableButtons();
    fAddButton.setEnabled(JavaRuntime.getVMInstallTypes().length > 0);

    JavaRuntime.addVMInstallChangedListener(fListener);
}

From source file:org.eclipse.jdt.internal.debug.ui.propertypages.ExceptionFilterEditor.java

License:Open Source License

public ExceptionFilterEditor(Composite parent, JavaExceptionBreakpointAdvancedPage page) {
    fBreakpoint = (IJavaExceptionBreakpoint) page.getBreakpoint();
    // top level container
    Composite outer = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;/*from   w w w. ja v a  2 s  .  co  m*/
    layout.marginHeight = 0;
    layout.marginWidth = 0;

    outer.setLayout(layout);
    GridData gd = new GridData(GridData.FILL_BOTH);
    outer.setLayoutData(gd);
    outer.setFont(parent.getFont());
    // filter table
    Label label = new Label(outer, SWT.NONE);
    label.setText(PropertyPageMessages.ExceptionFilterEditor_5);
    label.setFont(parent.getFont());
    gd = new GridData();
    gd.horizontalSpan = 2;
    label.setLayoutData(gd);

    fFilterTable = new Table(outer, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);

    TableLayout tableLayout = new TableLayout();
    ColumnLayoutData[] columnLayoutData = new ColumnLayoutData[1];
    columnLayoutData[0] = new ColumnWeightData(100);
    tableLayout.addColumnData(columnLayoutData[0]);
    fFilterTable.setLayout(tableLayout);
    fFilterTable.setFont(parent.getFont());
    new TableColumn(fFilterTable, SWT.NONE);

    fFilterViewer = new CheckboxTableViewer(fFilterTable);
    fTableEditor = new TableEditor(fFilterTable);
    fFilterViewer.setLabelProvider(new FilterLabelProvider());
    fFilterViewer.setComparator(new FilterViewerComparator());
    fFilterContentProvider = new FilterContentProvider(fFilterViewer);
    fFilterViewer.setContentProvider(fFilterContentProvider);
    // input just needs to be non-null
    fFilterViewer.setInput(this);
    gd = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL);
    gd.widthHint = 100;
    gd.heightHint = 100;
    fFilterViewer.getTable().setLayoutData(gd);
    fFilterViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Filter filter = (Filter) event.getElement();
            fFilterContentProvider.toggleFilter(filter);
        }
    });
    fFilterViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (selection.isEmpty()) {
                fRemoveFilterButton.setEnabled(false);
            } else {
                fRemoveFilterButton.setEnabled(true);
            }
        }
    });
    fFilterViewer.getTable().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent event) {
            if (event.character == SWT.DEL && event.stateMask == 0) {
                removeFilters();
            }
        }
    });

    createFilterButtons(outer);
}

From source file:org.eclipse.jdt.internal.junit.ui.JUnitPreferencePage.java

License:Open Source License

private void createFilterTable(Composite container) {
    TableLayoutComposite layouter = new TableLayoutComposite(container, SWT.NONE);
    layouter.addColumnData(new ColumnWeightData(100));
    layouter.setLayoutData(new GridData(GridData.FILL_BOTH));

    fFilterTable = new Table(layouter, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);

    @SuppressWarnings("unused")
    TableColumn tableColumn = new TableColumn(fFilterTable, SWT.NONE);
    fFilterViewer = new CheckboxTableViewer(fFilterTable);
    fTableEditor = new TableEditor(fFilterTable);
    fFilterViewer.setLabelProvider(new FilterLabelProvider());
    fFilterViewer.setComparator(new FilterViewerSorter());
    fStackFilterContentProvider = new StackFilterContentProvider();
    fFilterViewer.setContentProvider(fStackFilterContentProvider);
    // input just needs to be non-null
    fFilterViewer.setInput(this);
    fFilterViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            Filter filter = (Filter) event.getElement();
            fStackFilterContentProvider.toggleFilter(filter);
        }/*w  w  w .  j  a va2s  .com*/
    });
    fFilterViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            fRemoveFilterButton.setEnabled(!selection.isEmpty());
        }
    });
}

From source file:org.eclipse.jpt.jpa.ui.internal.wizards.entity.EntityRowTableWizardSection.java

License:Open Source License

/**
 * @param parent the main composite - Entity fields page
 * @param model the data model representation
 * @param propertyName data property name
 *//*w  w w .j  a  v  a2s.com*/
public EntityRowTableWizardSection(Composite parent, IDataModel model, String propertyName) {
    super(parent, SWT.NONE);
    this.model = model;
    this.propertyName = propertyName;

    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = 4;
    layout.marginWidth = 0;
    this.setLayout(layout);
    this.setLayoutData(new GridData(GridData.FILL_BOTH));

    mTableWidget = new Table(this, SWT.CHECK | SWT.FULL_SELECTION | SWT.BORDER);
    mTableWidget.setHeaderVisible(true);
    mTableWidget.setLinesVisible(true);

    mTableViewer = new CheckboxTableViewer(mTableWidget);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.verticalSpan = 2;
    mTableWidget.setLayoutData(data);
    mTableViewer.setContentProvider(new EntityRowContentProvider());
    mTableViewer.setLabelProvider(new EntityRowLabelProvider());

    final Composite buttonComposition = new Composite(this, SWT.NULL);
    layout = new GridLayout();
    layout.marginHeight = 0;
    buttonComposition.setLayout(layout);
    buttonComposition.setLayoutData(new GridData(GridData.FILL_VERTICAL | GridData.VERTICAL_ALIGN_BEGINNING));

    addButton = new Button(buttonComposition, SWT.PUSH);
    addButton.setText(JptJpaUiWizardsEntityMessages.ADD_BUTTON_LABEL);
    addButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
    addButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent event) {
            handleAddButtonSelected();
        }

        public void widgetDefaultSelected(SelectionEvent event) {
            //Do nothing
        }
    });

    editButton = new Button(buttonComposition, SWT.PUSH);
    editButton.setText(JptJpaUiWizardsEntityMessages.EDIT_BUTTON_LABEL);
    editButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
    editButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent event) {
            handleEditButtonSelected();
        }

        public void widgetDefaultSelected(SelectionEvent event) {
            //Do nothing
        }
    });
    editButton.setEnabled(false);
    mTableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            handleEditButtonSelected();
        }
    });

    removeButton = new Button(buttonComposition, SWT.PUSH);
    removeButton.setText(JptJpaUiWizardsEntityMessages.REMOVE_BUTTON_LABEL);
    removeButton
            .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL));
    removeButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent event) {
            handleRemoveButtonSelected();
        }

        public void widgetDefaultSelected(SelectionEvent event) {
            //Do nothing
        }
    });
    removeButton.setEnabled(false);

    mTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            if (editButton != null) {
                boolean enabled = ((IStructuredSelection) selection).size() == 1;
                editButton.setEnabled(enabled);
            }
            removeButton.setEnabled(!selection.isEmpty());
        }
    });

    final TableColumn pkColumn = new TableColumn(mTableWidget, SWT.CHECK);
    pkColumn.setText(JptJpaUiWizardsEntityMessages.KEY);
    pkColumn.pack();
    pkColumn.setResizable(false);

    TableColumn nameColumn = new TableColumn(mTableWidget, SWT.NONE);
    nameColumn.setText(JptJpaUiWizardsEntityMessages.NAME_COLUMN);

    TableColumn typeColumn = new TableColumn(mTableWidget, SWT.NONE);
    typeColumn.setText(JptJpaUiWizardsEntityMessages.TYPE_COLUMN);

    this.addControlListener(new ControlAdapter() {
        @Override
        public void controlResized(ControlEvent e) {
            Table table = mTableViewer.getTable();
            TableColumn[] columns = table.getColumns();
            Point buttonArea = buttonComposition.computeSize(SWT.DEFAULT, SWT.DEFAULT);
            Rectangle area = table.getParent().getClientArea();
            Point preferredSize = mTableViewer.getTable().computeSize(SWT.DEFAULT, SWT.DEFAULT);
            int width = area.width - 2 * table.getBorderWidth() - buttonArea.x - (columns.length << 1)
                    - pkColumn.getWidth();
            if (preferredSize.y > area.height + table.getHeaderHeight()) {
                // Subtract the scrollbar width from the total column width
                // if a vertical scrollbar will be required
                Point vBarSize = table.getVerticalBar().getSize();
                width -= vBarSize.x;
            }
            Point oldSize = table.getSize();
            int consumeWidth = 0;
            int col = columns.length - 1;
            for (int i = 1; i < columns.length; i++) {
                if (oldSize.x > area.width) {
                    // table is getting smaller so make the columns
                    // smaller first and then resize the table to
                    // match the client area width
                    consumeWidth = setColumntWidth(width, columns, consumeWidth, i);
                    table.setSize(area.width - buttonArea.x - ((col << 1) + pkColumn.getWidth()), area.height);
                } else {
                    // table is getting bigger so make the table
                    // bigger first and then make the columns wider
                    // to match the client area width
                    consumeWidth = setColumntWidth(width, columns, consumeWidth, i);
                    table.setSize(area.width - buttonArea.x - ((col << 1) + pkColumn.getWidth()), area.height);
                }
            }
        }

        private int setColumntWidth(int width, TableColumn[] columns, int consumeWidth, int i) {
            if (i < columns.length - 1) {
                columns[i].setWidth(width / (columns.length - 1));
                consumeWidth += columns[i].getWidth();
            } else {
                columns[i].setWidth(width - consumeWidth);
            }
            return consumeWidth;
        }
    });

    mTableViewer.addCheckStateListener(new PKFieldCheckStateListener());
    callback = new FieldDialogCallback();
}

From source file:org.eclipse.jpt.jpa.ui.internal.wizards.gen.TablesSelectorWizardPage.java

License:Open Source License

private CheckboxTableViewer buildCheckboxTableViewer(org.eclipse.swt.widgets.Table parent) {
    CheckboxTableViewer tableViewer = new CheckboxTableViewer(parent);
    tableViewer.setUseHashlookup(true);//from w  ww . j av  a2  s.c  o m

    tableViewer.setLabelProvider(this.buildTableTableLabelProvider());
    tableViewer.setContentProvider(this.buildTableTableContentProvider());

    tableViewer.setSorter(this.buildTableViewerSorter());
    tableViewer.addPostSelectionChangedListener(this.buildTableSelectionChangedListener());

    return tableViewer;
}

From source file:org.eclipse.jpt.jpa.ui.internal.wizards.makepersistent.SelectOrderByDialog.java

License:Open Source License

private void createPropertiesTable(Composite parent) {
    TableLayoutComposite layout = new TableLayoutComposite(parent, SWT.NONE);
    addColumnLayoutData(layout);/*w  w w.  ja va2  s.  co  m*/

    final org.eclipse.swt.widgets.Table table = new org.eclipse.swt.widgets.Table(layout,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.CHECK);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableColumn tableNameColumn = new TableColumn(table, SWT.NONE, PROPERTY_COLUMN_INDEX);
    tableNameColumn.setText(JptJpaUiMakePersistentMessages.SELECT_ORDERBY_DIALOG_PROPERTY);
    tableNameColumn.setResizable(true);

    TableColumn entityNameColumn = new TableColumn(table, SWT.NONE, ORDER_COLUMN_INDEX);
    entityNameColumn.setText(JptJpaUiMakePersistentMessages.SELECT_ORDERBY_DIALOG_ORDER);
    entityNameColumn.setResizable(true);

    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.heightHint = TableTools.calculateHeightHint(table, 10);
    gd.widthHint = 400;
    layout.setLayoutData(gd);

    this.propertiesTable = new CheckboxTableViewer(table);
    this.propertiesTable.setUseHashlookup(true);
    this.propertiesTable.setLabelProvider(new PropertyTableLabelProvider());
    this.propertiesTable.setContentProvider(new PropertyTableContentProvider());

    this.propertiesTable.addPostSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handlePropertiesSelectionChanged(event);
        }
    });

    table.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.F2 && e.stateMask == SWT.NONE) {
                //editEntityNameIfPossible();
                e.doit = false;
            }
        }
    });

    this.addCellEditors();
    initPropertiesTable();
}

From source file:org.eclipse.jst.common.project.facet.ui.libprov.user.UserLibraryProviderInstallPanel.java

License:Open Source License

/**
 * Creates the panel control.//from   w  w w  . j  a v  a  2 s. c o m
 * 
 * @param parent the parent composite
 * @return the created control
 */

@Override
public Control createControl(final Composite parent) {
    this.rootComposite = new Composite(parent, SWT.NONE);
    this.rootComposite.setLayout(gl(1, 0, 0));

    final Composite tableComposite = new Composite(this.rootComposite, SWT.NONE);
    tableComposite.setLayoutData(gdhfill());
    tableComposite.setLayout(gl(2, 0, 0));

    final Table libsTable = new Table(tableComposite, SWT.CHECK | SWT.BORDER);
    libsTable.setLayoutData(gdhhint(gdhfill(), 60));

    this.libsTableViewer = new CheckboxTableViewer(libsTable);
    this.libsTableViewer.setContentProvider(new LibrariesContentProvider());
    this.libsTableViewer.setLabelProvider(new LibrariesLabelProvider());
    this.libsTableViewer.setComparator(new ViewerComparator());
    this.libsTableViewer.setInput(new Object());

    final UserLibraryProviderInstallOperationConfig cfg = (UserLibraryProviderInstallOperationConfig) getOperationConfig();

    this.libsTableViewer.setCheckedElements(cfg.getLibraryNames().toArray());

    this.libsTableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final List<String> libs = new ArrayList<String>();

            for (Object element : UserLibraryProviderInstallPanel.this.libsTableViewer.getCheckedElements()) {
                libs.add((String) element);
            }

            cfg.setLibraryNames(libs);
        }
    });

    final IPropertyChangeListener listener = new IPropertyChangeListener() {
        public void propertyChanged(final String property, final Object oldValue, final Object newValue) {
            handleLibraryNamesChanged();
        }
    };

    cfg.addListener(listener, UserLibraryProviderInstallOperationConfig.PROP_LIBRARY_NAMES);

    final Image manageLibrariesImage = getImageDescriptor(IMG_PATH_BUTTON_MANAGE_LIBRARIES).createImage();
    final Image downloadLibraryImage = getImageDescriptor(IMG_PATH_BUTTON_DOWNLOAD).createImage();

    final Menu menu = new Menu(libsTable);
    libsTable.setMenu(menu);

    final ToolBar toolBar = new ToolBar(tableComposite, SWT.FLAT | SWT.VERTICAL);
    toolBar.setLayoutData(gdvfill());

    final SelectionAdapter manageLibrariesListener = new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent event) {
            final String id = UserLibraryPreferencePage.ID;
            final Shell shell = libsTable.getShell();

            final PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(shell, id,
                    new String[] { id }, null);

            if (dialog.open() == Window.OK) {
                UserLibraryProviderInstallPanel.this.libsTableViewer.refresh();

                // We need to send an event up the listener chain since validation needs to be
                // refreshed. This not an ideal solution, but it does work. The name of the 
                // property is not important since the listener that does validation is global.

                final List<String> libNames = cfg.getLibraryNames();
                cfg.notifyListeners("validation", libNames, libNames); //$NON-NLS-1$
            }
        }
    };

    final MenuItem manageLibrariesMenuItem = new MenuItem(menu, SWT.PUSH);
    manageLibrariesMenuItem.setText(Resources.manageLibrariesMenuItem);
    manageLibrariesMenuItem.setImage(manageLibrariesImage);
    manageLibrariesMenuItem.addSelectionListener(manageLibrariesListener);

    final ToolItem manageLibrariesButton = new ToolItem(toolBar, SWT.PUSH);
    manageLibrariesButton.setImage(manageLibrariesImage);
    manageLibrariesButton.setToolTipText(Resources.manageLibrariesButtonToolTip);
    manageLibrariesButton.addSelectionListener(manageLibrariesListener);

    final SelectionAdapter downloadLibraryListener = new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent event) {
            final UserLibraryProviderInstallOperationConfig cfg = (UserLibraryProviderInstallOperationConfig) getOperationConfig();

            final String downloadedLibraryName = DownloadLibraryWizard.open(cfg);

            if (downloadedLibraryName != null) {
                refreshLibrariesList();
                cfg.addLibraryName(downloadedLibraryName);
            }
        }
    };

    this.downloadLibraryMenuItem = new MenuItem(menu, SWT.PUSH);
    this.downloadLibraryMenuItem.setText(Resources.downloadLibraryMenuItem);
    this.downloadLibraryMenuItem.setImage(downloadLibraryImage);
    this.downloadLibraryMenuItem.setEnabled(this.downloadCommandEnabled);
    this.downloadLibraryMenuItem.addSelectionListener(downloadLibraryListener);

    this.downloadLibraryButton = new ToolItem(toolBar, SWT.PUSH);
    this.downloadLibraryButton.setImage(downloadLibraryImage);
    this.downloadLibraryButton.setToolTipText(Resources.downloadLibraryButtonToolTip);
    this.downloadLibraryButton.setEnabled(this.downloadCommandEnabled);
    this.downloadLibraryButton.addSelectionListener(downloadLibraryListener);

    final Control footerControl = createFooter(this.rootComposite);

    if (footerControl != null) {
        footerControl.setLayoutData(gdhfill());
    }

    this.rootComposite.addDisposeListener(new DisposeListener() {
        public void widgetDisposed(final DisposeEvent event) {
            cfg.removeListener(listener);
            manageLibrariesImage.dispose();
            downloadLibraryImage.dispose();
        }
    });

    return this.rootComposite;
}