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

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

Introduction

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

Prototype

public static CheckboxTableViewer newCheckList(Composite parent, int style) 

Source Link

Document

Creates a table viewer on a newly-created table control under the given parent.

Usage

From source file:org.eclipse.ptp.rm.mpi.openmpi.ui.launch.AdvancedOpenMpiRMLaunchConfigurationDynamicTab.java

License:Open Source License

/**
 * @since 2.0/*  www  .j av a 2  s.co  m*/
 */
public void createControl(Composite parent, IResourceManager rm, IPQueue queue) throws CoreException {
    control = new Composite(parent, SWT.NONE);
    control.setLayout(new GridLayout());

    final Group argumentsGroup = new Group(control, SWT.NONE);
    argumentsGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    argumentsGroup.setLayout(layout);
    argumentsGroup.setText(Messages.AdvancedOpenMpiRMLaunchConfigurationDynamicTab_Label_LaunchArguments);

    useArgsDefaultsButton = new Button(argumentsGroup, SWT.CHECK);
    useArgsDefaultsButton
            .setText(Messages.AdvancedOpenMpiRMLaunchConfigurationDynamicTab_Label_DefaultArguments);
    // useArgsDefaultsButton.setSelection(true);
    GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    useArgsDefaultsButton.setLayoutData(gd);
    useArgsDefaultsButton.addSelectionListener(getListener());

    Label label = new Label(argumentsGroup, SWT.NONE);
    label.setLayoutData(new GridData());
    label.setText(Messages.AdvancedOpenMpiRMLaunchConfigurationDynamicTab_Label_Arguments);

    argsText = new Text(argumentsGroup, SWT.BORDER);
    argsText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    // argsText.setEnabled(false);

    final Group ompiParameteresGroup = new Group(control, SWT.NONE);
    ompiParameteresGroup.setText(Messages.AdvancedOpenMpiRMLaunchConfigurationDynamicTab_Label_MCAParameters);
    layout = new GridLayout();
    layout.numColumns = 2;
    ompiParameteresGroup.setLayout(layout);
    ompiParameteresGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    useParamsDefaultsButton = new Button(ompiParameteresGroup, SWT.CHECK);
    useParamsDefaultsButton.addSelectionListener(getListener());
    useParamsDefaultsButton
            .setText(Messages.AdvancedOpenMpiRMLaunchConfigurationDynamicTab_Label_DefaultMCAParameters);
    gd = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    useParamsDefaultsButton.setLayoutData(gd);
    // useParamsDefaultsButton.setSelection(true);

    paramsViewer = CheckboxTableViewer.newCheckList(ompiParameteresGroup, SWT.CHECK | SWT.FULL_SELECTION);
    paramsViewer.setContentProvider(new IStructuredContentProvider() {
        public void dispose() {
            // Empty implementation.
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement != null && inputElement instanceof OmpiInfo) {
                OmpiInfo info = (OmpiInfo) inputElement;
                return info.getParameters();
            }
            return null;
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // Empty implementation.
        }
    });
    paramsViewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object j1, Object j2) {
            return ((Parameter) j1).getName().compareTo(((Parameter) j2).getName());
        }
    });
    paramsViewer.addCheckStateListener(getLocalListener());
    paramsViewer.setAllChecked(false);

    // Enable cursor keys in table
    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(paramsViewer,
            new FocusCellOwnerDrawHighlighter(paramsViewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(paramsViewer) {
        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };
    TableViewerEditor.create(paramsViewer, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    paramsTable = paramsViewer.getTable();
    gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd.heightHint = 100;
    paramsTable.setLayoutData(gd);
    paramsTable.setLinesVisible(true);
    paramsTable.setHeaderVisible(true);
    paramsTable.setEnabled(false);
    // Disable cell item selection
    paramsTable.addListener(SWT.EraseItem, new Listener() {
        /*
         * (non-Javadoc)
         * 
         * @see
         * org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.
         * widgets.Event)
         */
        public void handleEvent(Event event) {
            event.detail &= ~SWT.SELECTED;
        }
    });

    addColumns();

    if (info != null) {
        paramsViewer.setInput(info);
    }

}

From source file:org.eclipse.reqcycle.predicates.ui.dialogs.CheckBoxInputDialog.java

License:Open Source License

@Override
protected void createCustomDialogArea(Composite parent) {

    checkboxTableViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    Table tableOfCustomPredicates = checkboxTableViewer.getTable();
    tableOfCustomPredicates.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(3, 100, true));
    tableOfCustomPredicates.setLayout(tableLayout);

    TableViewerColumn column = new TableViewerColumn(checkboxTableViewer, SWT.None);
    column.getColumn().setResizable(true);

    if (this.contentProvider == null)
        this.contentProvider = ArrayContentProvider.getInstance();
    if (this.labelProvider == null)
        this.labelProvider = this.getDefaultLabelProvider();

    this.checkboxTableViewer.setContentProvider(this.contentProvider);
    this.checkboxTableViewer.setLabelProvider(this.labelProvider);
    this.checkboxTableViewer.setInput(getInput());
    if (initialSelection != null && !initialSelection.isEmpty()) {
        this.checkboxTableViewer.setCheckedElements(initialSelection.toArray());
    }/*  ww  w .ja  v  a 2  s. co  m*/
}

From source file:org.eclipse.reqcycle.ui.collectionspropseditor.internal.components.CollectionsPropsEditorComponent.java

License:Open Source License

private void initTableViewerForEEnum(Composite parent, EEnum eType) {
    tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.MULTI);
    Table table = tableViewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    tableViewer.setContentProvider(new IStructuredContentProvider() {

        @Override/* w  w  w . jav  a2s  .  c  om*/
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        @Override
        public void dispose() {
        }

        @Override
        public Object[] getElements(Object inputElement) {
            return (Object[]) inputElement;
        }
    });
    ((CheckboxTableViewer) tableViewer).addCheckStateListener(new ICheckStateListener() {

        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            Object obj = event.getElement();
            if (obj instanceof EEnumLiteral) {
                if (event.getChecked()) {
                    enteredValues.add(((EEnumLiteral) obj).getInstance());
                } else {
                    enteredValues.remove(((EEnumLiteral) obj).getInstance());
                }
            }
        }
    });
    tableViewer.setInput(eType.getELiterals().toArray());
}

