List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer
public CheckboxTableViewer(Table table)
From source file:org.eclipse.equinox.p2.ui.RepositoryManipulationPage.java
License:Open Source License
protected Control createContents(Composite parent) { display = parent.getDisplay();//from w w w . j a v a2 s. c o m // The help refers to the full-blown dialog. No help if it's read only. if (policy.getRepositoriesVisible()) PlatformUI.getWorkbench().getHelpSystem().setHelp(parent.getShell(), IProvHelpContextIds.REPOSITORY_MANIPULATION_DIALOG); Composite composite = new Composite(parent, SWT.NONE); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); composite.setLayoutData(gd); GridLayout layout = new GridLayout(); layout.numColumns = policy.getRepositoriesVisible() ? 2 : 1; layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); composite.setLayout(layout); // Filter box pattern = new Text(composite, SWT.SINGLE | SWT.BORDER | SWT.SEARCH | SWT.CANCEL); pattern.getAccessible().addAccessibleListener(new AccessibleAdapter() { public void getName(AccessibleEvent e) { e.result = DEFAULT_FILTER_TEXT; } }); pattern.setText(DEFAULT_FILTER_TEXT); pattern.selectAll(); pattern.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { applyFilter(); } }); pattern.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.ARROW_DOWN) { if (table.getItemCount() > 0) { table.setFocus(); } else if (e.character == SWT.CR) { return; } } } }); pattern.addFocusListener(new FocusAdapter() { public void focusGained(FocusEvent e) { display.asyncExec(new Runnable() { public void run() { if (!pattern.isDisposed()) { if (DEFAULT_FILTER_TEXT.equals(pattern.getText().trim())) { pattern.selectAll(); } } } }); } }); gd = new GridData(SWT.FILL, SWT.FILL, true, false); pattern.setLayoutData(gd); // spacer to fill other column if (policy.getRepositoriesVisible()) new Label(composite, SWT.NONE); // Table of available repositories table = new Table(composite, SWT.CHECK | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); repositoryViewer = new CheckboxTableViewer(table); // Key listener for delete table.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.DEL) { removeRepositories(); } } }); setTableColumns(); CopyUtils.activateCopy(this, table); repositoryViewer.setComparer(new ProvElementComparer()); comparator = new MetadataRepositoryElementComparator(RepositoryDetailsLabelProvider.COL_NAME); repositoryViewer.setComparator(comparator); filter = new MetadataRepositoryPatternFilter(); repositoryViewer.setFilters(new ViewerFilter[] { filter }); // We don't need a deferred content provider because we are caching local results before // actually querying repositoryViewer.setContentProvider(new ProvElementContentProvider()); labelProvider = new RepositoryDetailsLabelProvider(); repositoryViewer.setLabelProvider(labelProvider); // Edit the nickname repositoryViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return element instanceof MetadataRepositoryElement; } public Object getValue(Object element, String property) { return ((MetadataRepositoryElement) element).getName(); } public void modify(Object element, String property, Object value) { if (value != null && value.toString().length() >= 0) { MetadataRepositoryElement repo; if (element instanceof Item) { repo = (MetadataRepositoryElement) ((Item) element).getData(); } else if (element instanceof MetadataRepositoryElement) { repo = (MetadataRepositoryElement) element; } else { return; } if (!value.toString().equals(repo.getName())) { changed = true; repo.setNickname(value.toString()); if (comparator.getSortKey() == RepositoryDetailsLabelProvider.COL_NAME) repositoryViewer.refresh(true); else repositoryViewer.update(repo, null); } } } }); repositoryViewer.setColumnProperties(new String[] { "nickname" }); //$NON-NLS-1$ repositoryViewer.setCellEditors(new CellEditor[] { new TextCellEditor(repositoryViewer.getTable()) }); repositoryViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (policy.getRepositoriesVisible()) validateButtons(); setDetails(); } }); repositoryViewer.setCheckStateProvider(new ICheckStateProvider() { public boolean isChecked(Object element) { return ((MetadataRepositoryElement) element).isEnabled(); } public boolean isGrayed(Object element) { return false; } }); repositoryViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { MetadataRepositoryElement element = (MetadataRepositoryElement) event.getElement(); element.setEnabled(event.getChecked()); // paranoid that an equal but not identical element was passed in as the selection. // update the cache map just in case. getInput().put(element); // update the viewer to show the change updateForEnablementChange(new MetadataRepositoryElement[] { element }); } }); // Input last repositoryViewer.setInput(getInput()); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true); data.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH); data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT); table.setLayoutData(data); // Drop targets and vertical buttons only if repository manipulation is provided. if (policy.getRepositoriesVisible()) { DropTarget target = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); target.setTransfer(new Transfer[] { URLTransfer.getInstance(), FileTransfer.getInstance() }); target.addDropListener(new RepositoryManipulatorDropTarget(ui, table)); // Vertical buttons Composite verticalButtonBar = createVerticalButtonBar(composite); data = new GridData(SWT.FILL, SWT.FILL, false, false); data.verticalAlignment = SWT.TOP; data.verticalIndent = 0; verticalButtonBar.setLayoutData(data); listener = getViewerProvisioningListener(); ProvUI.getProvisioningEventBus(ui.getSession()).addListener(listener); composite.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent event) { ProvUI.getProvisioningEventBus(ui.getSession()).removeListener(listener); } }); validateButtons(); } // Details area details = new Text(composite, SWT.READ_ONLY | SWT.WRAP); data = new GridData(SWT.FILL, SWT.FILL, true, false); data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_SITEDETAILS_HEIGHT); details.setLayoutData(data); Dialog.applyDialogFont(composite); return composite; }
From source file:org.eclipse.gyrex.admin.ui.internal.wizards.dialogfields.CheckedListDialogField.java
License:Open Source License
@Override protected TableViewer createTableViewer(final Composite parent) { final Table table = new Table(parent, SWT.CHECK | getListStyle()); table.setFont(parent.getFont());//from ww w . j a v a 2s. c o m final CheckboxTableViewer tableViewer = new CheckboxTableViewer(table); tableViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(final CheckStateChangedEvent e) { doCheckStateChanged(e); } }); return tableViewer; }
From source file:org.eclipse.jdt.internal.debug.ui.jres.ExecutionEnvironmentsPreferencePage.java
License:Open Source License
@Override protected Control createContents(Composite ancestor) { initializeDialogUnits(ancestor);/*from w ww .ja v a 2s. co m*/ noDefaultAndApplyButton(); // TODO: fix help PlatformUI.getWorkbench().getHelpSystem().setHelp(ancestor, IJavaDebugHelpContextIds.JRE_PROFILES_PAGE); // init default mappings IExecutionEnvironmentsManager manager = JavaRuntime.getExecutionEnvironmentsManager(); IExecutionEnvironment[] environments = manager.getExecutionEnvironments(); for (int i = 0; i < environments.length; i++) { IExecutionEnvironment environment = environments[i]; IVMInstall install = environment.getDefaultVM(); if (install != null) { fDefaults.put(environment, install); } } Composite container = new Composite(ancestor, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginHeight = 0; layout.marginWidth = 0; layout.makeColumnsEqualWidth = true; container.setLayout(layout); GridData gd = new GridData(GridData.FILL_BOTH); container.setLayoutData(gd); container.setFont(ancestor.getFont()); Composite eeContainer = new Composite(container, SWT.NONE); layout = new GridLayout(); layout.marginWidth = 0; eeContainer.setLayout(layout); eeContainer.setLayoutData(new GridData(GridData.FILL_BOTH)); Label label = new Label(eeContainer, SWT.NONE); label.setFont(ancestor.getFont()); label.setText(JREMessages.JREProfilesPreferencePage_2); label.setLayoutData(new GridData(SWT.FILL, 0, true, false)); Table table = new Table(eeContainer, SWT.BORDER | SWT.SINGLE); table.setLayout(layout); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fProfilesViewer = new TableViewer(table); fProfilesViewer.setContentProvider(new ArrayContentProvider()); fProfilesViewer.setLabelProvider(new ExecutionEnvironmentsLabelProvider()); fProfilesViewer.setInput(JavaRuntime.getExecutionEnvironmentsManager().getExecutionEnvironments()); Composite jreContainer = new Composite(container, SWT.NONE); layout = new GridLayout(); layout.marginWidth = 0; jreContainer.setLayout(layout); jreContainer.setLayoutData(new GridData(GridData.FILL_BOTH)); label = new Label(jreContainer, SWT.NONE); label.setFont(ancestor.getFont()); label.setText(JREMessages.JREProfilesPreferencePage_3); label.setLayoutData(new GridData(SWT.FILL, 0, true, false)); table = new Table(jreContainer, SWT.CHECK | SWT.BORDER | SWT.SINGLE); table.setLayout(layout); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); fJREsViewer = new CheckboxTableViewer(table); fJREsViewer.setContentProvider(new JREsContentProvider()); fJREsViewer.setLabelProvider( new JREsEnvironmentLabelProvider(new JREsEnvironmentLabelProvider.IExecutionEnvironmentProvider() { public IExecutionEnvironment getEnvironment() { return (IExecutionEnvironment) fJREsViewer.getInput(); } })); fJREsViewer.setComparator(new JREsEnvironmentComparator()); label = new Label(container, SWT.NONE); label.setFont(ancestor.getFont()); label.setText(JREMessages.JREProfilesPreferencePage_4); label.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1)); Text text = new Text(container, SWT.READ_ONLY | SWT.WRAP | SWT.BORDER); text.setFont(ancestor.getFont()); text.setLayoutData(new GridData(SWT.FILL, 0, true, false, 2, 1)); fDescription = text; fProfilesViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { handleEESelectionAndJREViewer((IStructuredSelection) event.getSelection()); } }); fJREsViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { if (event.getChecked()) { Object element = event.getElement(); fDefaults.put(fJREsViewer.getInput(), element); fJREsViewer.setCheckedElements(new Object[] { element }); } else { fDefaults.remove(fJREsViewer.getInput()); } } }); Dialog.applyDialogFont(ancestor); return ancestor; }
From source file:org.eclipse.jdt.internal.debug.ui.jres.InstalledJREsBlock.java
License:Open Source License
/** * Creates this block's control in the given control. * /*from w w w . jav a 2 s .co m*/ * @param ancestor containing control * @param useManageButton whether to present a single 'manage...' button to * the user that opens the installed JREs pref page for JRE management, * or to provide 'add, remove, edit, and search' buttons. */ public void createControl(Composite ancestor) { Font font = ancestor.getFont(); Composite parent = SWTFactory.createComposite(ancestor, font, 2, 1, GridData.FILL_BOTH); fControl = parent; SWTFactory.createLabel(parent, JREMessages.InstalledJREsBlock_15, 2); fTable = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 250; gd.widthHint = 350; fTable.setLayoutData(gd); fTable.setFont(font); fTable.setHeaderVisible(true); fTable.setLinesVisible(true); TableColumn column = new TableColumn(fTable, SWT.NULL); column.setText(JREMessages.InstalledJREsBlock_0); column.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { sortByName(); fVMList.refresh(true); } }); int defaultwidth = 350 / 3 + 1; column.setWidth(defaultwidth); column = new TableColumn(fTable, SWT.NULL); column.setText(JREMessages.InstalledJREsBlock_1); column.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { sortByLocation(); fVMList.refresh(true); } }); column.setWidth(defaultwidth); column = new TableColumn(fTable, SWT.NULL); column.setText(JREMessages.InstalledJREsBlock_2); column.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { sortByType(); fVMList.refresh(true); } }); column.setWidth(defaultwidth); fVMList = new CheckboxTableViewer(fTable); fVMList.setLabelProvider(new VMLabelProvider()); fVMList.setContentProvider(new JREsContentProvider()); fVMList.setUseHashlookup(true); // by default, sort by name sortByName(); fVMList.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent evt) { enableButtons(); } }); fVMList.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { if (event.getChecked()) { setCheckedJRE((IVMInstall) event.getElement()); } else { setCheckedJRE(null); } } }); fVMList.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent e) { if (!fVMList.getSelection().isEmpty()) { editVM(); } } }); fTable.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent event) { if (event.character == SWT.DEL && event.stateMask == 0) { if (fRemoveButton.isEnabled()) { removeVMs(); } } } }); Composite buttons = SWTFactory.createComposite(parent, font, 1, 1, GridData.VERTICAL_ALIGN_BEGINNING, 0, 0); fAddButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_3, null); fAddButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event evt) { addVM(); } }); fEditButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_4, null); fEditButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event evt) { editVM(); } }); fCopyButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_16, null); fCopyButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event evt) { copyVM(); } }); fRemoveButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_5, null); fRemoveButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event evt) { removeVMs(); } }); SWTFactory.createVerticalSpacer(parent, 1); fSearchButton = SWTFactory.createPushButton(buttons, JREMessages.InstalledJREsBlock_6, null); fSearchButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event evt) { search(); } }); fillWithWorkspaceJREs(); enableButtons(); fAddButton.setEnabled(JavaRuntime.getVMInstallTypes().length > 0); JavaRuntime.addVMInstallChangedListener(fListener); }
From source file:org.eclipse.jdt.internal.debug.ui.propertypages.ExceptionFilterEditor.java
License:Open Source License
public ExceptionFilterEditor(Composite parent, JavaExceptionBreakpointAdvancedPage page) { fBreakpoint = (IJavaExceptionBreakpoint) page.getBreakpoint(); // top level container Composite outer = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2;/*from w w w. ja v a 2 s . co m*/ layout.marginHeight = 0; layout.marginWidth = 0; outer.setLayout(layout); GridData gd = new GridData(GridData.FILL_BOTH); outer.setLayoutData(gd); outer.setFont(parent.getFont()); // filter table Label label = new Label(outer, SWT.NONE); label.setText(PropertyPageMessages.ExceptionFilterEditor_5); label.setFont(parent.getFont()); gd = new GridData(); gd.horizontalSpan = 2; label.setLayoutData(gd); fFilterTable = new Table(outer, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); TableLayout tableLayout = new TableLayout(); ColumnLayoutData[] columnLayoutData = new ColumnLayoutData[1]; columnLayoutData[0] = new ColumnWeightData(100); tableLayout.addColumnData(columnLayoutData[0]); fFilterTable.setLayout(tableLayout); fFilterTable.setFont(parent.getFont()); new TableColumn(fFilterTable, SWT.NONE); fFilterViewer = new CheckboxTableViewer(fFilterTable); fTableEditor = new TableEditor(fFilterTable); fFilterViewer.setLabelProvider(new FilterLabelProvider()); fFilterViewer.setComparator(new FilterViewerComparator()); fFilterContentProvider = new FilterContentProvider(fFilterViewer); fFilterViewer.setContentProvider(fFilterContentProvider); // input just needs to be non-null fFilterViewer.setInput(this); gd = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL); gd.widthHint = 100; gd.heightHint = 100; fFilterViewer.getTable().setLayoutData(gd); fFilterViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { Filter filter = (Filter) event.getElement(); fFilterContentProvider.toggleFilter(filter); } }); fFilterViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { ISelection selection = event.getSelection(); if (selection.isEmpty()) { fRemoveFilterButton.setEnabled(false); } else { fRemoveFilterButton.setEnabled(true); } } }); fFilterViewer.getTable().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent event) { if (event.character == SWT.DEL && event.stateMask == 0) { removeFilters(); } } }); createFilterButtons(outer); }
From source file:org.eclipse.jdt.internal.junit.ui.JUnitPreferencePage.java
License:Open Source License
private void createFilterTable(Composite container) { TableLayoutComposite layouter = new TableLayoutComposite(container, SWT.NONE); layouter.addColumnData(new ColumnWeightData(100)); layouter.setLayoutData(new GridData(GridData.FILL_BOTH)); fFilterTable = new Table(layouter, SWT.CHECK | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); @SuppressWarnings("unused") TableColumn tableColumn = new TableColumn(fFilterTable, SWT.NONE); fFilterViewer = new CheckboxTableViewer(fFilterTable); fTableEditor = new TableEditor(fFilterTable); fFilterViewer.setLabelProvider(new FilterLabelProvider()); fFilterViewer.setComparator(new FilterViewerSorter()); fStackFilterContentProvider = new StackFilterContentProvider(); fFilterViewer.setContentProvider(fStackFilterContentProvider); // input just needs to be non-null fFilterViewer.setInput(this); fFilterViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { Filter filter = (Filter) event.getElement(); fStackFilterContentProvider.toggleFilter(filter); }/*w w w . j a va2s .com*/ }); fFilterViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { ISelection selection = event.getSelection(); fRemoveFilterButton.setEnabled(!selection.isEmpty()); } }); }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.entity.EntityRowTableWizardSection.java
License:Open Source License
/** * @param parent the main composite - Entity fields page * @param model the data model representation * @param propertyName data property name *//*w w w .j a v a2s.com*/ public EntityRowTableWizardSection(Composite parent, IDataModel model, String propertyName) { super(parent, SWT.NONE); this.model = model; this.propertyName = propertyName; GridLayout layout = new GridLayout(2, false); layout.marginHeight = 4; layout.marginWidth = 0; this.setLayout(layout); this.setLayoutData(new GridData(GridData.FILL_BOTH)); mTableWidget = new Table(this, SWT.CHECK | SWT.FULL_SELECTION | SWT.BORDER); mTableWidget.setHeaderVisible(true); mTableWidget.setLinesVisible(true); mTableViewer = new CheckboxTableViewer(mTableWidget); GridData data = new GridData(GridData.FILL_BOTH); data.verticalSpan = 2; mTableWidget.setLayoutData(data); mTableViewer.setContentProvider(new EntityRowContentProvider()); mTableViewer.setLabelProvider(new EntityRowLabelProvider()); final Composite buttonComposition = new Composite(this, SWT.NULL); layout = new GridLayout(); layout.marginHeight = 0; buttonComposition.setLayout(layout); buttonComposition.setLayoutData(new GridData(GridData.FILL_VERTICAL | GridData.VERTICAL_ALIGN_BEGINNING)); addButton = new Button(buttonComposition, SWT.PUSH); addButton.setText(JptJpaUiWizardsEntityMessages.ADD_BUTTON_LABEL); addButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL)); addButton.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent event) { handleAddButtonSelected(); } public void widgetDefaultSelected(SelectionEvent event) { //Do nothing } }); editButton = new Button(buttonComposition, SWT.PUSH); editButton.setText(JptJpaUiWizardsEntityMessages.EDIT_BUTTON_LABEL); editButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL)); editButton.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent event) { handleEditButtonSelected(); } public void widgetDefaultSelected(SelectionEvent event) { //Do nothing } }); editButton.setEnabled(false); mTableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { handleEditButtonSelected(); } }); removeButton = new Button(buttonComposition, SWT.PUSH); removeButton.setText(JptJpaUiWizardsEntityMessages.REMOVE_BUTTON_LABEL); removeButton .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_FILL)); removeButton.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent event) { handleRemoveButtonSelected(); } public void widgetDefaultSelected(SelectionEvent event) { //Do nothing } }); removeButton.setEnabled(false); mTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { ISelection selection = event.getSelection(); if (editButton != null) { boolean enabled = ((IStructuredSelection) selection).size() == 1; editButton.setEnabled(enabled); } removeButton.setEnabled(!selection.isEmpty()); } }); final TableColumn pkColumn = new TableColumn(mTableWidget, SWT.CHECK); pkColumn.setText(JptJpaUiWizardsEntityMessages.KEY); pkColumn.pack(); pkColumn.setResizable(false); TableColumn nameColumn = new TableColumn(mTableWidget, SWT.NONE); nameColumn.setText(JptJpaUiWizardsEntityMessages.NAME_COLUMN); TableColumn typeColumn = new TableColumn(mTableWidget, SWT.NONE); typeColumn.setText(JptJpaUiWizardsEntityMessages.TYPE_COLUMN); this.addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent e) { Table table = mTableViewer.getTable(); TableColumn[] columns = table.getColumns(); Point buttonArea = buttonComposition.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle area = table.getParent().getClientArea(); Point preferredSize = mTableViewer.getTable().computeSize(SWT.DEFAULT, SWT.DEFAULT); int width = area.width - 2 * table.getBorderWidth() - buttonArea.x - (columns.length << 1) - pkColumn.getWidth(); if (preferredSize.y > area.height + table.getHeaderHeight()) { // Subtract the scrollbar width from the total column width // if a vertical scrollbar will be required Point vBarSize = table.getVerticalBar().getSize(); width -= vBarSize.x; } Point oldSize = table.getSize(); int consumeWidth = 0; int col = columns.length - 1; for (int i = 1; i < columns.length; i++) { if (oldSize.x > area.width) { // table is getting smaller so make the columns // smaller first and then resize the table to // match the client area width consumeWidth = setColumntWidth(width, columns, consumeWidth, i); table.setSize(area.width - buttonArea.x - ((col << 1) + pkColumn.getWidth()), area.height); } else { // table is getting bigger so make the table // bigger first and then make the columns wider // to match the client area width consumeWidth = setColumntWidth(width, columns, consumeWidth, i); table.setSize(area.width - buttonArea.x - ((col << 1) + pkColumn.getWidth()), area.height); } } } private int setColumntWidth(int width, TableColumn[] columns, int consumeWidth, int i) { if (i < columns.length - 1) { columns[i].setWidth(width / (columns.length - 1)); consumeWidth += columns[i].getWidth(); } else { columns[i].setWidth(width - consumeWidth); } return consumeWidth; } }); mTableViewer.addCheckStateListener(new PKFieldCheckStateListener()); callback = new FieldDialogCallback(); }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.gen.TablesSelectorWizardPage.java
License:Open Source License
private CheckboxTableViewer buildCheckboxTableViewer(org.eclipse.swt.widgets.Table parent) { CheckboxTableViewer tableViewer = new CheckboxTableViewer(parent); tableViewer.setUseHashlookup(true);//from w ww . j av a2 s.c o m tableViewer.setLabelProvider(this.buildTableTableLabelProvider()); tableViewer.setContentProvider(this.buildTableTableContentProvider()); tableViewer.setSorter(this.buildTableViewerSorter()); tableViewer.addPostSelectionChangedListener(this.buildTableSelectionChangedListener()); return tableViewer; }
From source file:org.eclipse.jpt.jpa.ui.internal.wizards.makepersistent.SelectOrderByDialog.java
License:Open Source License
private void createPropertiesTable(Composite parent) { TableLayoutComposite layout = new TableLayoutComposite(parent, SWT.NONE); addColumnLayoutData(layout);/*w w w. ja va2 s. co m*/ final org.eclipse.swt.widgets.Table table = new org.eclipse.swt.widgets.Table(layout, SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.CHECK); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn tableNameColumn = new TableColumn(table, SWT.NONE, PROPERTY_COLUMN_INDEX); tableNameColumn.setText(JptJpaUiMakePersistentMessages.SELECT_ORDERBY_DIALOG_PROPERTY); tableNameColumn.setResizable(true); TableColumn entityNameColumn = new TableColumn(table, SWT.NONE, ORDER_COLUMN_INDEX); entityNameColumn.setText(JptJpaUiMakePersistentMessages.SELECT_ORDERBY_DIALOG_ORDER); entityNameColumn.setResizable(true); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = TableTools.calculateHeightHint(table, 10); gd.widthHint = 400; layout.setLayoutData(gd); this.propertiesTable = new CheckboxTableViewer(table); this.propertiesTable.setUseHashlookup(true); this.propertiesTable.setLabelProvider(new PropertyTableLabelProvider()); this.propertiesTable.setContentProvider(new PropertyTableContentProvider()); this.propertiesTable.addPostSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { handlePropertiesSelectionChanged(event); } }); table.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.F2 && e.stateMask == SWT.NONE) { //editEntityNameIfPossible(); e.doit = false; } } }); this.addCellEditors(); initPropertiesTable(); }
From source file:org.eclipse.jst.common.project.facet.ui.libprov.user.UserLibraryProviderInstallPanel.java
License:Open Source License
/** * Creates the panel control.//from w w w . j a v a 2 s. c o m * * @param parent the parent composite * @return the created control */ @Override public Control createControl(final Composite parent) { this.rootComposite = new Composite(parent, SWT.NONE); this.rootComposite.setLayout(gl(1, 0, 0)); final Composite tableComposite = new Composite(this.rootComposite, SWT.NONE); tableComposite.setLayoutData(gdhfill()); tableComposite.setLayout(gl(2, 0, 0)); final Table libsTable = new Table(tableComposite, SWT.CHECK | SWT.BORDER); libsTable.setLayoutData(gdhhint(gdhfill(), 60)); this.libsTableViewer = new CheckboxTableViewer(libsTable); this.libsTableViewer.setContentProvider(new LibrariesContentProvider()); this.libsTableViewer.setLabelProvider(new LibrariesLabelProvider()); this.libsTableViewer.setComparator(new ViewerComparator()); this.libsTableViewer.setInput(new Object()); final UserLibraryProviderInstallOperationConfig cfg = (UserLibraryProviderInstallOperationConfig) getOperationConfig(); this.libsTableViewer.setCheckedElements(cfg.getLibraryNames().toArray()); this.libsTableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(final CheckStateChangedEvent event) { final List<String> libs = new ArrayList<String>(); for (Object element : UserLibraryProviderInstallPanel.this.libsTableViewer.getCheckedElements()) { libs.add((String) element); } cfg.setLibraryNames(libs); } }); final IPropertyChangeListener listener = new IPropertyChangeListener() { public void propertyChanged(final String property, final Object oldValue, final Object newValue) { handleLibraryNamesChanged(); } }; cfg.addListener(listener, UserLibraryProviderInstallOperationConfig.PROP_LIBRARY_NAMES); final Image manageLibrariesImage = getImageDescriptor(IMG_PATH_BUTTON_MANAGE_LIBRARIES).createImage(); final Image downloadLibraryImage = getImageDescriptor(IMG_PATH_BUTTON_DOWNLOAD).createImage(); final Menu menu = new Menu(libsTable); libsTable.setMenu(menu); final ToolBar toolBar = new ToolBar(tableComposite, SWT.FLAT | SWT.VERTICAL); toolBar.setLayoutData(gdvfill()); final SelectionAdapter manageLibrariesListener = new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { final String id = UserLibraryPreferencePage.ID; final Shell shell = libsTable.getShell(); final PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(shell, id, new String[] { id }, null); if (dialog.open() == Window.OK) { UserLibraryProviderInstallPanel.this.libsTableViewer.refresh(); // We need to send an event up the listener chain since validation needs to be // refreshed. This not an ideal solution, but it does work. The name of the // property is not important since the listener that does validation is global. final List<String> libNames = cfg.getLibraryNames(); cfg.notifyListeners("validation", libNames, libNames); //$NON-NLS-1$ } } }; final MenuItem manageLibrariesMenuItem = new MenuItem(menu, SWT.PUSH); manageLibrariesMenuItem.setText(Resources.manageLibrariesMenuItem); manageLibrariesMenuItem.setImage(manageLibrariesImage); manageLibrariesMenuItem.addSelectionListener(manageLibrariesListener); final ToolItem manageLibrariesButton = new ToolItem(toolBar, SWT.PUSH); manageLibrariesButton.setImage(manageLibrariesImage); manageLibrariesButton.setToolTipText(Resources.manageLibrariesButtonToolTip); manageLibrariesButton.addSelectionListener(manageLibrariesListener); final SelectionAdapter downloadLibraryListener = new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { final UserLibraryProviderInstallOperationConfig cfg = (UserLibraryProviderInstallOperationConfig) getOperationConfig(); final String downloadedLibraryName = DownloadLibraryWizard.open(cfg); if (downloadedLibraryName != null) { refreshLibrariesList(); cfg.addLibraryName(downloadedLibraryName); } } }; this.downloadLibraryMenuItem = new MenuItem(menu, SWT.PUSH); this.downloadLibraryMenuItem.setText(Resources.downloadLibraryMenuItem); this.downloadLibraryMenuItem.setImage(downloadLibraryImage); this.downloadLibraryMenuItem.setEnabled(this.downloadCommandEnabled); this.downloadLibraryMenuItem.addSelectionListener(downloadLibraryListener); this.downloadLibraryButton = new ToolItem(toolBar, SWT.PUSH); this.downloadLibraryButton.setImage(downloadLibraryImage); this.downloadLibraryButton.setToolTipText(Resources.downloadLibraryButtonToolTip); this.downloadLibraryButton.setEnabled(this.downloadCommandEnabled); this.downloadLibraryButton.addSelectionListener(downloadLibraryListener); final Control footerControl = createFooter(this.rootComposite); if (footerControl != null) { footerControl.setLayoutData(gdhfill()); } this.rootComposite.addDisposeListener(new DisposeListener() { public void widgetDisposed(final DisposeEvent event) { cfg.removeListener(listener); manageLibrariesImage.dispose(); downloadLibraryImage.dispose(); } }); return this.rootComposite; }