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

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

Introduction

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

Prototype

public ViewerComparator() 

Source Link

Document

Creates a new ViewerComparator , which uses the default comparator to sort strings.

Usage

From source file:de.anbos.eclipse.easyshell.plugin.preferences.CommandPage.java

License:Open Source License

private void createTableViewer(Composite parent) {
    tableViewer = new TableViewer(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    createColumns(parent, tableViewer);/*from   w w  w  . j a  va2s  .  com*/
    final Table table = tableViewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    tableViewer.setLabelProvider(new CommandDataLabelProvider());
    tableViewer.setContentProvider(new CommandDataContentProvider());
    if (filter != null) {
        tableViewer.addFilter(filter);
    }

    // Get the content for the viewer, setInput will call getElements in the
    // contentProvider
    tableViewer.setInput(CommandDataStore.instance());

    // Layout the viewer
    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.FILL;
    gridData.horizontalSpan = 2;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    tableViewer.getControl().setLayoutData(gridData);

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            editDialog();
        }
    });

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            int selected = selection.size();
            boolean presetSelectedOrNotEqualType = false;
            Iterator<?> elements = selection.iterator();
            PresetType type = PresetType.presetUnknown;
            while (elements.hasNext()) {
                CommandData data = (CommandData) elements.next();
                if (type == PresetType.presetUnknown) {
                    type = data.getPresetType();
                }
                if (data.getPresetType() == PresetType.presetPlugin || type != data.getPresetType()) {
                    presetSelectedOrNotEqualType = true;
                    break;
                }
            }
            editButton.setEnabled(selected == 1);
            addCopyButton.setEnabled(selected == 1);
            removeButton.setEnabled(selected > 0 && !presetSelectedOrNotEqualType);
        }
    });

    tableViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object object1, Object object2) {
            if (!(object1 instanceof CommandData) || !(object2 instanceof CommandData)) {
                return super.compare(viewer, object1, object2);
            }
            CommandData data1 = (CommandData) object1;
            CommandData data2 = (CommandData) object2;
            if (data1.getPosition() > data2.getPosition()) {
                return 1;
            }
            if (data1.getPosition() < data2.getPosition()) {
                return -1;
            }
            if (data1.getPosition() == data2.getPosition()) {
                return 0;
            }
            return super.compare(viewer, object1, object2);
        }

        @Override
        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });
}

From source file:de.anbos.eclipse.easyshell.plugin.preferences.MenuPage.java

License:Open Source License

private void createTableViewer(Composite parent) {
    tableViewer = CheckboxTableViewer.newCheckList(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    createColumns(parent, tableViewer);//  w  w  w . ja va2 s . com
    final Table table = tableViewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    tableViewer.setLabelProvider(new MenuDataLabelProvider());
    tableViewer.setContentProvider(new MenuDataContentProvider());
    if (filter != null) {
        tableViewer.addFilter(filter);
    }

    // Get the content for the viewer, setInput will call getElements in the
    // contentProvider
    tableViewer.setInput(MenuDataStore.instance());

    // Layout the viewer
    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.FILL;
    gridData.horizontalSpan = 2;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    tableViewer.getControl().setLayoutData(gridData);

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            editDialog();
        }
    });

    tableViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            MenuData data = (MenuData) event.getElement();
            data.setEnabled(event.getChecked());
        }
    });

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            int selected = selection.size();
            addCopyButton.setEnabled(selected == 1);
            editButton.setEnabled(selected == 1);
            removeButton.setEnabled(selected > 0);
            upButton.setEnabled(selected == 1);
            downButton.setEnabled(selected == 1);
        }
    });

    tableViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object object1, Object object2) {
            if (!(object1 instanceof MenuData) || !(object2 instanceof MenuData)) {
                return super.compare(viewer, object1, object2);
            }
            MenuData data1 = (MenuData) object1;
            MenuData data2 = (MenuData) object2;
            if (data1.getPosition() > data2.getPosition()) {
                return 1;
            }
            if (data1.getPosition() < data2.getPosition()) {
                return -1;
            }
            if (data1.getPosition() == data2.getPosition()) {
                return 0;
            }
            return super.compare(viewer, object1, object2);
        }

        @Override
        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });

    itemMover = new MenuDataMover(table, MenuDataStore.instance());
}