From source file:org.eclipse.reqcycle.ui.components.dialogs.TestDialog.java

License:Open Source License

/**
 * Create contents of the dialog./* w w  w  .j  a v a  2 s .  c  o m*/
 * 
 * @param parent
 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    container.setLayout(new GridLayout(1, false));

    CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(container,
            SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    Table tableOfCustomPredicates = checkboxTableViewer.getTable();
    tableOfCustomPredicates.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(3, 100, true));
    tableOfCustomPredicates.setLayout(tableLayout);

    TableViewerColumn column = new TableViewerColumn(checkboxTableViewer, SWT.None);
    column.getColumn().setResizable(true);

    return container;
}

From source file:org.eclipse.sapphire.ui.forms.swt.CheckBoxListPropertyEditorPresentation.java

License:Open Source License

@Override

protected void createContents(final Composite parent) {
    // Initialize

    final PropertyEditorPart part = part();
    final Property property = part.property();

    this.memberType = property.definition().getType();

    final SortedSet<PropertyDef> allMemberProperties = this.memberType.properties();

    if (allMemberProperties.size() == 1) {
        final PropertyDef prop = allMemberProperties.first();

        if (prop instanceof ValueProperty) {
            this.memberProperty = (ValueProperty) prop;
        } else {//  w w  w. j a  va  2s  .co  m
            throw new IllegalStateException();
        }
    } else {
        throw new IllegalStateException();
    }

    this.possibleValuesService = property.service(PossibleValuesService.class);

    this.possibleValuesServiceListener = new Listener() {
        @Override
        public void handle(final Event event) {
            CheckBoxListPropertyEditorPresentation.this.tableViewer.refresh();
        }
    };

    this.possibleValuesService.attach(this.possibleValuesServiceListener);

    // Create Controls

    final Composite mainComposite = createMainComposite(parent);
    mainComposite.setLayout(glspacing(glayout(2, 0, 0), 2));

    final PropertyEditorAssistDecorator decorator = createDecorator(mainComposite);
    decorator.control().setLayoutData(gdvalign(gd(), SWT.TOP));

    // Setting the whint in the following code is a hacky workaround for the problem
    // tracked by the following JFace bug:
    //
    // https://bugs.eclipse.org/bugs/show_bug.cgi?id=215997
    //

    final Composite tableComposite = new Composite(mainComposite, SWT.NONE);
    tableComposite.setLayoutData(gdwhint(gdfill(), 1));

    final TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);

    this.tableViewer = CheckboxTableViewer.newCheckList(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
    this.table = this.tableViewer.getTable();

    final TableViewerColumn viewerColumn = new TableViewerColumn(this.tableViewer, SWT.NONE);
    final TableColumn column = viewerColumn.getColumn();
    column.setText(this.memberProperty.getLabel(false, CapitalizationType.TITLE_STYLE, false));
    tableColumnLayout.setColumnData(column, new ColumnWeightData(1, 100, true));

    decorator.addEditorControl(mainComposite);

    suppressDashedTableEntryBorder(this.table);

    // Bind to Model

    final ColumnSortComparator comparator = new ColumnSortComparator() {
        @Override
        protected String convertToString(final Object obj) {
            return ((Entry) obj).value;
        }
    };

    final IStructuredContentProvider contentProvider = new IStructuredContentProvider() {
        private List<Entry> entries = new ArrayList<Entry>();

        public Object[] getElements(final Object input) {
            if (this.entries != null) {
                for (Entry entry : this.entries) {
                    entry.dispose();
                }

                this.entries = null;
            }

            final Map<String, LinkedList<Element>> valueToElements = new HashMap<String, LinkedList<Element>>();

            for (final Element element : property()) {
                final String value = readMemberProperty(element);
                LinkedList<Element> elements = valueToElements.get(value);

                if (elements == null) {
                    elements = new LinkedList<Element>();
                    valueToElements.put(value, elements);
                }

                elements.add(element);
            }

            this.entries = new ArrayList<Entry>();

            Set<String> possibleValues;

            try {
                possibleValues = CheckBoxListPropertyEditorPresentation.this.possibleValuesService.values();
            } catch (Exception e) {
                Sapphire.service(LoggingService.class).log(e);
                possibleValues = SetFactory.empty();
            }

            for (String value : possibleValues) {
                final Entry entry;
                final LinkedList<Element> elements = valueToElements.get(value);

                if (elements == null) {
                    entry = new Entry(value, null);
                } else {
                    final Element element = elements.remove();

                    if (elements.isEmpty()) {
                        valueToElements.remove(value);
                    }

                    entry = new Entry(value, element);
                }

                this.entries.add(entry);
            }

            for (Map.Entry<String, LinkedList<Element>> entry : valueToElements.entrySet()) {
                final String value = entry.getKey();

                for (Element element : entry.getValue()) {
                    this.entries.add(new Entry(value, element));
                }
            }

            return this.entries.toArray();
        }

        public void dispose() {
            for (Entry entry : this.entries) {
                entry.dispose();
            }

            this.entries = null;
        }

        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
        }
    };

    this.tableViewer.setContentProvider(contentProvider);

    final ColumnLabelProvider labelProvider = new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            return ((Entry) element).label();
        }

        @Override
        public Image getImage(final Object element) {
            return ((Entry) element).image();
        }

        @Override
        public Color getForeground(final Object element) {
            return ((Entry) element).foreground();
        }
    };

    viewerColumn.setLabelProvider(labelProvider);

    final ICheckStateProvider checkStateProvider = new ICheckStateProvider() {
        public boolean isChecked(final Object element) {
            return ((Entry) element).selected();
        }

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

    this.tableViewer.setCheckStateProvider(checkStateProvider);

    if (part.getRenderingHint(PropertyEditorDef.HINT_SHOW_HEADER, true) == true) {
        this.table.setHeaderVisible(true);

        makeTableSortable(this.tableViewer,
                Collections.<TableColumn, Comparator<Object>>singletonMap(column, comparator),
                CheckBoxListPropertyEditorPresentation.this.possibleValuesService.ordered() ? null : column);
    }

    final ListSelectionService selectionService = part.service(ListSelectionService.class);

    this.tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            selectionService.select(getSelectedElements());
        }
    });

    final Listener selectionServiceListener = new FilteredListener<ListSelectionChangedEvent>() {
        @Override
        protected void handleTypedEvent(final ListSelectionChangedEvent event) {
            setSelectedElements(event.after());
        }
    };

    selectionService.attach(selectionServiceListener);

    addOnDisposeOperation(new Runnable() {
        public void run() {
            selectionService.detach(selectionServiceListener);

            if (CheckBoxListPropertyEditorPresentation.this.possibleValuesService != null) {
                CheckBoxListPropertyEditorPresentation.this.possibleValuesService
                        .detach(CheckBoxListPropertyEditorPresentation.this.possibleValuesServiceListener);
            }
        }
    });

    this.tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final Entry entry = (Entry) event.getElement();

            entry.flip();
            selectionService.select(getSelectedElements());
        }
    });

    this.table.addMouseListener(new MouseAdapter() {
        public void mouseDoubleClick(final MouseEvent event) {
            Entry entry = null;

            for (TableItem item : CheckBoxListPropertyEditorPresentation.this.table.getItems()) {
                if (item.getBounds().contains(event.x, event.y)) {
                    entry = (Entry) item.getData();
                    break;
                }
            }

            if (entry != null) {
                entry.flip();
                selectionService.select(getSelectedElements());
            }
        }
    });

    // Finish Up

    this.tableViewer.setInput(new Object());
    addControl(this.table);
}

