Example usage for org.eclipse.jface.viewers ViewerCell getElement

List of usage examples for org.eclipse.jface.viewers ViewerCell getElement

Introduction

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

Prototype

public Object getElement() 

Source Link

Document

Get the element this row represents.

Usage

From source file:com.softberries.klerk.gui.editors.ProductsEditor.java

License:Open Source License

@Override
protected void createColumns(final Composite parent, final TableViewer viewer) {
    String[] titles = { Messages.ProductsEditor_Code, Messages.ProductsEditor_Name,
            Messages.ProductsEditor_Description };
    int[] bounds = { 100, 200, 100 };

    // First column is for the code
    TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
    col.setLabelProvider(new CellLabelProvider() {
        @Override//from  w  ww  . jav  a2s. c  o m
        public void update(ViewerCell cell) {
            cell.setText(((Product) cell.getElement()).getCode());
        }
    });
    // Second column is for the name
    col = createTableViewerColumn(titles[1], bounds[1], 1);
    col.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            cell.setText(((Product) cell.getElement()).getName());
        }
    });
    // Now the description
    col = createTableViewerColumn(titles[2], bounds[2], 2);
    col.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            String desc = ((Product) cell.getElement()).getDescription();
            desc = desc.replaceAll("\\r\\n|\\r|\\n", " ");
            cell.setText(desc);
        }
    });
}

From source file:com.trivadis.loganalysis.ui.ChartCustomizationPanel.java

License:Open Source License

private TableViewer tableSeries(final Composite section, final FormToolkit toolkit) {
    final Table table = toolkit.createTable(section, SWT.NONE);
    table.setLayoutData(new GridDataBuilder().fill().build());
    final TableViewer tableViewer = new TableViewer(table);
    final TableViewerColumn viewerNameColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    viewerNameColumn.getColumn().setWidth(300);

    viewerNameColumn.setLabelProvider(new CellLabelProvider() {
        @Override/*from  w  w w. java  2 s  .co  m*/
        public void update(final ViewerCell cell) {
            cell.setText(calculateLabel((Serie) cell.getElement()));
        }

        private String calculateLabel(final Serie serie) {
            return serie.getLabel() + " (" + serie.getXaxis().getValueProvider().getLabel() + " / "
                    + serie.getYaxis().getValueProvider().getLabel() + ")";
        }
    });
    tableViewer.setContentProvider(new ObservableListContentProvider());
    tableViewer.setInput(series);
    return tableViewer;
}

From source file:com.vectrace.MercurialEclipse.ui.AbstractHighlightableTable.java

License:Open Source License

public AbstractHighlightableTable(Composite parent, final HighlightingLabelProvider<E> labelProvider) {
    super(parent, SWT.NONE);

    setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout tableColumnLayout = new TableColumnLayout();
    setLayout(tableColumnLayout);// www  . j a va  2 s.c  o m

    viewer = new TableViewer(this, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);

    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(labelProvider);

    List<TableViewerColumn> cols = createColumns(viewer, tableColumnLayout);

    CellLabelProvider clp = new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            E patch = (E) cell.getElement();
            HighlightingLabelProvider<E> lp = (HighlightingLabelProvider<E>) viewer.getLabelProvider();
            cell.setText(labelProvider.getColumnText(patch, cell.getColumnIndex()));
            cell.setImage(labelProvider.getColumnImage(patch, cell.getColumnIndex()));
            if (lp.isHighlighted(patch)) {
                cell.setFont(APPLIED_FONT);
            } else {
                cell.setFont(null);
            }
        }
    };

    for (Iterator<TableViewerColumn> it = cols.iterator(); it.hasNext();) {
        it.next().setLabelProvider(clp);
    }

    Table table = viewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
}

From source file:com.worldline.awltech.i18ntools.editor.ui.EditorDefaultMessageEditingSupport.java

License:Open Source License

@Override
protected void initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
    Object value = getValue(cell.getElement());
    cellEditor.setValue(value != null ? value : "");
}

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