From source file:de.bmw.yamaica.common.ui.dialogs.YamaicaResourceSelectionDialog.java

License:Mozilla Public License

protected Control createDialogArea(Composite parent) {
    // create composite
    Composite area = (Composite) super.createDialogArea(parent);

    final Listener listener = new Listener() {
        public void handleEvent(Event event) {
            if (statusMessage != null && validator != null) {
                String errorMsg = validator.isValid(getContainerFullPath());

                if (errorMsg == null || errorMsg.equals(EMPTY_STRING)) {
                    statusMessage.setText(EMPTY_STRING);
                    getOkButton().setEnabled(true);
                } else {
                    statusMessage.setText(errorMsg);
                    getOkButton().setEnabled(false);
                }/*from   ww  w  .  j  av  a2 s .co  m*/
            }
        }
    };

    Label label = new Label(area, SWT.WRAP);
    label.setText(getMessage());
    label.setFont(area.getFont());

    if (allowNewContainerName) {
        containerNameField = new Text(area, SWT.SINGLE | SWT.BORDER);
        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.widthHint = 320;
        containerNameField.setLayoutData(gd);
        containerNameField.addListener(SWT.Modify, listener);
        containerNameField.setFont(area.getFont());
    } else {
        // filler...
        new Label(area, SWT.NONE);
    }

    DrillDownComposite drillDown = new DrillDownComposite(area, SWT.BORDER);
    GridData spec = new GridData(SWT.FILL, SWT.FILL, true, true);
    spec.widthHint = 320;
    spec.heightHint = 300;
    drillDown.setLayoutData(spec);

    // Create tree viewer inside drill down.
    treeViewer = new TreeViewer(drillDown, SWT.NONE);
    drillDown.setChildTree(treeViewer);
    ResourceContentProvider cp = new ResourceContentProvider();
    cp.showClosedProjects(showClosedProjects);
    treeViewer.setContentProvider(cp);
    treeViewer.setLabelProvider(WorkbenchLabelProvider.getDecoratingWorkbenchLabelProvider());
    treeViewer.setComparator(new ViewerComparator());
    treeViewer.setUseHashlookup(true);
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            IContainer container = (IContainer) selection.getFirstElement(); // allow null

            if (null != containerNameField) {
                if (null == container) {
                    containerNameField.setText(EMPTY_STRING);//$NON-NLS-1$
                } else {
                    String text = TextProcessor.process(
                            container.getFullPath().makeRelativeTo(rootContainer.getFullPath()).toString());
                    containerNameField.setText(text);
                    containerNameField.setToolTipText(text);
                }
            }

            // fire an event so the parent can update its controls
            if (listener != null) {
                Event changeEvent = new Event();
                changeEvent.type = SWT.Selection;
                changeEvent.widget = treeViewer.getControl();
                listener.handleEvent(changeEvent);
            }
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ISelection selection = event.getSelection();

            if (selection instanceof IStructuredSelection) {
                Object item = ((IStructuredSelection) selection).getFirstElement();

                if (item == null) {
                    return;
                }

                if (treeViewer.getExpandedState(item)) {
                    treeViewer.collapseToLevel(item, 1);
                } else {
                    treeViewer.expandToLevel(item, 1);
                }
            }
        }
    });

    treeViewer.setInput(rootContainer);

    // container selection group
    // group = new ContainerSelectionGroup(area, listener, allowNewContainerName, getMessage(), showClosedProjects);

    if (initialSelection != null) {
        // group.setSelectedContainer(initialSelection);
        // expand to and select the specified container
        List<IContainer> itemsToExpand = new ArrayList<IContainer>();
        IContainer parentContainer = initialSelection.getParent();

        while (parentContainer != null) {
            itemsToExpand.add(0, parentContainer);
            parentContainer = parentContainer.getParent();
        }

        treeViewer.setExpandedElements(itemsToExpand.toArray());
        treeViewer.setSelection(new StructuredSelection(initialSelection), true);
    }

    statusMessage = new Label(area, SWT.WRAP);
    statusMessage.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    statusMessage.setText(" \n "); //$NON-NLS-1$
    statusMessage.setFont(parent.getFont());

    return dialogArea;
}