From source file:org.eclipse.sapphire.ui.renderers.swt.CheckBoxListPropertyEditorRenderer.java

License:Open Source License

@Override
protected void createContents(final Composite parent) {
    // Initialize

    final PropertyEditorPart part = getPart();
    final Property property = part.property();

    this.memberType = property.definition().getType();

    final SortedSet<PropertyDef> allMemberProperties = this.memberType.properties();

    if (allMemberProperties.size() == 1) {
        final PropertyDef prop = allMemberProperties.first();

        if (prop instanceof ValueProperty) {
            this.memberProperty = (ValueProperty) prop;
        } else {//from www .  ja  v a  2  s . c o  m
            throw new IllegalStateException();
        }
    } else {
        throw new IllegalStateException();
    }

    this.possibleValuesService = property.service(PossibleValuesService.class);

    this.possibleValuesServiceListener = new Listener() {
        @Override
        public void handle(final Event event) {
            CheckBoxListPropertyEditorRenderer.this.tableViewer.refresh();
        }
    };

    this.possibleValuesService.attach(this.possibleValuesServiceListener);

    // Create Controls

    final Composite mainComposite = createMainComposite(parent);
    mainComposite.setLayout(glspacing(glayout(2, 0, 0), 2));

    final PropertyEditorAssistDecorator decorator = createDecorator(mainComposite);
    decorator.control().setLayoutData(gdvalign(gd(), SWT.TOP));

    // Setting the whint in the following code is a hacky workaround for the problem
    // tracked by the following JFace bug:
    //
    // https://bugs.eclipse.org/bugs/show_bug.cgi?id=215997
    //

    final Composite tableComposite = new Composite(mainComposite, SWT.NONE);
    tableComposite.setLayoutData(gdwhint(gdfill(), 1));

    final TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);

    this.tableViewer = CheckboxTableViewer.newCheckList(tableComposite, SWT.BORDER | SWT.FULL_SELECTION);
    this.table = this.tableViewer.getTable();

    final TableViewerColumn viewerColumn = new TableViewerColumn(this.tableViewer, SWT.NONE);
    final TableColumn column = viewerColumn.getColumn();
    column.setText(this.memberProperty.getLabel(false, CapitalizationType.TITLE_STYLE, false));
    tableColumnLayout.setColumnData(column, new ColumnWeightData(1, 100, true));

    decorator.addEditorControl(mainComposite);

    suppressDashedTableEntryBorder(this.table);

    // Bind to Model

    final ColumnSortComparator comparator = new ColumnSortComparator() {
        @Override
        protected String convertToString(final Object obj) {
            return ((Entry) obj).value;
        }
    };

    final IStructuredContentProvider contentProvider = new IStructuredContentProvider() {
        private List<Entry> entries = new ArrayList<Entry>();

        public Object[] getElements(final Object input) {
            if (this.entries != null) {
                for (Entry entry : this.entries) {
                    entry.dispose();
                }

                this.entries = null;
            }

            final Map<String, LinkedList<Element>> valueToElements = new HashMap<String, LinkedList<Element>>();

            for (Element element : getList()) {
                final String value = readMemberProperty(element);
                LinkedList<Element> elements = valueToElements.get(value);

                if (elements == null) {
                    elements = new LinkedList<Element>();
                    valueToElements.put(value, elements);
                }

                elements.add(element);
            }

            this.entries = new ArrayList<Entry>();

            Set<String> possibleValues;

            try {
                possibleValues = CheckBoxListPropertyEditorRenderer.this.possibleValuesService.values();
            } catch (Exception e) {
                SapphireUiFrameworkPlugin.log(e);
                possibleValues = SetFactory.empty();
            }

            for (String value : possibleValues) {
                final Entry entry;
                final LinkedList<Element> elements = valueToElements.get(value);

                if (elements == null) {
                    entry = new Entry(value, null);
                } else {
                    final Element element = elements.remove();

                    if (elements.isEmpty()) {
                        valueToElements.remove(value);
                    }

                    entry = new Entry(value, element);
                }

                this.entries.add(entry);
            }

            for (Map.Entry<String, LinkedList<Element>> entry : valueToElements.entrySet()) {
                final String value = entry.getKey();

                for (Element element : entry.getValue()) {
                    this.entries.add(new Entry(value, element));
                }
            }

            return this.entries.toArray();
        }

        public void dispose() {
            for (Entry entry : this.entries) {
                entry.dispose();
            }

            this.entries = null;
        }

        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
        }
    };

    this.tableViewer.setContentProvider(contentProvider);

    final ColumnLabelProvider labelProvider = new ColumnLabelProvider() {
        @Override
        public String getText(final Object element) {
            return ((Entry) element).label();
        }

        @Override
        public Image getImage(final Object element) {
            return ((Entry) element).image();
        }

        @Override
        public Color getForeground(final Object element) {
            return ((Entry) element).foreground();
        }
    };

    viewerColumn.setLabelProvider(labelProvider);

    final ICheckStateProvider checkStateProvider = new ICheckStateProvider() {
        public boolean isChecked(final Object element) {
            return ((Entry) element).selected();
        }

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

    this.tableViewer.setCheckStateProvider(checkStateProvider);

    if (part.getRenderingHint(PropertyEditorDef.HINT_SHOW_HEADER, true) == true) {
        this.table.setHeaderVisible(true);

        makeTableSortable(this.tableViewer,
                Collections.<TableColumn, Comparator<Object>>singletonMap(column, comparator),
                CheckBoxListPropertyEditorRenderer.this.possibleValuesService.ordered() ? null : column);
    }

    final ListSelectionService selectionService = part.service(ListSelectionService.class);

    this.tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            selectionService.select(getSelectedElements());
        }
    });

    final Listener selectionServiceListener = new Listener() {
        @Override
        public void handle(final Event event) {
            setSelectedElements(((ListSelectionChangedEvent) event).after());
        }
    };

    selectionService.attach(selectionServiceListener);

    addOnDisposeOperation(new Runnable() {
        public void run() {
            selectionService.detach(selectionServiceListener);

            if (CheckBoxListPropertyEditorRenderer.this.possibleValuesService != null) {
                CheckBoxListPropertyEditorRenderer.this.possibleValuesService
                        .detach(CheckBoxListPropertyEditorRenderer.this.possibleValuesServiceListener);
            }
        }
    });

    this.tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(final CheckStateChangedEvent event) {
            final Entry entry = (Entry) event.getElement();

            entry.flip();
            selectionService.select(getSelectedElements());
        }
    });

    this.table.addMouseListener(new MouseAdapter() {
        public void mouseDoubleClick(final MouseEvent event) {
            Entry entry = null;

            for (TableItem item : CheckBoxListPropertyEditorRenderer.this.table.getItems()) {
                if (item.getBounds().contains(event.x, event.y)) {
                    entry = (Entry) item.getData();
                    break;
                }
            }

            if (entry != null) {
                entry.flip();
                selectionService.select(getSelectedElements());
            }
        }
    });

    // Finish Up

    this.tableViewer.setInput(new Object());
    addControl(this.table);
}