License:Mozilla Public License

protected IBaseLabelProvider getLabelProvider() {
    return new CellLabelProvider() {
        @Override//from  w w  w. j ava  2  s  .  com
        public void update(ViewerCell cell) {
            ILaunchConfiguration launchConfiguration = (ILaunchConfiguration) cell.getElement();

            cell.setText(launchConfiguration.getName());
            cell.setImage(DebugUITools.getDefaultImageDescriptor(launchConfiguration).createImage());
        }
    };
}

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

License:Mozilla Public License

protected IBaseLabelProvider getLabelProvider() {
    return new CellLabelProvider() {
        @Override//from   www.  ja v  a  2s.  com
        public void update(ViewerCell cell) {
            ILaunchConfigurationType launchConfigurationType = ((LaunchConfigurationTypeData) cell
                    .getElement()).launchConfigurationType;

            cell.setText(launchConfigurationType.getName());
            cell.setImage(DebugUITools.getDefaultImageDescriptor(launchConfigurationType).createImage());
        }
    };
}

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

License:Mozilla Public License

protected IBaseLabelProvider getLabelProvider() {
    return new CellLabelProvider() {
        @Override/*from   www.  j  a v  a  2 s  .c  o  m*/
        public void update(ViewerCell cell) {
            Object cellElement = cell.getElement();
            if (cellElement instanceof TreeNode)
                cellElement = ((TreeNode) cellElement).getValue();

            if (cellElement instanceof IWizardDescriptor) {
                IWizardDescriptor wizardDescriptor = (IWizardDescriptor) cellElement;

                ImageDescriptor imageDescriptor = wizardDescriptor.getImageDescriptor();

                if (null != imageDescriptor) {
                    cell.setImage(imageDescriptor.createImage());
                }

                cell.setText(wizardDescriptor.getLabel());
            } else if (cellElement instanceof WizardCategory) {
                WizardCategory wizardCategory = (WizardCategory) cellElement;
                cell.setText(wizardCategory.getLabel());
                if (wizardCategory.getImageDescriptor() != null) {
                    cell.setImage(wizardCategory.getImageDescriptor().createImage());
                }
            } else
                cell.setText(cellElement.toString());
        }
    };
}

From source file:de.byteholder.geoclipse.map.DialogManageOfflineImages.java

License:Open Source License

private void createUI20PartViewer(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()//
            .grab(true, true).hint(SWT.DEFAULT, pixelConverter.convertHeightInCharsToPixels(13))
            .applyTo(layoutContainer);/*from w  ww  .ja va 2s  .  c  o m*/

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

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

    _partViewer = new TableViewer(table);

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

    // column: map provider
    tvc = new TableViewerColumn(_partViewer, SWT.LEAD);
    tvcColumn = tvc.getColumn();
    tvcColumn.setText(Messages.Dialog_OfflineArea_Column_MapProvider);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            final PartMP partMp = (PartMP) cell.getElement();
            cell.setText(partMp.partMp.getName());
        }
    });
    tableLayout.setColumnData(tvcColumn, new ColumnWeightData(100));

    // column: existing images
    tvc = new TableViewerColumn(_partViewer, SWT.TRAIL);
    tvcColumn = tvc.getColumn();
    tvcColumn.setText(Messages.Dialog_OfflineArea_Column_ExistingImages);
    tvcColumn.setToolTipText(Messages.Dialog_OfflineArea_Column_ExistingImages_Tooltip);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            final PartMP partMp = (PartMP) cell.getElement();
            cell.setText(Integer.toString(partMp.existingImages));
        }
    });
    tableLayout.setColumnData(tvcColumn,
            new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(12), true));

    // column: missing images
    tvc = new TableViewerColumn(_partViewer, SWT.TRAIL);
    tvcColumn = tvc.getColumn();
    tvcColumn.setText(Messages.Dialog_OfflineArea_Column_MissingImages);
    tvcColumn.setToolTipText(Messages.Dialog_OfflineArea_Column_MissingImages_Tooltip);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            final PartMP partMp = (PartMP) cell.getElement();
            cell.setText(Integer.toString(partMp.missingImages));
        }
    });
    tableLayout.setColumnData(tvcColumn,
            new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(12), true));

    /*
     * create table viewer
     */

    _partViewer.setContentProvider(new PartViewerContentProvicer());

    _partViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final StructuredSelection selection = (StructuredSelection) event.getSelection();
            if (selection != null) {
                enableControls(true);
            }
        }
    });
}