From source file:de.byteholder.geoclipse.preferences.PrefPageMapProviders.java

License:Open Source License

private void createUI20MapViewer(final Composite parent) {

    final PixelConverter pixelConverter = new PixelConverter(parent);

    final TableColumnLayout tableLayout = new TableColumnLayout();

    final Composite layoutContainer = new Composite(parent, SWT.NONE);
    layoutContainer.setLayout(tableLayout);
    GridDataFactory.fillDefaults()//
            .hint(400, pixelConverter.convertHeightInCharsToPixels(10)).grab(true, true)
            .applyTo(layoutContainer);//from   w w w  .  ja  v a2  s .c  om

    /*
     * create table
     */
    final Table table = new Table(layoutContainer, SWT.FULL_SELECTION | SWT.BORDER);

    table.setLayout(new TableLayout());
    table.setHeaderVisible(true);
    table.setLinesVisible(false);

    _mpViewer = new TableViewer(table);
    _mpViewer.setUseHashlookup(true);

    /*
     * create columns
     */
    TableViewerColumn tvc;
    TableColumn tc;

    // column: server type
    tvc = new TableViewerColumn(_mpViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setToolTipText(Messages.Pref_Map_Viewer_Column_Lbl_ServerType_Tooltip);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final MP mapProvider = (MP) cell.getElement();

            if (mapProvider instanceof MPWms) {
                cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypeWms);
            } else if (mapProvider instanceof MPCustom) {
                cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypeCustom);
            } else if (mapProvider instanceof MPProfile) {
                cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypeMapProfile);
            } else if (mapProvider instanceof MPPlugin) {
                cell.setText(Messages.Pref_Map_Viewer_Column_ContentServerTypePlugin);
            } else {
                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    tableLayout.setColumnData(tvc.getColumn(),
            new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4)));

    // column: map provider
    tvc = new TableViewerColumn(_mpViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_MapProvider);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final MP mapProvider = (MP) cell.getElement();

            cell.setText(mapProvider.getName());
        }
    });
    tableLayout.setColumnData(tvc.getColumn(), new ColumnWeightData(20));

    // column: offline path
    tvc = new TableViewerColumn(_mpViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_OfflinePath);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final MP mapProvider = (MP) cell.getElement();

            cell.setText(mapProvider.getOfflineFolder());
        }
    });
    tableLayout.setColumnData(tvc.getColumn(), new ColumnWeightData(10));

    // column: layer
    tvc = new TableViewerColumn(_mpViewer, SWT.TRAIL);
    tc = tvc.getColumn();
    tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_Layer);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            String layer = UI.EMPTY_STRING;

            final MP mapProvider = (MP) cell.getElement();
            if (mapProvider instanceof MPWms) {

                final MPWms wmsMapProvider = (MPWms) mapProvider;

                final StringBuilder sb = new StringBuilder();
                sb.append(wmsMapProvider.getAvailableLayers());

                layer = sb.toString();
            }
            cell.setText(layer);
        }
    });
    tableLayout.setColumnData(tvc.getColumn(),
            new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    // column: offline file counter
    tvc = new TableViewerColumn(_mpViewer, SWT.TRAIL);
    tc = tvc.getColumn();
    tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_OfflineFileCounter);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final int offlineTileCounter = ((MP) cell.getElement()).getOfflineFileCounter();
            if (offlineTileCounter == MP.OFFLINE_INFO_NOT_READ) {
                cell.setText(Messages.pref_map_lable_NA);
            } else if (offlineTileCounter > 0) {
                cell.setText(Integer.toString(offlineTileCounter));
            } else {
                cell.setText(UI.DASH_WITH_SPACE);
            }
        }
    });
    tableLayout.setColumnData(tvc.getColumn(),
            new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    // column: offline file size
    tvc = new TableViewerColumn(_mpViewer, SWT.TRAIL);
    tc = tvc.getColumn();
    tc.setText(Messages.Pref_Map_Viewer_Column_Lbl_OfflineFileSize);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final long offlineTileSize = ((MP) cell.getElement()).getOfflineFileSize();
            if (offlineTileSize == MP.OFFLINE_INFO_NOT_READ) {
                cell.setText(Messages.pref_map_lable_NA);
            } else if (offlineTileSize > 0) {
                cell.setText(_nf.format((float) offlineTileSize / 1024 / 1024));
            } else {
                cell.setText(UI.DASH_WITH_SPACE);
            }
        }
    });
    tableLayout.setColumnData(tvc.getColumn(),
            new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(12)));

    /*
     * create table viewer
     */
    _mpViewer.setContentProvider(new MapContentProvider());
    _mpViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(final Viewer viewer, final Object e1, final Object e2) {

            final MP mp1 = (MP) e1;
            final MP mp2 = (MP) e2;

            final boolean thisIsPlugin = e1 instanceof MPPlugin;
            final boolean otherIsPlugin = e2 instanceof MPPlugin;

            if (thisIsPlugin && otherIsPlugin) {
                return mp1.getName().compareTo(mp2.getName());
            } else if (thisIsPlugin) {
                return 1;
            } else if (otherIsPlugin) {
                return -1;
            } else {
                return mp1.getName().compareTo(mp2.getName());
            }
        }
    });

    _mpViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            onSelectMapProvider(event);
        }
    });

    _mpViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {

            if (_selectedMapProvider instanceof MPWms) {

                openConfigDialogWms();

            } else if (_selectedMapProvider instanceof MPCustom) {

                openConfigDialogCustom();

            } else if (_selectedMapProvider instanceof MPProfile) {

                openConfigDialogMapProfile();

            } else {

                // select name
                _txtMapProviderName.setFocus();
                _txtMapProviderName.selectAll();
            }
        }
    });
}