From source file:org.eclipse.scada.ui.chart.selector.ChartConfigurationInputSelector.java

License:Open Source License

public ChartConfigurationInputSelector(final Composite parent, final Chart chart, final boolean showHeader) {
    this.viewer = CheckboxTableViewer.newCheckList(parent, SWT.FULL_SELECTION);
    this.viewer.getControl().addDisposeListener(new DisposeListener() {

        @Override//  w  w w . j  a  va 2s.c  o m
        public void widgetDisposed(final DisposeEvent e) {
            handleDispose();
        }
    });

    this.inputs = EMFObservables.observeList(chart, ChartPackage.Literals.CHART__INPUTS);

    if (showHeader) {
        final TableLayout layout = new TableLayout();

        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText(Messages.ChartConfigurationInputSelector_Channels_Label);
        this.viewer.getTable().setHeaderVisible(true);

        layout.addColumnData(new ColumnWeightData(100));

        this.viewer.getTable().setLayout(layout);
    }

    ViewerSupport.bind(this.viewer, this.inputs, EMFProperties.value(ChartPackage.Literals.DATA_SERIES__LABEL));

    final IObservableSet elements = ((ObservableListContentProvider) this.viewer.getContentProvider())
            .getKnownElements();
    final IObservableMap[] visibile = Properties.observeEach(elements,
            new IValueProperty[] { EMFProperties.value(ChartPackage.Literals.DATA_SERIES__VISIBLE) });

    this.checked = ViewersObservables.observeCheckedElements(this.viewer, null);

    // initial set
    for (final DataSeries series : chart.getInputs()) {
        if (series.isVisible()) {
            this.checked.add(series);
        }
    }

    this.checked.addSetChangeListener(new ISetChangeListener() {

        @Override
        public void handleSetChange(final SetChangeEvent event) {
            for (final Object o : event.diff.getAdditions()) {
                ((DataSeries) o).setVisible(true);
            }
            for (final Object o : event.diff.getRemovals()) {
                ((DataSeries) o).setVisible(false);
            }
        }
    });

    visibile[0].addMapChangeListener(new IMapChangeListener() {

        @Override
        public void handleMapChange(final MapChangeEvent event) {
            for (final Object o : event.diff.getChangedKeys()) {
                if ((Boolean) event.diff.getNewValue(o)) {
                    ChartConfigurationInputSelector.this.checked.add(o);
                } else {
                    ChartConfigurationInputSelector.this.checked.remove(o);
                }
            }
        }
    });

}