From source file:de.byteholder.geoclipse.mapprovider.DialogMPProfile.java

License:Open Source License

/**
 * create columns for the tree viewer// w  w w . j a  v  a2  s  .  co m
 * 
 * @param pixelConverter
 */
private void createUI116ViewerColumns(final TreeColumnLayout treeLayout, final PixelConverter pixelConverter) {

    TreeViewerColumn tvc;
    TreeColumn tc;

    /*
     * column: map provider
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_MapProvider);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_MapProvider_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final StyledString styledString = new StyledString();
            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();
                final MP mapProvider = mpWrapper.getMP();

                styledString.append(mapProvider.getName());

                cell.setImage(mpWrapper.isDisplayedInMap() ? _imageMap : _imagePlaceholder);

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                styledString.append(mtLayer.getGeoLayer().getTitle());

                styledString.append("  (", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$
                styledString.append(mtLayer.getGeoLayer().getName(), StyledString.QUALIFIER_STYLER);
                styledString.append(")", StyledString.QUALIFIER_STYLER);//$NON-NLS-1$

                cell.setImage(mtLayer.isDisplayedInMap() ? _imageLayer : _imagePlaceholder);

            } else {
                styledString.append(element.toString());
            }

            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    });
    treeLayout.setColumnData(tc, new ColumnWeightData(100, true));

    /*
     * column: is visible
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_IsVisible);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_IsVisible_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Boolean.toString(mpWrapper.isDisplayedInMap()));

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                cell.setText(Boolean.toString(mtLayer.isDisplayedInMap()));

            } else {
                cell.setText(UI.EMPTY_STRING);
            }
        }
    });

    tvc.setEditingSupport(new EditingSupport(_treeViewer) {

        private final CheckboxCellEditor fCellEditor = new CheckboxCellEditor(_treeViewer.getTree());

        @Override
        protected boolean canEdit(final Object element) {

            if (element instanceof TVIMapProvider) {

                final TVIMapProvider tvi = (TVIMapProvider) element;
                final MP mapProvider = tvi.getMapProviderWrapper().getMP();

                if (mapProvider instanceof MPWms) {

                    // wms can be toggled when at least one layer is displayed

                    return canWmsBeDisplayed((MPWms) mapProvider);
                }
            }

            return true;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            return fCellEditor;
        }

        @Override
        protected Object getValue(final Object element) {

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                return mpWrapper.isDisplayedInMap();

            } else if (element instanceof TVIWmsLayer) {

                final MtLayer mtLayer = ((TVIWmsLayer) element).getMtLayer();

                return mtLayer.isDisplayedInMap();
            }

            return null;
        }

        @Override
        protected void setValue(final Object element, final Object value) {

            final boolean isChecked = ((Boolean) value);

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                mpWrapper.setIsDisplayedInMap(isChecked);

                if (isChecked) {

                    /*
                     * remove parent tiles from loading cache because they can have loading
                     * errors (from their children) which prevents them to be loaded again
                     */
                    _mpProfile.resetParentTiles();
                }

                enableProfileMapButton();

            } else if (element instanceof TVIWmsLayer) {

                final TVIWmsLayer tviLayer = (TVIWmsLayer) element;
                final MtLayer mtLayer = tviLayer.getMtLayer();

                mtLayer.setIsDisplayedInMap(isChecked);

                updateMVMapProvider(tviLayer);
            }

            // update viewer
            getViewer().update(element, null);

            updateLiveView();
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: alpha
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Alpha);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Alpha_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(Integer.toString(mpWrapper.getAlpha()));

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: brightness
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tc = tvc.getColumn();
    tc.setText(Messages.Dialog_MapProfile_Column_Brightness);
    tc.setToolTipText(Messages.Dialog_MapProfile_Column_Brightness_Tooltip);
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof TVIMapProvider) {

                final MPWrapper mpWrapper = ((TVIMapProvider) element).getMapProviderWrapper();

                cell.setText(mpWrapper.isBrightnessForNextMp()
                        ? Integer.toString(mpWrapper.getBrightnessValueForNextMp())
                        : UI.EMPTY_STRING);

            } else {

                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(10)));

    /*
     * column: empty to prevent scrolling to the right when the right column is selected
     */
    tvc = new TreeViewerColumn(_treeViewer, SWT.LEAD);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            /*
             * !!! label provider is necessary to prevent a NPE !!!
             */
        }
    });
    tc = tvc.getColumn();
    treeLayout.setColumnData(tc, new ColumnPixelData(pixelConverter.convertWidthInCharsToPixels(4)));

}