From source file:de.femodeling.e4.ui.progress.internal.BlockedJobsDialog.java

License:Open Source License

/**
 * This method creates a dialog area in the parent composite and displays a
 * progress tree viewer of the running jobs.
 * /*from  w  w w . j a  v a2 s.  c  o  m*/
 * @param parent
 *            The parent Composite.
 */
void showJobDetails(Composite parent) {
    viewer = new DetailedProgressViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    viewer.setComparator(new ViewerComparator() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public int compare(Viewer testViewer, Object e1, Object e2) {
            return ((Comparable) e1).compareTo(e2);
        }
    });
    ProgressViewerContentProvider provider = getContentProvider();
    viewer.setContentProvider(provider);
    viewer.setInput(provider);
    viewer.setLabelProvider(new ProgressLabelProvider());
    GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
    data.horizontalSpan = 2;
    int heightHint = convertHeightInCharsToPixels(10);
    data.heightHint = heightHint;
    viewer.getControl().setLayoutData(data);
}

From source file:de.femodeling.e4.ui.progress.internal.ProgressManagerUtil.java

License:Open Source License

/**
 * Return a viewer comparator for looking at the jobs.
 * /*from ww w . j a  v  a  2  s.  c om*/
 * @return ViewerComparator
 */
static ViewerComparator getProgressViewerComparator() {
    return new ViewerComparator() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
         *      java.lang.Object, java.lang.Object)
         */
        public int compare(Viewer testViewer, Object e1, Object e2) {
            return ((Comparable) e1).compareTo(e2);
        }
    };
}

From source file:de.femodeling.e4.ui.progress.internal.ProgressMonitorJobsDialog.java

License:Open Source License

/**
 * The details button has been selected. Open or close the progress viewer
 * as appropriate./*from  w  w  w .  j  a  v  a 2s . c o m*/
 *  
 */