From source file:org.eclipse.scada.ui.chart.selector.ChartInputSelector.java

License:Open Source License

public ChartInputSelector(final Composite parent, final ChartViewer chart, final boolean showHeader) {
    this.viewer = CheckboxTableViewer.newCheckList(parent, SWT.FULL_SELECTION);
    this.viewer.getControl().addDisposeListener(new DisposeListener() {

        @Override/*w  w  w . j av  a  2  s . c  o m*/
        public void widgetDisposed(final DisposeEvent e) {
            handleDispose();
        }
    });

    this.inputs = chart.getItems();

    if (showHeader) {
        final TableLayout layout = new TableLayout();

        final TableViewerColumn col = new TableViewerColumn(this.viewer, SWT.NONE);
        col.getColumn().setText(Messages.ChartInputSelector_Channels_Label);
        this.viewer.getTable().setHeaderVisible(true);

        layout.addColumnData(new ColumnWeightData(100));

        this.viewer.getTable().setLayout(layout);
    }

    this.contentProvider = new ObservableListContentProvider();
    this.viewer.setContentProvider(this.contentProvider);
    this.viewer.setLabelProvider(new ObservableMapLabelProviderExtension(
            Properties.observeEach(this.contentProvider.getKnownElements(),
                    new IValueProperty[] { BeanProperties.value(ChartInput.PROP_LABEL),
                            BeanProperties.value(ChartInput.PROP_PREVIEW) })));
    this.viewer.setInput(this.inputs);

    this.visibleElements = BeanProperties.value(ChartInput.class, ChartInput.PROP_VISIBLE)
            .observeDetail(this.contentProvider.getKnownElements());
    this.checked = ViewersObservables.observeCheckedElements(this.viewer, null);

    for (final Object key : this.visibleElements.keySet()) {
        checkEntry(key);
    }
    this.visibleElements.addMapChangeListener(new IMapChangeListener() {

        @Override
        public void handleMapChange(final MapChangeEvent event) {
            for (final Object key : event.diff.getAddedKeys()) {
                checkEntry(key);
            }
            for (final Object key : event.diff.getChangedKeys()) {
                checkEntry(key);
            }
        }

    });

    this.checked.addSetChangeListener(new ISetChangeListener() {

        @Override
        public void handleSetChange(final SetChangeEvent event) {
            for (final Object o : event.diff.getRemovals()) {
                ((ChartInput) o).setVisible(false);
            }
            for (final Object o : event.diff.getAdditions()) {
                ((ChartInput) o).setVisible(true);
            }
        }
    });
}