From source file:de.byteholder.geoclipse.mapprovider.DialogMPWms.java

License:Open Source License

private void createUILayer20Viewer(final Composite parent, final PixelConverter pixelConverter) {

    final TableColumnLayout tableLayout = new TableColumnLayout();
    _viewerContainer = new Composite(parent, SWT.NONE);
    _viewerContainer.setLayout(tableLayout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(_viewerContainer);

    /*/*from www.j a  va  2  s.  c o  m*/
     * create table
     */
    final Table table = new Table(_viewerContainer, SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);

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

    _layerViewer = new CheckboxTableViewer(table);

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

    // column: layer title
    tvc = new TableViewerColumn(_layerViewer, SWT.LEAD);
    tvcColumn = tvc.getColumn();
    tvcColumn.setText(Messages.Dialog_WmsConfig_Column_LayerName);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final MtLayer mtLayer = (MtLayer) cell.getElement();

            cell.setText(mtLayer.getGeoLayer().getTitle());
        }
    });
    tableLayout.setColumnData(tvcColumn, new ColumnWeightData(20, true));

    // column: layer id
    tvc = new TableViewerColumn(_layerViewer, SWT.LEAD);
    tvcColumn = tvc.getColumn();
    tvcColumn.setText(Messages.Dialog_WmsConfig_Column_LayerId);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final MtLayer mtLayer = (MtLayer) cell.getElement();

            cell.setText(mtLayer.getGeoLayer().getName());
        }
    });
    tableLayout.setColumnData(tvcColumn, new ColumnWeightData(10, true));

    // column: bbox
    tvc = new TableViewerColumn(_layerViewer, SWT.LEAD);
    tvcColumn = tvc.getColumn();
    tvcColumn.setText(Messages.Dialog_WmsConfig_Column_Bbox);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final MtLayer mtLayer = (MtLayer) cell.getElement();

            final GeoPosition lowerPosition = mtLayer.getLowerGeoPosition();
            final GeoPosition upperPosition = mtLayer.getUpperGeoPosition();

            final StringBuilder sb = new StringBuilder();

            sb.append(lowerPosition.latitude);
            sb.append(", "); //$NON-NLS-1$
            sb.append(lowerPosition.longitude);
            sb.append(" / "); //$NON-NLS-1$
            sb.append(upperPosition.latitude);
            sb.append(", "); //$NON-NLS-1$
            sb.append(upperPosition.longitude);

            cell.setText(sb.toString());
        }
    });
    tableLayout.setColumnData(tvcColumn, new ColumnWeightData(20, true));

    _layerViewer.setContentProvider(new IStructuredContentProvider() {
        public void dispose() {
        }

        public Object[] getElements(final Object inputElement) {
            final int mtLayerSize = _allMtLayers.size();
            if (mtLayerSize == 0) {
                return null;
            } else {
                return _allMtLayers.toArray(new MtLayer[mtLayerSize]);
            }
        }

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

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

            // select the checked item
            _layerViewer.setSelection(new StructuredSelection(event.getElement()));

            // set focus to selected layer
            table.setSelection(table.getSelectionIndex());

            onCheckLayer(event.getElement());
        }
    });

    _layerViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            onSelectLayer();
        }
    });

    /*
     * set drag adapter
     */
    _layerViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new DragSourceListener() {

                public void dragFinished(final DragSourceEvent event) {

                    final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();

                    if (event.doit == false) {
                        return;
                    }

                    transfer.setSelection(null);
                    transfer.setSelectionSetTime(0);
                }

                public void dragSetData(final DragSourceEvent event) {
                    // data are set in LocalSelectionTransfer
                }

                public void dragStart(final DragSourceEvent event) {

                    final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
                    final ISelection selection = _layerViewer.getSelection();

                    transfer.setSelection(selection);
                    transfer.setSelectionSetTime(_dragStartViewerLeft = event.time & 0xFFFFFFFFL);

                    event.doit = !selection.isEmpty();
                }
            });

    /*
     * set drop adapter
     */
    final ViewerDropAdapter viewerDropAdapter = new ViewerDropAdapter(_layerViewer) {

        private Widget fTableItem;

        @Override
        public void dragOver(final DropTargetEvent event) {

            // keep table item
            fTableItem = event.item;

            super.dragOver(event);
        }

        @Override
        public boolean performDrop(final Object droppedData) {

            if (droppedData instanceof StructuredSelection) {

                final Object firstElement = ((StructuredSelection) droppedData).getFirstElement();
                if (firstElement instanceof MtLayer) {

                    final MtLayer mtLayer = (MtLayer) firstElement;

                    final int location = getCurrentLocation();
                    final Table layerTable = _layerViewer.getTable();

                    /*
                     * check if drag was startet from this filter, remove the filter item before
                     * the new filter is inserted
                     */
                    if (LocalSelectionTransfer.getTransfer().getSelectionSetTime() == _dragStartViewerLeft) {
                        _layerViewer.remove(mtLayer);
                    }

                    int tableIndex;

                    if (fTableItem == null) {

                        _layerViewer.add(mtLayer);
                        tableIndex = layerTable.getItemCount() - 1;

                    } else {

                        // get index of the target in the table
                        tableIndex = layerTable.indexOf((TableItem) fTableItem);
                        if (tableIndex == -1) {
                            return false;
                        }

                        if (location == LOCATION_BEFORE) {
                            _layerViewer.insert(mtLayer, tableIndex);
                        } else if (location == LOCATION_AFTER) {
                            _layerViewer.insert(mtLayer, ++tableIndex);
                        }
                    }

                    // set check state
                    _layerViewer.setChecked(mtLayer, mtLayer.isDisplayedInMap());

                    // reselect filter item
                    _layerViewer.setSelection(new StructuredSelection(mtLayer));

                    // set focus to selection
                    layerTable.setSelection(tableIndex);
                    layerTable.setFocus();

                    // update new layer topology in the map
                    updateMap(false);

                    return true;
                }
            }

            return false;
        }

        @Override
        public boolean validateDrop(final Object target, final int operation, final TransferData transferType) {

            final ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
            if (selection instanceof StructuredSelection) {
                final Object draggedItem = ((StructuredSelection) selection).getFirstElement();
                if (target == draggedItem) {
                    return false;
                }
            }

            if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType) == false) {
                return false;
            }

            // check drop location
            final int location = getCurrentLocation();
            if (((location == LOCATION_AFTER) || (location == LOCATION_BEFORE)) == false) {
                return false;
            }

            return true;
        }

    };

    _layerViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            viewerDropAdapter);
}