void handleDetailsButtonSelect() {
    Shell shell = getShell();
    Point shellSize = shell.getSize();
    Composite composite = (Composite) getDialogArea();
    if (viewer != null) {
        viewer.getControl().dispose();
        viewer = null;
        composite.layout();
        shell.setSize(shellSize.x, shellSize.y - viewerHeight);
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_DetailsTitle);
    } else {
        //Abort if there are no jobs visible
        if (ProgressManager.getInstance().getRootElements(IProgressConstants.DEBUG_SHOW_ALL_JOBS).length == 0) {
            detailsButton.setEnabled(false);
            return;
        }

        viewer = new DetailedProgressViewer(viewerComposite,
                SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
        viewer.setComparator(new ViewerComparator() {
            /*
             * (non-Javadoc)
             * 
             * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
             *      java.lang.Object, java.lang.Object)
             */
            public int compare(Viewer testViewer, Object e1, Object e2) {
                return ((Comparable) e1).compareTo(e2);
            }
        });

        viewer.setContentProvider(new ProgressViewerContentProvider(shell, viewer, true, false) {
            public Object[] getElements(Object inputElement) {
                return super.getElements(inputElement);
            }
        });

        viewer.setLabelProvider(new ProgressLabelProvider());
        viewer.setInput(this);
        GridData viewerData = new GridData(GridData.FILL_BOTH);
        viewer.getControl().setLayoutData(viewerData);
        GridData viewerCompositeData = (GridData) viewerComposite.getLayoutData();
        viewerCompositeData.heightHint = convertHeightInCharsToPixels(10);
        viewerComposite.layout(true);
        viewer.getControl().setVisible(true);
        viewerHeight = viewerComposite.computeTrim(0, 0, 0, viewerCompositeData.heightHint).height;
        detailsButton.setText(ProgressMessages.ProgressMonitorJobsDialog_HideTitle);
        shell.setSize(shellSize.x, shellSize.y + viewerHeight);
    }
}

From source file:de.ovgu.featureide.examples.wizards.ExampleNewWizardPage.java

License:Open Source License

/**
 * Create the checkbox list for the found projects.
 * //  w w w .j a  v a  2s. c o  m
 * @param workArea
 */
private void createProjectsList(final Composite workArea) {
    Label title = new Label(workArea, SWT.NONE);

    title.setText("Choosable Examples");

    Composite listComposite = new Composite(workArea, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginWidth = 0;
    layout.makeColumnsEqualWidth = false;
    listComposite.setLayout(layout);

    listComposite.setLayoutData(
            new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH));

    projectsList = new CheckboxTreeViewer(listComposite, SWT.BORDER);
    GridData listData = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
    listData.minimumHeight = 175;
    projectsList.getControl().setLayoutData(listData);
    projectsList.setContentProvider(new ITreeContentProvider() {

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

        public Object[] getElements(Object inputElement) {
            return selectedProjects;
        }

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

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

        public void dispose() {
        }

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

    });

    projectsList.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            return ((ProjectRecord) element).getProjectLabel();
        }
    });

    projectsList.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {

            ProjectRecord tmpRecord = (ProjectRecord) event.getElement();
            if (tmpRecord.hasWarnings()) {
                projectsList.setChecked(tmpRecord, false);
                setMessage(tmpRecord.getWarningText(), WARNING);
            }

            setPageComplete(projectsList.getCheckedElements().length > 0);
        }
    });

    projectsList.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {

            if (event.getSelection() instanceof IStructuredSelection) {
                IStructuredSelection iss = (IStructuredSelection) event.getSelection();

                ProjectRecord tmpRecord = (ProjectRecord) iss.getFirstElement();
                descBox.setText(tmpRecord.getDescription());

                if (tmpRecord.hasWarnings()) {
                    setMessage(tmpRecord.getWarningText(), WARNING);
                } else {
                    setMessage("");
                }

            }

        }
    }

    );

    projectsList.setInput(this);
    projectsList.setComparator(new ViewerComparator());

    createSelectionButtons(listComposite);
}