From source file:org.eclipse.sirius.common.ui.tools.api.wizard.CheckboxTreeAndListGroup.java

License:Open Source License

/**
 * Create this group's list viewer.//from w w  w  .  j a  v a 2s .  c  o  m
 * 
 * @param parent
 *            the parent
 * @param width
 *            int
 * @param height
 *            int
 */
protected void createListViewer(final Composite parent, final int width, final int height) {
    listViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
    final GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = width;
    data.heightHint = height;
    listViewer.getTable().setLayoutData(data);
    listViewer.getTable().setFont(parent.getFont());
    listViewer.setContentProvider(listContentProvider);
    listViewer.setLabelProvider(listLabelProvider);
    listViewer.addCheckStateListener(this);
}

From source file:org.eclipse.sirius.ui.business.internal.viewpoint.ViewpointSelectionDialog.java

License:Open Source License

/**
 * {@inheritDoc}//w  w  w . ja  va 2s  .co m
 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite composite = (Composite) super.createDialogArea(parent);
    composite.setLayout(new GridLayout(1, false));

    table = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.FULL_SELECTION);
    ColumnViewerToolTipSupport.enableFor(table, ToolTip.NO_RECREATE);
    table.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    table.setContentProvider(new TableContentProvider());
    table.setLabelProvider(new TableLabelProvider());
    table.addCheckStateListener(new TableCheckStateListener());
    table.setInput(input);

    for (Item item : input) {
        item.computeState();
    }

    return composite;
}