List of usage examples for org.eclipse.jface.viewers TableViewerEditor create
public static void create(TableViewer viewer, ColumnViewerEditorActivationStrategy editorActivationStrategy, int feature)
From source file:au.gov.ga.earthsci.bookmark.part.BookmarksPart.java
License:Apache License
private void initList(Composite parent) { Composite tableHolder = new Composite(parent, SWT.NONE); GridData gd = new GridData(GridData.FILL_BOTH); gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true;//from w ww . j av a 2 s .c o m gd.horizontalAlignment = GridData.FILL; tableHolder.setLayoutData(gd); TableColumnLayout layout = new TableColumnLayout(); tableHolder.setLayout(layout); bookmarkListTableViewer = new TableViewer(tableHolder, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); bookmarkListTableViewer.getTable().setHeaderVisible(false); bookmarkListTableViewer.getTable().setLinesVisible(false); bookmarkListTableViewer.getTable().setLayoutData(gd); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); bookmarkListTableViewer.setContentProvider(contentProvider); IObservableMap labelMap = BeanProperties.value("name").observeDetail(contentProvider.getKnownElements()); //$NON-NLS-1$ TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT); column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer)); column.setLabelProvider(new ObservableMapCellLabelProvider(labelMap) { @Override public void update(ViewerCell cell) { super.update(cell); cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$ cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS)); } }); ColumnLayoutData cld = new ColumnWeightData(12); layout.setColumnData(column.getColumn(), cld); // Allow edit (rename) only via programmatic access (rename command) ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( bookmarkListTableViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(bookmarkListTableViewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); // Populate the current selection with the actual bookmark items bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection(); List<?> list = selection.toList(); selectionService.setSelection(list.toArray(new IBookmark[list.size()])); } }); // Apply the bookmark on double click bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement()); } }); // Deselect when clicking outside a valid row bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) { bookmarkListTableViewer.setSelection(null); } } }); }
From source file:au.gov.ga.earthsci.bookmark.ui.BookmarksPart.java
License:Apache License
private void initList(Composite parent) { Composite tableHolder = new Composite(parent, SWT.NONE); GridData gd = new GridData(GridData.FILL_BOTH); gd.grabExcessHorizontalSpace = true; gd.grabExcessVerticalSpace = true;/*w w w.j a va2 s .com*/ gd.horizontalAlignment = GridData.FILL; tableHolder.setLayoutData(gd); TableColumnLayout layout = new TableColumnLayout(); tableHolder.setLayout(layout); bookmarkListTableViewer = new TableViewer(tableHolder, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); bookmarkListTableViewer.getTable().setHeaderVisible(false); bookmarkListTableViewer.getTable().setLinesVisible(false); bookmarkListTableViewer.getTable().setLayoutData(gd); ObservableListContentProvider<IBookmark> contentProvider = new ObservableListContentProvider<IBookmark>( IBookmark.class); bookmarkListTableViewer.setContentProvider(contentProvider); IObservableSet<IBookmark> knownElements = contentProvider.getKnownElements(); IObservableMap<IBookmark, String> nameMap = BeanProperties.value(IBookmark.class, "name", String.class) //$NON-NLS-1$ .observeDetail(knownElements); TableViewerColumn column = new TableViewerColumn(bookmarkListTableViewer, SWT.LEFT); column.setEditingSupport(new BookmarkNameEditingSupport(bookmarkListTableViewer)); column.setLabelProvider(new ObservableMapCellLabelProvider<IBookmark, String>(nameMap) { @Override public void update(ViewerCell cell) { super.update(cell); cell.setText(" " + ((IBookmark) cell.getElement()).getName()); //$NON-NLS-1$ cell.setImage(ImageRegistry.getInstance().get(ImageRegistry.ICON_BOOKMARKS)); } }); ColumnLayoutData cld = new ColumnWeightData(12); layout.setColumnData(column.getColumn(), cld); // Allow edit (rename) only via programmatic access (rename command) ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy( bookmarkListTableViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(bookmarkListTableViewer, activationStrategy, ColumnViewerEditor.KEYBOARD_ACTIVATION); // Populate the current selection with the actual bookmark items bookmarkListTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) bookmarkListTableViewer.getSelection(); List<?> list = selection.toList(); selectionService.setSelection(list.toArray(new IBookmark[list.size()])); } }); // Apply the bookmark on double click bookmarkListTableViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { controller.apply((IBookmark) ((IStructuredSelection) event.getSelection()).getFirstElement()); } }); // Deselect when clicking outside a valid row bookmarkListTableViewer.getTable().addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { if (bookmarkListTableViewer.getTable().getItem(new Point(e.x, e.y)) == null) { bookmarkListTableViewer.setSelection(null); } } }); }
From source file:com.nokia.carbide.cpp.internal.sdk.ui.SDKPreferencePage.java
License:Open Source License
private void createSDKTable() { Table table = sdkListTableViewer.getTable(); table.setHeaderVisible(true);//from w ww. j a v a 2 s .c o m table.setLinesVisible(false); SDKViewerStrategy strategy = new SDKViewerStrategy(sdkListTableViewer); TableViewerEditor.create(sdkListTableViewer, strategy, ColumnViewerEditor.DEFAULT); TableViewerColumn enabledCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT); enabledCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Enabled_Column_Label")); //$NON-NLS-1$ enabledCol.getColumn().setWidth(50); TableViewerColumn idCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT); idCol.setEditingSupport(new IdEditingSupport(sdkListTableViewer)); //$NON-NLS-1$ idCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_ID_Column_Label")); idCol.getColumn().setWidth(160); TableViewerColumn locationCol = new TableViewerColumn(sdkListTableViewer, SWT.LEFT); locationCol.setEditingSupport(new LocationEditingSupport(sdkListTableViewer)); locationCol.getColumn().setText(Messages.getString("SDKPreferencePage.SDK_Table_Location_Column_Label")); //$NON-NLS-1$ locationCol.getColumn().setWidth(170); }
From source file:com.predic8.plugin.membrane.viewers.HeaderTableViewer.java
License:Apache License
public HeaderTableViewer(Composite parent, int style) { super(parent, style); table = getTable();//w w w .j ava2 s . c o m table.setHeaderVisible(true); table.setLinesVisible(true); TableLayout layout = new TableLayout(); table.setLayout(layout); layout.addColumnData((new ColumnWeightData(1))); new TableColumn(table, SWT.NONE).setText("Header Name"); layout.addColumnData((new ColumnWeightData(2))); new TableColumn(table, SWT.NONE).setText("Value"); setContentProvider(new HeaderTableContentProvider()); setLabelProvider(new HeaderTableLabelProvider()); setColumnProperties(columnNames); editors = new CellEditor[] { new TextCellEditor(table), new TextCellEditor(table) }; setCellEditors(editors); setCellModifier(new HeaderTableCellModifier(this)); TableViewerEditor.create(this, new ColumnViewerEditorActivationStrategy(this) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }, ColumnViewerEditor.DEFAULT); menuAction = new HeaderTableMenuAction(this); addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent e) { if (!(e.getSelection() instanceof IStructuredSelection)) return; menuAction.setEnableRemoveAction(isHeaderField(e)); } private boolean isHeaderField(SelectionChangedEvent e) { return ((IStructuredSelection) e.getSelection()).getFirstElement() instanceof HeaderField; } }); addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { Object selectedItem = ((IStructuredSelection) event.getSelection()).getFirstElement(); if (selectedItem instanceof HeaderField) { HeaderTableViewer.this.editElement(selectedItem, 1); } } }); }
From source file:com.predic8.plugin.membrane.views.ProxiesView.java
License:Apache License
protected void addCellEditorsAndModifiersToViewer() { setCellEditorForTableViewer(tableViewer); cellEditorModifier = new ProxyNameCellEditorModifier(); cellEditorModifier.setTableViewer(tableViewer); tableViewer.setCellModifier(cellEditorModifier); TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; }//from w ww .j ava2s. co m }, ColumnViewerEditor.DEFAULT); }
From source file:com.predic8.plugin.membrane.views.RuleStatisticsView.java
License:Apache License
private void addCellEditorsAndModifiersToViewer() { final CellEditor[] cellEditors = new CellEditor[1]; cellEditors[0] = new TextCellEditor(tableViewer.getTable(), SWT.BORDER); tableViewer.setCellEditors(cellEditors); tableViewer.setColumnProperties(new String[] { "name" }); cellEditorModifier = new RuleNameCellEditorModifier(); cellEditorModifier.setTableViewer(tableViewer); tableViewer.setCellModifier(cellEditorModifier); TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; }/*from w ww . j a v a 2 s . c o m*/ }, ColumnViewerEditor.DEFAULT); }
From source file:com.predic8.plugin.membrane.views.RulesView.java
License:Apache License
private TableViewer createTableViewer(Composite composite) { final TableViewer tableViewer = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); createColumns(tableViewer);// w w w. j a v a2 s.c o m tableViewer.setContentProvider(new RulesViewContentProvider()); tableViewer.setLabelProvider(new RulesViewLabelProvider()); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.grabExcessVerticalSpace = true; gridData.grabExcessHorizontalSpace = true; tableViewer.getTable().setLayoutData(gridData); PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, MembraneUIPlugin.PLUGIN_ID + "RuleStatistics"); setCellEditorForTableViewer(tableViewer); tableViewer.setColumnProperties(new String[] { "name" }); cellEditorModifier = new RuleNameCellEditorModifier(); cellEditorModifier.setTableViewer(tableViewer); tableViewer.setCellModifier(cellEditorModifier); TableViewerEditor.create(tableViewer, new ColumnViewerEditorActivationStrategy(tableViewer) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }, ColumnViewerEditor.DEFAULT); tableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); Object selectedItem = selection.getFirstElement(); if (selectedItem instanceof Rule) { tableViewer.editElement(selectedItem, 0); } } }); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); if (selection == null || selection.isEmpty()) { controlsComposite.enableDependentButtons(false); return; } controlsComposite.enableDependentButtons(true); setSelectedRule((Rule) selection.getFirstElement()); } private void setSelectedRule(Rule selectedRule) { removeRuleAction.setSelectedRule(selectedRule); editRuleAction.setSelectedRule(selectedRule); removeAllExchangesAction.setSelectedRule(selectedRule); showRuleDetailsAction.setSelectedRule(selectedRule); controlsComposite.setSelectedRule(selectedRule); updatedetailsViewIfVisible(selectedRule); } }); return tableViewer; }
From source file:era.foss.typeeditor.common.AddDeleteTableViewer.java
License:Open Source License
/** * Create table.//from w ww . j a va 2 s.co m */ private void setupTable() { // set table attributes table.setHeaderVisible(true); table.setLinesVisible(true); // add key listener table.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.character == SWT.DEL) { removeElements(); refresh(); } } @Override public void keyReleased(KeyEvent e) { /* do nothing */ } }); // prepare the activation strategy for setting a default behavior when editing table cells // (may be overwritten) ColumnViewerEditorActivationStrategy actStrategy = new ColumnViewerEditorActivationStrategy(this) { protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { boolean retVal = false; // TODO: make click-behavior like: 1) single-click if drop-down box 2) double-click if text-box // ((ViewerCell) event.getSource()).getElement(). ...? if (((ViewerCell) event.getSource()).getColumnIndex() <= 0) retVal = (event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC); if (((ViewerCell) event.getSource()).getColumnIndex() >= 1) retVal = (event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC); return retVal; } }; // define strategy how table cells are traversed and activated with the keyboard TableViewerEditor.create(this, actStrategy, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
From source file:eu.geclipse.jsdl.ui.widgets.DataStageInTable.java
License:Open Source License
/** * @param parent// www . j ava2s . c o m * @param input * @param buttonsPosition */ public DataStageInTable(final Composite parent, final List<DataStagingType> input, final int buttonsPosition) { this.input = input; this.mainComp = new Composite(parent, SWT.NONE); GridLayout gLayout; if (buttonsPosition == DataStageInTable.BUTTONS_RIGHT) { gLayout = new GridLayout(2, false); } else { gLayout = new GridLayout(1, false); } this.mainComp.setLayout(gLayout); GridData gData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL); this.mainComp.setLayoutData(gData); this.table = new Table(this.mainComp, SWT.BORDER | SWT.VIRTUAL | SWT.MULTI | SWT.FULL_SELECTION); this.table.setHeaderVisible(true); this.table.setLinesVisible(true); gData = new GridData(GridData.FILL_BOTH); gData.grabExcessVerticalSpace = true; gData.widthHint = 400; gData.heightHint = 100; this.table.setLayoutData(gData); TableLayout tableLayout = new TableLayout(); this.table.setLayout(tableLayout); TableColumn nameColumn = new TableColumn(this.table, SWT.CENTER); ColumnLayoutData data = new ColumnWeightData(100); tableLayout.addColumnData(data); data = new ColumnWeightData(100); tableLayout.addColumnData(data); data = new ColumnWeightData(150); tableLayout.addColumnData(data); nameColumn.setText(Messages.getString("DataStageInTable.source_location_field_label")); //$NON-NLS-1$ TableColumn typeColumn = new TableColumn(this.table, SWT.LEFT); typeColumn.setText(Messages.getString("DataStageInTable.name_field_label")); //$NON-NLS-1$ this.tableViewer = new TableViewer(this.table); IStructuredContentProvider contentProvider = new DataStageInContentProvider(); this.tableViewer.setContentProvider(contentProvider); this.tableViewer.setColumnProperties( new String[] { Messages.getString("DataStageInTable.source_location_field_label"), //$NON-NLS-1$ Messages.getString("DataStageInTable.name_field_label") //$NON-NLS-1$ }); this.tableViewer.setLabelProvider(new DataStageInContentLabelProvider()); if (this.input == null) { this.input = new ArrayList<DataStagingType>(); } this.tableViewer.setInput(this.input); this.tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { updateButtons(); } }); Composite buttonsComp = new Composite(this.mainComp, SWT.NONE); if (buttonsPosition == DataStageInTable.BUTTONS_BOTTOM) { gLayout = new GridLayout(3, true); } else { gLayout = new GridLayout(1, false); } buttonsComp.setLayout(gLayout); this.addButton = new Button(buttonsComp, SWT.PUSH); gData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_END); buttonsComp.setLayoutData(gData); gData = new GridData(GridData.FILL_BOTH); this.addButton.setLayoutData(gData); this.addButton.setText(Messages.getString("DataStageInTable.add_button_label")); //$NON-NLS-1$ this.addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { editDataStagingEntry(null); } }); this.editButton = new Button(buttonsComp, SWT.PUSH); gData = new GridData(GridData.FILL_BOTH); this.editButton.setLayoutData(gData); this.editButton.setText(Messages.getString("DataStageInTable.edit_button_label")); //$NON-NLS-1$ this.editButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { editDataStagingEntry(getSelectedObject()); } }); this.removeButton = new Button(buttonsComp, SWT.PUSH); gData = new GridData(GridData.FILL_BOTH); this.removeButton.setLayoutData(gData); this.removeButton.setText(Messages.getString("DataStageInTable.remove_button_label")); //$NON-NLS-1$ this.removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { DataStageInTable.this.input.remove(getSelectedObject()); DataStageInTable.this.tableViewer.refresh(); } }); DialogCellEditor editor = new DialogCellEditor() { @Override protected Object openDialogBox(final Control cellEditorWindow) { String filename = (String) doGetValue(); GridFileDialog dialog = new GridFileDialog(DataStageInTable.this.mainComp.getShell(), GridFileDialog.STYLE_ALLOW_ONLY_EXISTING | GridFileDialog.STYLE_ALLOW_ONLY_FILES); if (dialog.open() == Window.OK) { URI[] uris = dialog.getSelectedURIs(); if ((uris != null) && (uris.length > 0)) { filename = uris[0].toString(); } } // IGridConnectionElement connection = GridFileDialog.openFileDialog( // DataStageInTable.this.mainComp.getShell(), // Messages.getString( "DataStageInTable.grid_file_dialog_title" ), // //$NON-NLS-1$ // null, // true ); // if( connection != null ) { // try { // filename = connection.getConnectionFileStore().toString(); // } catch( CoreException cExc ) { // ProblemException exception = new ProblemException( // ICoreProblems.NET_CONNECTION_FAILED, // cExc, // Activator.PLUGIN_ID ); // ProblemDialog.openProblem( DataStageInTable.this.mainComp.getShell(), // Messages.getString( "DataStageInTable.error" ), //$NON-NLS-1$ // Messages.getString( "DataStageInTable.error" ), //$NON-NLS-1$ // exception ); // } // } return filename; } }; CellEditor[] table1 = new CellEditor[1]; table1[0] = editor; editor.create(this.table); this.tableViewer.setCellModifier(new ICellModifier() { public boolean canModify(final Object element, final String property) { return true; } public Object getValue(final Object element, final String property) { int columnIndex = -1; if (property.equals(Messages.getString("DataStageInTable.source_location_field_label"))) { //$NON-NLS-1$ columnIndex = 0; } if (property.equals(Messages.getString("DataStageInTable.name_field_label"))) { //$NON-NLS-1$ columnIndex = 1; } Object result = null; DataStagingType data1 = (DataStagingType) element; switch (columnIndex) { case 0: result = data1.getSource().getURI(); break; case 1: result = data1.getFileName(); break; default: result = ""; //$NON-NLS-1$ } return result; } public void modify(final Object element, final String property, final Object value) { int columnIndex = -1; if (property.equals(Messages.getString("DataStageInTable.source_location_field_label"))) { //$NON-NLS-1$ columnIndex = 0; } if (property.equals(Messages.getString("DataStageInTable.name_field_label"))) { //$NON-NLS-1$ columnIndex = 1; } TableItem item = (TableItem) element; DataStagingType dataOld = (DataStagingType) item.getData(); DataStagingType dataNew = null; switch (columnIndex) { case 0: dataNew = getNewDataStagingType(dataOld.getFileName(), (String) value); if (!dataNew.getFileName().equals(dataOld.getFileName()) || !dataNew.getSource().getURI().equals(dataOld.getSource().getURI())) { if (!isDataInInput(dataNew)) { // DataStageInTable.this.input.add( dataNew ); // DataStageInTable.this.input.remove( dataOld ); updateDataStaging(dataOld, dataNew.getFileName(), dataNew.getSource()); DataStageInTable.this.tableViewer.refresh(); } else { MessageDialog.openError(DataStageInTable.this.mainComp.getShell(), Messages.getString("DataStageInTable.edit_dialog_title"), //$NON-NLS-1$ Messages.getString("DataStageInTable.value_exists_dialog_message")); //$NON-NLS-1$ } } break; case 1: dataNew = getNewDataStagingType((String) value, dataOld.getSource().getURI()); if (!dataNew.getFileName().equals(dataOld.getFileName()) || !dataNew.getSource().getURI().equals(dataOld.getSource().getURI())) { if (!isDataInInput(dataNew)) { // DataStageInTable.this.input.add( dataNew ); // DataStageInTable.this.input.remove( dataOld ); updateDataStaging(dataOld, dataNew.getFileName(), dataNew.getSource()); DataStageInTable.this.tableViewer.refresh(); } else { MessageDialog.openError(DataStageInTable.this.mainComp.getShell(), Messages.getString("DataStageInTable.edit_dialog_title"), //$NON-NLS-1$ Messages.getString("DataStageInTable.value_exists_dialog_message")); //$NON-NLS-1$ } } break; } } }); CellEditor[] edTable = new CellEditor[] { editor, new TextCellEditor(this.tableViewer.getTable()) }; this.tableViewer.setCellEditors(edTable); TableViewerEditor.create(this.tableViewer, new ColumnViewerEditorActivationStrategy(this.tableViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL); updateButtons(); }
From source file:eu.geclipse.jsdl.ui.widgets.DataStageOutTable.java
License:Open Source License
/** * Creates new instance of table, table viewer, buttons (add, edit and * remove).// www . j av a 2s . co m * * @param parent controls' parent * @param input input for a table * @param buttonsPosition */ public DataStageOutTable(final Composite parent, final List<DataStagingType> input, final int buttonsPosition) { this.input = input; this.mainComp = new Composite(parent, SWT.NONE); GridLayout gLayout; if (buttonsPosition == DataStageOutTable.BUTTONS_BOTTOM) { gLayout = new GridLayout(1, false); } else { gLayout = new GridLayout(2, false); } this.mainComp.setLayout(gLayout); GridData gData = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_BOTH); this.mainComp.setLayoutData(gData); this.table = new Table(this.mainComp, SWT.BORDER | SWT.VIRTUAL | SWT.MULTI | SWT.FULL_SELECTION); this.table.setHeaderVisible(true); this.table.setLinesVisible(true); gData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL); gData.grabExcessVerticalSpace = true; gData.widthHint = 400; gData.heightHint = 100; this.table.setLayoutData(gData); TableLayout tableLayout = new TableLayout(); this.table.setLayout(tableLayout); TableColumn nameColumn = new TableColumn(this.table, SWT.CENTER); ColumnLayoutData data = new ColumnWeightData(100); tableLayout.addColumnData(data); data = new ColumnWeightData(100); tableLayout.addColumnData(data); data = new ColumnWeightData(150); tableLayout.addColumnData(data); nameColumn.setText(Messages.getString("DataStageInTable.name_field_label")); //$NON-NLS-1$ TableColumn locationColumn = new TableColumn(this.table, SWT.LEFT); locationColumn.setText(Messages.getString("DataStageInTable.target_location_field_label")); //$NON-NLS-1$ this.tableViewer = new TableViewer(this.table); IStructuredContentProvider contentProvider = new DataStageInContentProvider(); this.tableViewer.setContentProvider(contentProvider); this.tableViewer.setColumnProperties(new String[] { Messages.getString("DataStageInTable.name_field_label"), //$NON-NLS-1$ Messages.getString("DataStageInTable.target_location_field_label") //$NON-NLS-1$ }); this.tableViewer.setLabelProvider(new DataStageInContentLabelProvider()); if (this.input == null) { this.input = new ArrayList<DataStagingType>(); } this.tableViewer.setInput(this.input); this.tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { updateButtons(); } }); Composite buttonsComp = new Composite(this.mainComp, SWT.NONE); if (buttonsPosition == DataStageOutTable.BUTTONS_BOTTOM) { gLayout = new GridLayout(3, true); } else { gLayout = new GridLayout(1, false); } buttonsComp.setLayout(gLayout); this.addButton = new Button(buttonsComp, SWT.PUSH); gData = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_END); buttonsComp.setLayoutData(gData); gData = new GridData(GridData.FILL_BOTH); this.addButton.setLayoutData(gData); this.addButton.setText(Messages.getString("DataStageInTable.add_button_label")); //$NON-NLS-1$ this.addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { editDataStagingEntry(null); } }); this.editButton = new Button(buttonsComp, SWT.PUSH); gData = new GridData(GridData.FILL_BOTH); this.editButton.setLayoutData(gData); this.editButton.setText(Messages.getString("DataStageInTable.edit_button_label")); //$NON-NLS-1$ this.editButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { editDataStagingEntry(getSelectedObject()); } }); this.removeButton = new Button(buttonsComp, SWT.PUSH); gData = new GridData(GridData.FILL_BOTH); this.removeButton.setLayoutData(gData); this.removeButton.setText(Messages.getString("DataStageInTable.remove_button_label")); //$NON-NLS-1$ this.removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { DataStageOutTable.this.input.remove(getSelectedObject()); DataStageOutTable.this.tableViewer.refresh(); } }); DialogCellEditor editor = new DialogCellEditor() { @Override protected Object openDialogBox(final Control cellEditorWindow) { String filename = (String) doGetValue(); cellEditorWindow.getData(); GridFileDialog dialog = new GridFileDialog(DataStageOutTable.this.mainComp.getShell(), GridFileDialog.STYLE_ALLOW_ONLY_FILES); if (dialog.open() == Window.OK) { URI[] uris = dialog.getSelectedURIs(); if ((uris != null) && (uris.length > 0)) { filename = uris[0].toString(); } } return filename; } }; CellEditor[] table1 = new CellEditor[1]; table1[0] = editor; editor.create(this.table); this.tableViewer.setCellModifier(new ICellModifier() { public boolean canModify(final Object element, final String property) { return true; } public Object getValue(final Object element, final String property) { int columnIndex = -1; if (property.equals(Messages.getString("DataStageInTable.name_field_label"))) { //$NON-NLS-1$ columnIndex = 0; } if (property.equals(Messages.getString("DataStageInTable.target_location_field_label"))) { //$NON-NLS-1$ columnIndex = 1; } Object result = null; DataStagingType data1 = (DataStagingType) element; switch (columnIndex) { case 0: result = data1.getFileName(); break; case 1: result = data1.getTarget().getURI(); break; default: result = ""; //$NON-NLS-1$ } return result; } public void modify(final Object element, final String property, final Object value) { int columnIndex = -1; if (property.equals(Messages.getString("DataStageInTable.name_field_label"))) { //$NON-NLS-1$ columnIndex = 0; } if (property.equals(Messages.getString("DataStageInTable.target_location_field_label"))) { //$NON-NLS-1$ columnIndex = 1; } TableItem item = (TableItem) element; DataStagingType dataOld = (DataStagingType) item.getData(); DataStagingType dataNew = null; switch (columnIndex) { case 0: dataNew = getNewDataStagingType((String) value, dataOld.getTarget().getURI()); if (!dataNew.getFileName().equals(dataOld.getFileName()) || !dataNew.getTarget().getURI().equals(dataOld.getTarget().getURI())) { if (!isDataInInput(dataNew)) { DataStageOutTable.this.input.add(dataNew); DataStageOutTable.this.input.remove(dataOld); DataStageOutTable.this.tableViewer.refresh(); } else { MessageDialog.openError(DataStageOutTable.this.mainComp.getShell(), Messages.getString("DataStageOutTable.edit_dialog_title"), //$NON-NLS-1$ Messages.getString("DataStageOutTable.data_exists_error")); //$NON-NLS-1$ } } break; case 1: dataNew = getNewDataStagingType(dataOld.getFileName(), (String) value); if (!dataNew.getFileName().equals(dataOld.getFileName()) || !dataNew.getTarget().getURI().equals(dataOld.getTarget().getURI())) { if (!isDataInInput(dataNew)) { DataStageOutTable.this.input.add(dataNew); DataStageOutTable.this.input.remove(dataOld); DataStageOutTable.this.tableViewer.refresh(); } else { MessageDialog.openError(DataStageOutTable.this.mainComp.getShell(), Messages.getString("DataStageOutTable.edit_dialog_title"), //$NON-NLS-1$ Messages.getString("DataStageOutTable.data_exists_error")); //$NON-NLS-1$ } } break; } } }); CellEditor[] edTable = new CellEditor[] { new TextCellEditor(this.tableViewer.getTable()), editor }; this.tableViewer.setCellEditors(edTable); TableViewerEditor.create(this.tableViewer, new ColumnViewerEditorActivationStrategy(this.tableViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL); updateButtons(); }