From source file:de.ovgu.featureide.fm.ui.editors.ConstraintDialog.java

License:Open Source License

/**
 * initializes the group containing the searchText and featureTable
 * //from   w  w  w  . ja va2  s.com
 * @param featuremodel
 */
private void initFeatureGroup(final FeatureModel featuremodel) {

    featureGroup = new Group(shell, SWT.NONE);
    featureGroup.setText("Features");
    GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    featureGroup.setLayoutData(gridData);
    GridLayout featureGroupLayout = new GridLayout();
    featureGroupLayout.numColumns = 1;
    featureGroup.setLayout(featureGroupLayout);

    searchFeatureText = new StyledText(featureGroup, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    searchFeatureText.setText(FILTERTEXT);
    searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_GRAY));
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    searchFeatureText.setLayoutData(gridData);

    Composite tableComposite = new Composite(featureGroup, SWT.NONE);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    tableComposite.setLayoutData(gridData);

    final TableViewer featureTableViewer = new TableViewer(tableComposite,
            SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    featureTable = featureTableViewer.getTable();
    featureTableViewer.setContentProvider(new ArrayContentProvider());
    TableViewerColumn viewerNameColumn = new TableViewerColumn(featureTableViewer, SWT.NONE);
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    tableColumnLayout.setColumnData(viewerNameColumn.getColumn(), new ColumnWeightData(100, 100, false));

    featureTableViewer.setComparator(new ViewerComparator() {

        @Override
        public int compare(Viewer viewer, Object feature1, Object feature2) {

            return ((Feature) feature1).getName().compareToIgnoreCase(((Feature) feature2).getName());
        }

    });

    viewerNameColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            cell.setText(((Feature) cell.getElement()).getName());

        }
    });

    searchFeatureText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            ViewerFilter searchFilter = new ViewerFilter() {

                @Override
                public boolean select(Viewer viewer, Object parentElement, Object element) {
                    return ((Feature) element).getName().toLowerCase(Locale.ENGLISH)
                            .contains(searchFeatureText.getText().toLowerCase(Locale.ENGLISH));
                }

            };
            if (!searchFeatureText.getText().equalsIgnoreCase(FILTERTEXT)) {
                featureTableViewer.addFilter(searchFilter);

            }
        }

    });

    searchFeatureText.addListener(SWT.FocusOut, new Listener() {

        @Override
        public void handleEvent(Event event) {
            if (searchFeatureText.getText().isEmpty()) {
                searchFeatureText.setText(FILTERTEXT);
                searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_GRAY));

            }

        }
    });
    searchFeatureText.addListener(SWT.FocusIn, new Listener() {

        @Override
        public void handleEvent(Event event) {
            if (searchFeatureText.getText().equals(FILTERTEXT))

                searchFeatureText.setText("");
            searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_BLACK));
        }

    });

    featureTableViewer.setInput(featureModel.getFeatures());

    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.grabExcessVerticalSpace = true;
    featureTable.setLayoutData(gridData);

    featureTable.addListener(SWT.MouseDoubleClick, new Listener() {
        @Override
        public void handleEvent(Event event) {
            TableItem[] selectedItem = featureTable.getSelection();
            StringBuilder temp = new StringBuilder(constraintText.getText());

            temp.delete(x, y);
            if (selectedItem.length > 0) {
                temp.insert(x > y ? y : x,
                        " " + (selectedItem[0].getText().contains(" ")
                                || Operator.isOperatorName(selectedItem[0].getText())
                                        ? "\"" + selectedItem[0].getText() + "\""
                                        : selectedItem[0].getText())
                                + " ");

            }
            constraintText.setText(temp.toString()); //NodeReader.reduceWhiteSpaces(temp.toString()));

            constraintText.setSelection(constraintText.getCharCount());
            searchFeatureText.setText(FILTERTEXT);
            searchFeatureText.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_GRAY));
            constraintText.setFocus();
            featureTableViewer.resetFilters();

            validate();
        }
    });

}

