List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer
public CheckboxTableViewer(Table table)
From source file:net.tourbook.common.util.DialogModifyColumns.java
License:Open Source License
private void createUI_12_ProfileViewer(final Composite parent) { final Composite layoutContainer = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults()// .grab(true, false).hint(SWT.DEFAULT, _pc.convertHeightInCharsToPixels(7)).applyTo(layoutContainer); final TableColumnLayout tableLayout = new TableColumnLayout(); layoutContainer.setLayout(tableLayout); final Table table = new Table(layoutContainer, // SWT.SINGLE//from w w w . j av a 2s.co m // | SWT.H_SCROLL // | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); table.setHeaderVisible(false); table.setLinesVisible(false); _profileViewer = new CheckboxTableViewer(table); _profileViewer.setUseHashlookup(true); _profileViewer.setComparator(_profileComparator); _profileViewer.setContentProvider(new IStructuredContentProvider() { @Override public void dispose() { } @Override public Object[] getElements(final Object inputElement) { return _dialog_Profiles.toArray(); } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } }); _profileViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { onProfileViewer_Select(event); } }); _profileViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { onProfile_Rename(); } }); /* * Create single column */ TableViewerColumn tvc; // column: name tvc = new TableViewerColumn(_profileViewer, SWT.NONE); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ColumnProfile profile = ((ColumnProfile) cell.getElement()); cell.setText(profile.name); } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnWeightData(1)); }
From source file:net.tourbook.common.util.DialogModifyColumns.java
License:Open Source License
private void createUI_72_ColumnsViewer(final Composite parent) { final TableColumnLayout tableLayout = new TableColumnLayout(); final Composite layoutContainer = new Composite(parent, SWT.NONE); layoutContainer.setLayout(tableLayout); GridDataFactory.fillDefaults().grab(true, true).applyTo(layoutContainer); /*/*from www . j a v a 2 s. co m*/ * create table */ final Table table = new Table(layoutContainer, SWT.CHECK | SWT.FULL_SELECTION | SWT.BORDER); table.setLayout(new TableLayout()); table.setHeaderVisible(true); table.setLinesVisible(false); _columnViewer = new CheckboxTableViewer(table); defineAllColumns(tableLayout); reorderColumns(table); _columnViewer.setContentProvider(new IStructuredContentProvider() { @Override public void dispose() { } @Override public Object[] getElements(final Object inputElement) { return _columnViewerModel.toArray(); } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } }); _columnViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { final Object firstElement = ((IStructuredSelection) _columnViewer.getSelection()).getFirstElement(); if (firstElement != null) { // check/uncheck current item _columnViewer.setChecked(firstElement, !_columnViewer.getChecked(firstElement)); } } }); _columnViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { final ColumnDefinition colDef = (ColumnDefinition) event.getElement(); if (colDef.canModifyVisibility()) { // keep the checked status colDef.setIsColumnDisplayed(event.getChecked()); // select the checked item _columnViewer.setSelection(new StructuredSelection(colDef)); } else { // column can't be unchecked _columnViewer.setChecked(colDef, true); } // save columns saveState_CurrentProfileColumns(); } }); _columnViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { enableUpDownActions(); } }); /* * set drag adapter */ _columnViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new DragSourceListener() { @Override public void dragFinished(final DragSourceEvent event) { final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer(); if (event.doit == false) { return; } transfer.setSelection(null); transfer.setSelectionSetTime(0); } @Override public void dragSetData(final DragSourceEvent event) { // data are set in LocalSelectionTransfer } @Override public void dragStart(final DragSourceEvent event) { final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer(); final ISelection selection = _columnViewer.getSelection(); _dndCheckedElements = _columnViewer.getCheckedElements(); transfer.setSelection(selection); transfer.setSelectionSetTime(_dndDragStartViewerLeft = event.time & 0xFFFFFFFFL); event.doit = !selection.isEmpty(); } }); /* * set drop adapter */ final ViewerDropAdapter viewerDropAdapter = new ViewerDropAdapter(_columnViewer) { private Widget _dragOverItem; @Override public void dragOver(final DropTargetEvent dropEvent) { // keep table item _dragOverItem = dropEvent.item; super.dragOver(dropEvent); } @Override public boolean performDrop(final Object data) { if (data instanceof StructuredSelection) { final StructuredSelection selection = (StructuredSelection) data; if (selection.getFirstElement() instanceof ColumnDefinition) { final ColumnDefinition colDef = (ColumnDefinition) selection.getFirstElement(); final int location = getCurrentLocation(); final Table filterTable = _columnViewer.getTable(); /* * check if drag was startet from this item, remove the item before the new * item is inserted */ if (LocalSelectionTransfer.getTransfer().getSelectionSetTime() == _dndDragStartViewerLeft) { _columnViewer.remove(colDef); } int filterIndex; if (_dragOverItem == null) { _columnViewer.add(colDef); filterIndex = filterTable.getItemCount() - 1; } else { // get index of the target in the table filterIndex = filterTable.indexOf((TableItem) _dragOverItem); if (filterIndex == -1) { return false; } if (location == LOCATION_BEFORE) { _columnViewer.insert(colDef, filterIndex); } else if (location == LOCATION_AFTER || location == LOCATION_ON) { _columnViewer.insert(colDef, ++filterIndex); } } // reselect filter item _columnViewer.setSelection(new StructuredSelection(colDef)); // set focus to selection filterTable.setSelection(filterIndex); filterTable.setFocus(); // recheck items _columnViewer.setCheckedElements(_dndCheckedElements); enableUpDownActions(); return true; } } return false; } @Override public boolean validateDrop(final Object target, final int operation, final TransferData transferType) { final LocalSelectionTransfer transferData = LocalSelectionTransfer.getTransfer(); // check if dragged item is the target item final ISelection selection = transferData.getSelection(); if (selection instanceof StructuredSelection) { final Object dragFilter = ((StructuredSelection) selection).getFirstElement(); if (target == dragFilter) { return false; } } if (transferData.isSupportedType(transferType) == false) { return false; } // check if target is between two items if (getCurrentLocation() == LOCATION_ON) { return false; } return true; } }; _columnViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() }, viewerDropAdapter); }
From source file:net.tourbook.map3.ui.DialogSelectMap3Color.java
License:Open Source License
private void createUI_10_ColorViewer(final Composite parent) { final ArrayList<Map3GradientColorProvider> colorProviders = Map3GradientColorManager .getColorProviders(_graphId); int tableStyle; if (colorProviders.size() > NUMBER_OF_VISIBLE_ROWS) { tableStyle = SWT.CHECK // | SWT.FULL_SELECTION/*from ww w . ja v a2s . c o m*/ // | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_SCROLL; } else { // table contains less than maximum entries, scroll is not necessary tableStyle = SWT.CHECK // | SWT.FULL_SELECTION | SWT.NO_SCROLL; } final Composite container = new Composite(parent, SWT.NONE); GridDataFactory.fillDefaults()// .grab(true, true).applyTo(container); GridLayoutFactory.fillDefaults().applyTo(container); { /* * create table */ final Table table = new Table(container, tableStyle); GridDataFactory.fillDefaults().grab(true, true).applyTo(table); table.setHeaderVisible(false); table.setLinesVisible(false); /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. Therefore, it is * critical for performance that these methods be as efficient as possible. */ final Listener paintListener = new Listener() { @Override public void handleEvent(final Event event) { if (event.type == SWT.MeasureItem || event.type == SWT.PaintItem) { onViewerPaint(event); } } }; table.addListener(SWT.MeasureItem, paintListener); table.addListener(SWT.PaintItem, paintListener); /* * Set maximum number of visible rows */ table.addControlListener(new ControlAdapter() { @Override public void controlResized(final ControlEvent e) { final int itemHeight = table.getItemHeight(); final int maxHeight = itemHeight * NUMBER_OF_VISIBLE_ROWS; final int defaultHeight = table.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; if (defaultHeight > maxHeight) { final GridData gd = (GridData) container.getLayoutData(); gd.heightHint = maxHeight; // container.layout(true, true); } } }); _colorViewer = new CheckboxTableViewer(table); /* * create columns */ defineColumn_10_Checkbox(); defineColumn_20_MinValue(); defineColumn_30_ColorImage(); defineColumn_40_MaxValue(); defineColumn_50_RelativeAbsolute(); defineColumn_52_OverwriteLegendMinMax(); _colorViewer.setComparator(new Map3ProfileComparator()); _colorViewer.setContentProvider(new IStructuredContentProvider() { @Override public void dispose() { } @Override public Object[] getElements(final Object inputElement) { return colorProviders.toArray(new Map3GradientColorProvider[colorProviders.size()]); } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } }); _colorViewer.setCheckStateProvider(new ICheckStateProvider() { @Override public boolean isChecked(final Object element) { return onViewerIsChecked(element); } @Override public boolean isGrayed(final Object element) { return onViewerIsGrayed(element); } }); _colorViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { onViewerCheckStateChange(event); } }); _colorViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { onViewerSelectColor(); } }); _colorViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { actionEditSelectedColor(); } }); } }
From source file:net.tourbook.preferences.PrefPageTourTypeFilterList.java
License:Open Source License
private void createUI_20_TourTypeViewer(final Composite parent) { final TableLayoutComposite layouter = new TableLayoutComposite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, true).hint(200, SWT.DEFAULT).applyTo(layouter); final Table table = new Table(layouter, (SWT.CHECK | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION)); table.setHeaderVisible(false);//from w w w. jav a 2 s . c o m table.setLinesVisible(false); _tourTypeViewer = new CheckboxTableViewer(table); TableViewerColumn tvc; // column: name tvc = new TableViewerColumn(_tourTypeViewer, SWT.NONE); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final TourType tourType = ((TourType) cell.getElement()); cell.setText(tourType.getName()); cell.setImage(UI.getInstance().getTourTypeImage(tourType.getTypeId())); } }); layouter.addColumnData(new ColumnWeightData(1)); _tourTypeViewer.setContentProvider(new IStructuredContentProvider() { @Override public void dispose() { } @Override public Object[] getElements(final Object inputElement) { return _tourTypes.toArray(); } @Override public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } }); _tourTypeViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { _isModified = true; } }); _tourTypeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { onSelectTourType(); } }); _tourTypeViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { /* * invert check state */ final TourType tourType = (TourType) ((StructuredSelection) _tourTypeViewer.getSelection()) .getFirstElement(); final boolean isChecked = _tourTypeViewer.getChecked(tourType); _tourTypeViewer.setChecked(tourType, !isChecked); // getSelectedTourTypes(); } }); }
From source file:net.tourbook.srtm.PrefPageSRTMColors.java
License:Open Source License
private void createUI_12_ProfileViewer_Table(final Composite parent) { final Table table = new Table(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.CHECK); GridDataFactory.fillDefaults().grab(true, true).applyTo(table); table.setLayout(new TableLayout()); table.setHeaderVisible(true);/*from www. ja va2 s .co m*/ /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. Therefore, it is * critical for performance that these methods be as efficient as possible. */ final Listener paintListener = new Listener() { @Override public void handleEvent(final Event event) { if (event.index == _profileImageColumn) { onPaintColorImage(event); } } }; table.addListener(SWT.MeasureItem, paintListener); table.addListener(SWT.PaintItem, paintListener); /* * create viewer */ _profileViewer = new CheckboxTableViewer(table); _columnManager.createColumns(_profileViewer); _tcProfileImage = _colDefImage.getTableColumn(); _profileImageColumn = _colDefImage.getCreateIndex(); _profileViewer.setContentProvider(new ProfileContentProvider()); _profileViewer.setSorter(new ProfileSorter()); _profileViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { final SRTMProfile checkedProfile = (SRTMProfile) event.getElement(); // ignore the same profile if (_selectedProfile != null && checkedProfile == _selectedProfile) { // prevent unchecking selected profile event.getCheckable().setChecked(checkedProfile, true); return; } // select checked profile selectProfileInViewer(checkedProfile); } }); _profileViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { final Object firstElement = ((StructuredSelection) event.getSelection()).getFirstElement(); if (firstElement instanceof SRTMProfile) { onSelectProfile((SRTMProfile) firstElement, false); } } }); _profileViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { onEditProfile(); } }); }
From source file:net.tourbook.ui.views.tourCatalog.WizardPageReferenceTour.java
License:Open Source License
private void createRefTourTableViewer(final Composite parent) { final TableLayoutComposite layouter = new TableLayoutComposite(parent, SWT.NONE); final GridData gridData = new GridData(GridData.FILL_BOTH); gridData.widthHint = convertWidthInCharsToPixels(30); layouter.setLayoutData(gridData);//from w ww. j ava 2 s . c om final Table table = new Table(layouter, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK); table.setLinesVisible(false); TableColumn column; column = new TableColumn(table, SWT.NONE); column.setText(Messages.tourCatalog_wizard_Column_tour); layouter.addColumnData(new ColumnWeightData(1, false)); _refTourViewer = new CheckboxTableViewer(table); _refTourViewer.setContentProvider(new RefTourContentProvider()); _refTourViewer.setLabelProvider(new RefTourLabelProvider()); _refTourViewer.setComparator(new ViewerComparator() { @SuppressWarnings("unchecked") @Override public int compare(final Viewer viewer, final Object e1, final Object e2) { return getComparator().compare(((TourReference) e1).getLabel(), ((TourReference) e2).getLabel()); } }); _refTourViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { showReferenceTour(event); } }); _refTourViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(final CheckStateChangedEvent event) { validatePage(); } }); _refTourViewer.setInput(this); }
From source file:net.tourbook.ui.views.tourCatalog.WizardPage_20_ReferenceTour.java
License:Open Source License
private void createUI_10_RefTourTableViewer(final Composite parent) { final TableColumnLayout tableLayout = new TableColumnLayout(); final Composite layoutContainer = new Composite(parent, SWT.NONE); layoutContainer.setLayout(tableLayout); GridDataFactory.fillDefaults()// .grab(true, true).applyTo(layoutContainer); final Table table = new Table(layoutContainer, 0 // SWT.H_SCROLL // // | SWT.V_SCROLL // | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK); table.setLinesVisible(false);/*from ww w . j a va 2 s . co m*/ _refTourViewer = new CheckboxTableViewer(table); /* * create columns */ TableViewerColumn tvc; // column: reference tour tvc = new TableViewerColumn(_refTourViewer, SWT.LEAD); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final RefTourItem refTour = (RefTourItem) cell.getElement(); cell.setText(refTour.label); } }); tableLayout.setColumnData(tvc.getColumn(), new ColumnWeightData(100)); /* * Setup viewer */ _refTourViewer.setContentProvider(new RefTourContentProvider()); _refTourViewer.setComparator(new RefTourComparator()); _refTourViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { showReferenceTour(event); } }); _refTourViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { onCheckRefTour(event); } }); }
From source file:net.tourbook.ui.views.tourMarker.TourMarkerAllView.java
License:Open Source License
private void createUI_10_MarkerViewer(final Composite parent) { /*// w w w. jav a2s. c o m * create table */ final Table table = new Table(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.CHECK); GridDataFactory.fillDefaults().grab(true, true).applyTo(table); table.setHeaderVisible(true); table.setLinesVisible(_prefStore.getBoolean(ITourbookPreferences.VIEW_LAYOUT_DISPLAY_LINES)); /* * It took a while that the correct listener is set and also the checked item is fired and * not the wrong selection. */ table.addListener(SWT.Selection, new Listener() { @Override public void handleEvent(final Event event) { onSelect_TourMarker(event); } }); ; /* * create table viewer */ _markerViewer = new CheckboxTableViewer(table); _columnManager.createColumns(_markerViewer); _markerViewer.setUseHashlookup(true); _markerViewer.setContentProvider(new MarkerContentProvider()); _markerViewer.addFilter(new MarkerItemFilter()); _markerViewer.setComparator(_markerComparator); _markerViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(final DoubleClickEvent event) { onTourMarker_DoubleClick(); } }); _markerViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent event) { onTourMarker_StateChanged(event); } }); updateUI_SetSortDirection(// _markerComparator.__sortColumnId, _markerComparator.__sortDirection); createUI_20_ContextMenu(); }
From source file:net.tourbook.util.DialogModifyColumns.java
License:Open Source License
private void createUI10ColumnsViewer(final Composite parent) { final TableColumnLayout tableLayout = new TableColumnLayout(); final Composite layoutContainer = new Composite(parent, SWT.NONE); layoutContainer.setLayout(tableLayout); GridDataFactory.fillDefaults().grab(true, true).applyTo(layoutContainer); /*/* www . j a va 2 s.c o m*/ * create table */ final Table table = new Table(layoutContainer, SWT.CHECK | SWT.FULL_SELECTION | SWT.BORDER); table.setLayout(new TableLayout()); table.setHeaderVisible(true); table.setLinesVisible(true); _columnViewer = new CheckboxTableViewer(table); /* * create columns */ TableViewerColumn tvc; TableColumn tvcColumn; // column: label tvc = new TableViewerColumn(_columnViewer, SWT.LEAD); tvcColumn = tvc.getColumn(); tvcColumn.setText(Messages.ColumnModifyDialog_column_column); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ColumnDefinition colDef = (ColumnDefinition) cell.getElement(); cell.setText(colDef.getColumnLabel()); // paint columns in a different color which can't be hidden if (colDef.canModifyVisibility() == false) { cell.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); } } }); tableLayout.setColumnData(tvcColumn, new ColumnWeightData(1, true)); // column: unit tvc = new TableViewerColumn(_columnViewer, SWT.LEAD); tvcColumn = tvc.getColumn(); tvcColumn.setText(Messages.ColumnModifyDialog_column_unit); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ColumnDefinition colDef = (ColumnDefinition) cell.getElement(); cell.setText(colDef.getColumnUnit()); // paint columns in a different color which can't be hidden if (colDef.canModifyVisibility() == false) { cell.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); } } }); tableLayout.setColumnData(tvcColumn, new ColumnPixelData(_pc.convertWidthInCharsToPixels(13), true)); // column: width tvc = new TableViewerColumn(_columnViewer, SWT.TRAIL); tvcColumn = tvc.getColumn(); tvcColumn.setText(Messages.ColumnModifyDialog_column_width); tvc.setLabelProvider(new CellLabelProvider() { @Override public void update(final ViewerCell cell) { final ColumnDefinition colDef = (ColumnDefinition) cell.getElement(); cell.setText(Integer.toString(colDef.getColumnWidth())); // paint columns in a different color which can't be hidden if (colDef.canModifyVisibility() == false) { cell.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); } } }); tableLayout.setColumnData(tvcColumn, new ColumnPixelData(_pc.convertWidthInCharsToPixels(10), true)); _columnViewer.setContentProvider(new IStructuredContentProvider() { public void dispose() { } public Object[] getElements(final Object inputElement) { return _allColumnsInDialog.toArray(); } public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) { } }); _columnViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(final DoubleClickEvent event) { final Object firstElement = ((IStructuredSelection) _columnViewer.getSelection()).getFirstElement(); if (firstElement != null) { // check/uncheck current item _columnViewer.setChecked(firstElement, !_columnViewer.getChecked(firstElement)); } } }); _columnViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(final CheckStateChangedEvent event) { final ColumnDefinition colDef = (ColumnDefinition) event.getElement(); if (colDef.canModifyVisibility()) { // keep the checked status colDef.setIsCheckedInDialog(event.getChecked()); // select the checked item _columnViewer.setSelection(new StructuredSelection(colDef)); } else { // column can't be unchecked _columnViewer.setChecked(colDef, true); } } }); _columnViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { enableUpDownButtons(); } }); /* * set drag adapter */ _columnViewer.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 = _columnViewer.getSelection(); _dndCheckedElements = _columnViewer.getCheckedElements(); transfer.setSelection(selection); transfer.setSelectionSetTime(_dndDragStartViewerLeft = event.time & 0xFFFFFFFFL); event.doit = !selection.isEmpty(); } }); /* * set drop adapter */ final ViewerDropAdapter viewerDropAdapter = new ViewerDropAdapter(_columnViewer) { private Widget _dragOverItem; @Override public void dragOver(final DropTargetEvent dropEvent) { // keep table item _dragOverItem = dropEvent.item; super.dragOver(dropEvent); } @Override public boolean performDrop(final Object data) { if (data instanceof StructuredSelection) { final StructuredSelection selection = (StructuredSelection) data; if (selection.getFirstElement() instanceof ColumnDefinition) { final ColumnDefinition colDef = (ColumnDefinition) selection.getFirstElement(); final int location = getCurrentLocation(); final Table filterTable = _columnViewer.getTable(); /* * check if drag was startet from this item, remove the item before the new * item is inserted */ if (LocalSelectionTransfer.getTransfer().getSelectionSetTime() == _dndDragStartViewerLeft) { _columnViewer.remove(colDef); } int filterIndex; if (_dragOverItem == null) { _columnViewer.add(colDef); filterIndex = filterTable.getItemCount() - 1; } else { // get index of the target in the table filterIndex = filterTable.indexOf((TableItem) _dragOverItem); if (filterIndex == -1) { return false; } if (location == LOCATION_BEFORE) { _columnViewer.insert(colDef, filterIndex); } else if (location == LOCATION_AFTER || location == LOCATION_ON) { _columnViewer.insert(colDef, ++filterIndex); } } // reselect filter item _columnViewer.setSelection(new StructuredSelection(colDef)); // set focus to selection filterTable.setSelection(filterIndex); filterTable.setFocus(); // recheck items _columnViewer.setCheckedElements(_dndCheckedElements); enableUpDownButtons(); return true; } } return false; } @Override public boolean validateDrop(final Object target, final int operation, final TransferData transferType) { final LocalSelectionTransfer transferData = LocalSelectionTransfer.getTransfer(); // check if dragged item is the target item final ISelection selection = transferData.getSelection(); if (selection instanceof StructuredSelection) { final Object dragFilter = ((StructuredSelection) selection).getFirstElement(); if (target == dragFilter) { return false; } } if (transferData.isSupportedType(transferType) == false) { return false; } // check if target is between two items if (getCurrentLocation() == LOCATION_ON) { return false; } return true; } }; _columnViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() }, viewerDropAdapter); }
From source file:nexcore.tool.uml.ui.realization.sequencediagram.dialog.AddCoveredLifelineByMessageDialog.java
License:Open Source License
/** * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) */// w ww .j a v a 2 s .c o m @Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); composite.getShell().setText(UMLMessage.LABEL_INSERT_COVERED_LIFELINE); GridLayout layout = (GridLayout) composite.getLayout(); layout.numColumns = 1; Table table = new Table(composite, SWT.BORDER | SWT.CHECK | SWT.H_SCROLL | SWT.V_SCROLL | SWT.HIDE_SELECTION); TableColumn column = new TableColumn(table, SWT.NONE); column.setMoveable(false); TableLayout tableLayout = new TableLayout(); tableLayout.addColumnData(new ColumnWeightData(100)); table.setLayout(tableLayout); GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING); gd.widthHint = 300; gd.heightHint = 200; table.setLayoutData(gd); lifelineTableViwer = new CheckboxTableViewer(table); lifelineTableViwer.setContentProvider(new CoveredLifelineByMessageContentProvider()); List<AbstractConnection> connectionList = SequenceUtil .ascSortedMessageListByYValue(diagram.getConnectionList()); lifelineTableViwer.setLabelProvider(new CoveredLifelineByMessageLabelProvider(connectionList)); lifelineTableViwer.setInput(lifelineMap); lifelineTableViwer.setAllChecked(true); Composite buttonComposit = new Composite(composite, SWT.NONE); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 2; buttonComposit.setLayout(gridLayout); buttonComposit.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); checkAllButton = new Button(buttonComposit, SWT.NONE); checkAllButton.setText(UMLMessage.LABEL_SELECT_ALL); checkAllButton.addSelectionListener(new SelectionListener() { /** * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ public void widgetSelected(SelectionEvent e) { lifelineTableViwer.setAllChecked(true); } /** * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ public void widgetDefaultSelected(SelectionEvent e) { } }); unCheckAllButton = new Button(buttonComposit, SWT.NONE); unCheckAllButton.setText(UMLMessage.LABEL_UNSELECT_ALL); unCheckAllButton.addSelectionListener(new SelectionListener() { /** * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ public void widgetSelected(SelectionEvent e) { lifelineTableViwer.setAllChecked(false); } /** * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) */ public void widgetDefaultSelected(SelectionEvent e) { } }); return composite; }