From source file:de.ovgu.featureide.fm.ui.editors.DeleteOperationAlternativeDialog.java

License:Open Source License

/**
 * initializes the group containing the searchText and featureTable
 * /*from  w  w  w  .  j a  v a2 s  . c om*/
 * @param featuremodel
 */
private void initFeatureGroup() {
    Group featureGroup = new Group(shell, SWT.NONE);
    featureGroup.setText("Features");
    GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.grabExcessHorizontalSpace = true;
    featureGroup.setLayoutData(gridData);
    GridLayout featureGroupLayout = new GridLayout();
    featureGroupLayout.numColumns = 2;
    featureGroup.setLayout(featureGroupLayout);

    Composite tableComposite = new Composite(featureGroup, SWT.NONE);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.grabExcessVerticalSpace = true;
    gridData.grabExcessHorizontalSpace = true;
    tableComposite.setLayoutData(gridData);

    final TableViewer tableViewer = new TableViewer(tableComposite,
            SWT.BORDER | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    alternativefeatureTable = tableViewer.getTable();
    alternativefeatureTable.setLayoutData(gridData);
    alternativefeatureTable.setToolTipText("Features supposed to be deleted");
    TableViewerColumn viewerNameColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    tableColumnLayout.setColumnData(viewerNameColumn.getColumn(), new ColumnWeightData(100, 100, false));

    tableViewer.setComparator(new ViewerComparator() {
        @Override
        public int compare(Viewer viewer, Object feature1, Object feature2) {
            return ((Feature) feature1).getName().compareToIgnoreCase(((Feature) feature2).getName());
        }

    });

    viewerNameColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            cell.setText(((Feature) cell.getElement()).getName());

        }
    });
    Collection<Feature> l = new ArrayList<Feature>();
    l.addAll(featureMap.keySet());
    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setInput(l);

    tableComposite = new Composite(featureGroup, SWT.NONE);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.grabExcessVerticalSpace = true;
    gridData.grabExcessHorizontalSpace = true;
    tableComposite.setLayoutData(gridData);

    final TableViewer tableViewer2 = new TableViewer(tableComposite,
            SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    featureTable = tableViewer2.getTable();
    featureTable.setLayoutData(gridData);
    featureTable.setToolTipText("alternative features");
    TableViewerColumn viewerNameColumn2 = new TableViewerColumn(tableViewer2, SWT.NONE);
    tableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableColumnLayout);
    tableColumnLayout.setColumnData(viewerNameColumn2.getColumn(), new ColumnWeightData(100, 100, false));
    tableViewer2.setContentProvider(new ArrayContentProvider());

    featureTable.addListener(SWT.MouseDoubleClick, new Listener() {
        @Override
        public void handleEvent(Event event) {
            execute();
        }
    });

    alternativefeatureTable.addListener(SWT.MouseUp, new Listener() {
        @Override
        public void handleEvent(Event event) {
            final Collection<Feature> l = new ArrayList<Feature>();
            l.addAll(featureMap.get((Feature) (alternativefeatureTable.getSelection()[0]).getData()));
            for (int i = 0; i < alternativefeatureTable.getSelectionCount(); i++) {

                if (!featureMap.get((Feature) (alternativefeatureTable.getSelection()[0]).getData()).equals(
                        featureMap.get((Feature) (alternativefeatureTable.getSelection()[i]).getData()))) {
                    l.clear();
                    break;
                }
            }
            tableViewer2.setInput(l);
            featureTable.select(0);
            tableViewer2.refresh(true, true);
        }
    });

    viewerNameColumn2.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            cell.setText(((Feature) cell.getElement()).getName());

        }
    });

    final Label label = new Label(featureGroup, 0);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    label.setLayoutData(gridData);

    final Button button = new Button(featureGroup, SWT.PUSH);
    button.setText("Replace");
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    button.setLayoutData(gridData);

    button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
        public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
            execute();
        }
    });
}