List of usage examples for org.eclipse.jface.viewers CheckboxTableViewer CheckboxTableViewer
public CheckboxTableViewer(Table table)
From source file:org.eclipse.team.internal.ccvs.ui.tags.TagConfigurationDialog.java
License:Open Source License
/** * @see Dialog#createDialogArea(Composite) *///w w w .j a va 2 s . co m protected Control createDialogArea(Composite parent) { Composite shell = new Composite(parent, SWT.NONE); GridData data = new GridData(GridData.FILL_BOTH); shell.setLayoutData(data); GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 2; gridLayout.makeColumnsEqualWidth = true; gridLayout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN); gridLayout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN); shell.setLayout(gridLayout); Composite comp = new Composite(shell, SWT.NULL); gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayout.marginWidth = 0; gridLayout.marginHeight = 0; comp.setLayout(gridLayout); comp.setLayoutData(new GridData(GridData.FILL_BOTH)); Label cvsResourceTreeLabel = new Label(comp, SWT.NONE); cvsResourceTreeLabel.setText(CVSUIMessages.TagConfigurationDialog_5); data = new GridData(); data.horizontalSpan = 1; cvsResourceTreeLabel.setLayoutData(data); Tree tree = new Tree(comp, SWT.BORDER | SWT.MULTI); cvsResourceTree = new TreeViewer(tree); cvsResourceTree.setContentProvider(new RemoteContentProvider()); cvsResourceTree.setLabelProvider(new WorkbenchLabelProvider()); data = new GridData(GridData.FILL_BOTH); data.heightHint = 150; data.horizontalSpan = 1; cvsResourceTree.getTree().setLayoutData(data); cvsResourceTree.setComparator(new FileComparator()); cvsResourceTree.setInput(TagSourceResourceAdapter.getViewerInput(tagSource)); cvsResourceTree.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateShownTags(); updateEnablements(); } }); comp = new Composite(shell, SWT.NULL); gridLayout = new GridLayout(); gridLayout.numColumns = 1; gridLayout.marginWidth = 0; gridLayout.marginHeight = 0; comp.setLayout(gridLayout); comp.setLayoutData(new GridData(GridData.FILL_BOTH)); Label cvsTagTreeLabel = new Label(comp, SWT.NONE); cvsTagTreeLabel.setText(CVSUIMessages.TagConfigurationDialog_6); data = new GridData(); data.horizontalSpan = 1; cvsTagTreeLabel.setLayoutData(data); final Table table = new Table(comp, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.CHECK); data = new GridData(GridData.FILL_BOTH); data.heightHint = 150; data.horizontalSpan = 1; table.setLayoutData(data); cvsTagTree = new CheckboxTableViewer(table); cvsTagTree.setContentProvider(new WorkbenchContentProvider()); cvsTagTree.setLabelProvider(new WorkbenchLabelProvider()); cvsTagTree.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateEnablements(); } }); Composite selectComp = new Composite(comp, SWT.NONE); GridLayout selectLayout = new GridLayout(2, true); selectLayout.marginHeight = selectLayout.marginWidth = 0; selectComp.setLayout(selectLayout); selectComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Button selectAllButton = new Button(selectComp, SWT.PUSH); selectAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); selectAllButton.setText(CVSUIMessages.ReleaseCommentDialog_selectAll); selectAllButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int nItems = table.getItemCount(); for (int j = 0; j < nItems; j++) table.getItem(j).setChecked(true); } }); Button deselectAllButton = new Button(selectComp, SWT.PUSH); deselectAllButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); deselectAllButton.setText(CVSUIMessages.ReleaseCommentDialog_deselectAll); deselectAllButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { int nItems = table.getItemCount(); for (int j = 0; j < nItems; j++) table.getItem(j).setChecked(false); } }); cvsTagTree.setComparator(new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { if (!(e1 instanceof TagElement) || !(e2 instanceof TagElement)) return super.compare(viewer, e1, e2); CVSTag tag1 = ((TagElement) e1).getTag(); CVSTag tag2 = ((TagElement) e2).getTag(); int type1 = tag1.getType(); int type2 = tag2.getType(); if (type1 != type2) { return type1 - type2; } // Sort in reverse order so larger numbered versions are at the top return -tag1.compareTo(tag2); } }); Composite rememberedTags = new Composite(shell, SWT.NONE); data = new GridData(GridData.FILL_BOTH); data.horizontalSpan = 2; rememberedTags.setLayoutData(data); gridLayout = new GridLayout(); gridLayout.numColumns = 2; gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; rememberedTags.setLayout(gridLayout); Label rememberedTagsLabel = new Label(rememberedTags, SWT.NONE); rememberedTagsLabel.setText(CVSUIMessages.TagConfigurationDialog_7); data = new GridData(); data.horizontalSpan = 2; rememberedTagsLabel.setLayoutData(data); tree = new Tree(rememberedTags, SWT.BORDER | SWT.MULTI); cvsDefinedTagsTree = new TreeViewer(tree); cvsDefinedTagsTree.setContentProvider(new WorkbenchContentProvider()); cvsDefinedTagsTree.setLabelProvider(new WorkbenchLabelProvider()); data = new GridData(GridData.FILL_BOTH); data.heightHint = 100; data.horizontalAlignment = GridData.FILL; data.grabExcessHorizontalSpace = true; cvsDefinedTagsTree.getTree().setLayoutData(data); cvsDefinedTagsRootElement = new TagSourceWorkbenchAdapter(wrappedTagSource, TagSourceWorkbenchAdapter.INCLUDE_BRANCHES | TagSourceWorkbenchAdapter.INCLUDE_VERSIONS | TagSourceWorkbenchAdapter.INCLUDE_DATES); cvsDefinedTagsTree.setInput(cvsDefinedTagsRootElement); cvsDefinedTagsTree.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateEnablements(); } }); cvsDefinedTagsTree.setComparator(new ProjectElementComparator()); Composite buttonComposite = new Composite(rememberedTags, SWT.NONE); data = new GridData(); data.verticalAlignment = GridData.BEGINNING; buttonComposite.setLayoutData(data); gridLayout = new GridLayout(); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; buttonComposite.setLayout(gridLayout); addSelectedTagsButton = new Button(buttonComposite, SWT.PUSH); addSelectedTagsButton.setText(CVSUIMessages.TagConfigurationDialog_8); data = getStandardButtonData(addSelectedTagsButton); data.horizontalAlignment = GridData.FILL; addSelectedTagsButton.setLayoutData(data); addSelectedTagsButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { rememberCheckedTags(); updateShownTags(); updateEnablements(); } }); Button addDatesButton = new Button(buttonComposite, SWT.PUSH); addDatesButton.setText(CVSUIMessages.TagConfigurationDialog_0); data = getStandardButtonData(addDatesButton); data.horizontalAlignment = GridData.FILL; addDatesButton.setLayoutData(data); addDatesButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { CVSTag dateTag = NewDateTagAction.getDateTag(getShell(), tagSource.getLocation()); addDateTagsSelected(dateTag); updateShownTags(); updateEnablements(); } }); removeTagButton = new Button(buttonComposite, SWT.PUSH); removeTagButton.setText(CVSUIMessages.TagConfigurationDialog_9); data = getStandardButtonData(removeTagButton); data.horizontalAlignment = GridData.FILL; removeTagButton.setLayoutData(data); removeTagButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { deleteSelected(); updateShownTags(); updateEnablements(); } }); Button removeAllTags = new Button(buttonComposite, SWT.PUSH); removeAllTags.setText(CVSUIMessages.TagConfigurationDialog_10); data = getStandardButtonData(removeAllTags); data.horizontalAlignment = GridData.FILL; removeAllTags.setLayoutData(data); removeAllTags.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { removeAllKnownTags(); updateShownTags(); updateEnablements(); } }); if (allowSettingAutoRefreshFiles) { Label explanation = new Label(rememberedTags, SWT.WRAP); explanation.setText(CVSUIMessages.TagConfigurationDialog_11); data = new GridData(); data.horizontalSpan = 2; //data.widthHint = 300; explanation.setLayoutData(data); autoRefreshFileList = new org.eclipse.swt.widgets.List(rememberedTags, SWT.BORDER | SWT.MULTI); data = new GridData(); data.heightHint = 45; data.horizontalAlignment = GridData.FILL; data.grabExcessHorizontalSpace = true; autoRefreshFileList.setLayoutData(data); try { autoRefreshFileList.setItems(CVSUIPlugin.getPlugin().getRepositoryManager() .getAutoRefreshFiles(getSingleFolder(tagSource, false))); } catch (CVSException e) { autoRefreshFileList.setItems(new String[0]); CVSUIPlugin.log(e); } autoRefreshFileList.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { updateEnablements(); } public void widgetDefaultSelected(SelectionEvent e) { updateEnablements(); } }); Composite buttonComposite2 = new Composite(rememberedTags, SWT.NONE); data = new GridData(); data.verticalAlignment = GridData.BEGINNING; buttonComposite2.setLayoutData(data); gridLayout = new GridLayout(); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; buttonComposite2.setLayout(gridLayout); addSelectedFilesButton = new Button(buttonComposite2, SWT.PUSH); addSelectedFilesButton.setText(CVSUIMessages.TagConfigurationDialog_12); data = getStandardButtonData(addSelectedFilesButton); data.horizontalAlignment = GridData.FILL; addSelectedFilesButton.setLayoutData(data); addSelectedFilesButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { addSelectionToAutoRefreshList(); } }); removeFileButton = new Button(buttonComposite2, SWT.PUSH); removeFileButton.setText(CVSUIMessages.TagConfigurationDialog_13); data = getStandardButtonData(removeFileButton); data.horizontalAlignment = GridData.FILL; removeFileButton.setLayoutData(data); removeFileButton.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { String[] selected = autoRefreshFileList.getSelection(); for (int i = 0; i < selected.length; i++) { autoRefreshFileList.remove(selected[i]); autoRefreshFileList.setFocus(); } } }); PlatformUI.getWorkbench().getHelpSystem().setHelp(autoRefreshFileList, IHelpContextIds.TAG_CONFIGURATION_REFRESHLIST); } Label seperator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL); data = new GridData(GridData.FILL_BOTH); data.horizontalSpan = 2; seperator.setLayoutData(data); PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IHelpContextIds.TAG_CONFIGURATION_OVERVIEW); updateEnablements(); Dialog.applyDialogFont(parent); return shell; }
From source file:org.eclipse.team.svn.ui.composite.DiffViewerFileAssociationsComposite.java
License:Open Source License
protected void createFileAssociationsTable(Composite parent) { Table table = new Table(parent, SWT.CHECK | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL); TableLayout layout = new TableLayout(); layout.addColumnData(new ColumnPixelData(20, false)); layout.addColumnData(new ColumnWeightData(30, true)); layout.addColumnData(new ColumnWeightData(40, true)); layout.addColumnData(new ColumnWeightData(40, true)); GridData data = new GridData(GridData.FILL_BOTH); table.setLayoutData(data);// ww w . j av a2 s . c om table.setLayout(layout); table.setLinesVisible(true); table.setHeaderVisible(true); this.tableViewer = new CheckboxTableViewer(table); this.tableViewer.setUseHashlookup(true); //this.tableViewer.setColumnProperties(columnNames); this.tableViewer.setContentProvider(new FileAssociationsContentProvider()); this.tableViewer.setLabelProvider(new FileAssociationsLabelProvider()); ColumnedViewerComparator comparator = new FileAssociationsComparator(this.tableViewer); TableColumn column = new TableColumn(table, SWT.NONE); column.setResizable(false); column = new TableColumn(table, SWT.NONE); column.setText(SVNUIMessages.DiffViewerFileAssociationsComposite_ExtensionMimeType_Column); column.addSelectionListener(comparator); column = new TableColumn(table, SWT.NONE); column.setText(SVNUIMessages.DiffViewerFileAssociationsComposite_DiffProgramPath_Column); column.addSelectionListener(comparator); column = new TableColumn(table, SWT.NONE); column.setText(SVNUIMessages.DiffViewerFileAssociationsComposite_MergeProgramPath_Column); column.addSelectionListener(comparator); this.tableViewer.setComparator(comparator); comparator.setColumnNumber(DiffViewerFileAssociationsComposite.COLUMN_EXTENSION); this.tableViewer.getTable().setSortColumn( this.tableViewer.getTable().getColumn(DiffViewerFileAssociationsComposite.COLUMN_EXTENSION)); this.tableViewer.getTable().setSortDirection(SWT.UP); this.tableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { ResourceSpecificParameters param = (ResourceSpecificParameters) event.getElement(); param.isEnabled = event.getChecked(); } }); this.tableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { ResourceSpecificParameters param = getSelectedResourceSpecificParameter(); DiffViewerFileAssociationsComposite.this.editFileAssociations(param); } }); //selection listener this.tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { //init parameters control ResourceSpecificParameters param = DiffViewerFileAssociationsComposite.this .getSelectedResourceSpecificParameter(); if (param != null) { String diffParamsStr = param.params.diffParamatersString; diffParamsStr = diffParamsStr != null ? diffParamsStr : ""; //$NON-NLS-1$ DiffViewerFileAssociationsComposite.this.diffParametersText.setText(diffParamsStr); String mergeParamsStr = param.params.mergeParamatersString; mergeParamsStr = mergeParamsStr != null ? mergeParamsStr : ""; //$NON-NLS-1$ DiffViewerFileAssociationsComposite.this.mergeParametersText.setText(mergeParamsStr); } DiffViewerFileAssociationsComposite.this.enableButtons(); } }); }
From source file:org.eclipse.team.svn.ui.composite.ResourceSelectionComposite.java
License:Open Source License
public void createControls() { GridLayout gridLayout = null; GridData data = null;//w w w. j ava 2 s . co m gridLayout = new GridLayout(); gridLayout.marginHeight = gridLayout.marginWidth = 0; this.setLayout(gridLayout); int style = SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER; Table table = new Table(this, this.showCheckBoxesAndButtons ? style | SWT.CHECK : style); table.setHeaderVisible(true); table.setLinesVisible(true); TableLayout layout = new TableLayout(); table.setLayout(layout); this.tableViewer = new CheckboxTableViewer(table); data = new GridData(GridData.FILL_BOTH); this.tableViewer.getTable().setLayoutData(data); // creating a comparator right now to get column listeners ResourcesTableComparator comparator = new ResourcesTableComparator(this.tableViewer); // checkbox TableColumn col = new TableColumn(table, SWT.NONE); col.setResizable(false); layout.addColumnData(new ColumnPixelData(20, false)); // resource name col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ResourceSelectionComposite_Resource); layout.addColumnData(new ColumnWeightData(44, true)); col.addSelectionListener(comparator); // status col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ResourceSelectionComposite_Content); layout.addColumnData(new ColumnWeightData(12, true)); if (this.cacheEnabled) { col.addSelectionListener(comparator); } // propstatus col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ResourceSelectionComposite_Properties); layout.addColumnData(new ColumnWeightData(12, true)); if (this.cacheEnabled) { col.addSelectionListener(comparator); } TableColumn treatAsEdit = null; if (this.allowTreatAsEditsColumn) { treatAsEdit = col = new TableColumn(table, SWT.NONE); col.setResizable(false); col.setText(SVNUIMessages.ResourceSelectionComposite_TreatAsEdit); layout.addColumnData(new ColumnWeightData(12, true)); } // adding comparator and selection default sorting column and direction this.tableViewer.setComparator(comparator); comparator.setColumnNumber(ResourceSelectionComposite.COLUMN_STATUS); this.tableViewer.getTable() .setSortColumn(this.tableViewer.getTable().getColumn(ResourceSelectionComposite.COLUMN_STATUS)); this.tableViewer.getTable().setSortDirection(SWT.UP); this.tableViewer.setLabelProvider(new ITableLabelProvider() { public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == ResourceSelectionComposite.COLUMN_NAME && element instanceof IAdaptable) { IWorkbenchAdapter adapter = (IWorkbenchAdapter) ((IAdaptable) element) .getAdapter(IWorkbenchAdapter.class); if (adapter == null) { return null; } ImageDescriptor descriptor = adapter.getImageDescriptor(element); if (descriptor == null) { return null; } boolean hasWarning = false; boolean hasError = false; try { IResource currentResource = (IResource) element; IMarker[] markers = currentResource.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE); // Errors always with highest priority. So, other severities should be ignored. for (int i = 0; i < markers.length && !hasError; i++) { Integer severity = markers[i] != null ? (Integer) markers[i].getAttribute(IMarker.SEVERITY) : null; if (severity != null) { hasWarning |= severity.intValue() == IMarker.SEVERITY_WARNING; hasError |= severity.intValue() == IMarker.SEVERITY_ERROR; } } } catch (CoreException e) { // Markers are inaccessible: do not decorate resource icon } Image image = ResourceSelectionComposite.this.images.get(descriptor); if (image == null) { ResourceSelectionComposite.this.images.put(descriptor, image = descriptor.createImage()); } OverlayedImageDescriptor desc = null; if (hasError) { desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.ERROR_IMAGE_DESC, new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.LEFT); } else if (hasWarning) { desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.WARNING_IMAGE_DESC, new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.LEFT); } else { desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.EMPTY_IMAGE_DESC, new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.LEFT); } image = this.createImage(desc); if (ResourceSelectionComposite.this.externalResources.contains(element)) { desc = new OverlayedImageDescriptor(image, ResourceSelectionComposite.SWITCHED_IMAGE_DESC, new Point(16, 16), OverlayedImageDescriptor.BOTTOM | OverlayedImageDescriptor.RIGHT); } image = this.createImage(desc); return image; } return null; } protected Image createImage(OverlayedImageDescriptor descriptor) { Image image = ResourceSelectionComposite.this.images.get(descriptor); if (image == null) { ResourceSelectionComposite.this.images.put(descriptor, image = descriptor.createImage()); } return image; } public String getColumnText(Object element, int columnIndex) { if (columnIndex == ResourceSelectionComposite.COLUMN_CHECKBOX) { return ""; //$NON-NLS-1$ } IResource resource = (IResource) element; if (columnIndex == ResourceSelectionComposite.COLUMN_NAME) { String path = resource.getFullPath().toString(); return path.startsWith("/") ? path.substring(1) : path; //$NON-NLS-1$ } ILocalResource local = SVNRemoteStorage.instance().asLocalResource(resource); if (columnIndex == ResourceSelectionComposite.COLUMN_STATUS) { return ResourceSelectionComposite.this.contentStatusAsString(local); } else if (columnIndex == ResourceSelectionComposite.COLUMN_PROPSTATUS) { return ResourceSelectionComposite.this.propertiesStatusAsString(local); } return ""; //$NON-NLS-1$ } public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }); if (this.allowTreatAsEditsColumn) { // the order is important otherwise the common label provider overrides this one TableViewerColumn cbColumn = new TableViewerColumn(this.tableViewer, treatAsEdit); cbColumn.setLabelProvider(new ColumnLabelProvider() { public void update(ViewerCell cell) { IResource resource = (IResource) cell.getElement(); ILocalResource local = SVNRemoteStorage.instance().asLocalResource(resource); if (IStateFilter.SF_PREREPLACEDREPLACED.accept(local)) { TableItem item = (TableItem) cell.getItem(); Button button; if (ResourceSelectionComposite.this.treatAsEditButtons.containsKey(cell.getElement())) { button = ResourceSelectionComposite.this.treatAsEditButtons.get(cell.getElement()); } else { button = new Button((Composite) cell.getViewerRow().getControl(), SWT.CHECK); button.setData(resource); button.setSelection(ResourceSelectionComposite.this.treatAsEdit.contains(resource)); button.setBackground(cell.getBackground()); button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { if (((Button) e.getSource()).getSelection()) { ResourceSelectionComposite.this.treatAsEdit .add((IResource) ((Button) e.getSource()).getData()); } else { ResourceSelectionComposite.this.treatAsEdit .remove((IResource) ((Button) e.getSource()).getData()); } ResourceSelectionComposite.this.getTableViewer() .refresh(((Button) e.getSource()).getData()); } }); ResourceSelectionComposite.this.treatAsEditButtons.put(resource, button); } TableEditor editor = new TableEditor(item.getParent()); editor.grabHorizontal = true; editor.grabVertical = true; editor.setEditor(button, item, cell.getColumnIndex()); editor.layout(); } } }); } this.tableViewer.setContentProvider(new ArrayStructuredContentProvider()); this.tableViewer.setInput(this.resources); for (int i = 0; i < this.resources.length; i++) { this.tableViewer.setChecked(this.resources[i], this.isSelectableResource(this.resources[i])); } this.updateSelectedResources(); this.tableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); final IResource resource = (IResource) selection.getFirstElement(); IResource[] resources = { resource }; if (selection.size() == 1 && FileUtility.checkForResourcesPresence(resources, IStateFilter.SF_ANY_CHANGE, IResource.DEPTH_ZERO)) { UIMonitorUtility.getDisplay().syncExec(new Runnable() { public void run() { ILocalResource local = SVNRemoteStorage.instance().asLocalResource(resource); if (!IStateFilter.SF_INTERNAL_INVALID.accept(local)) { IRepositoryResource remote = local.isCopied() ? SVNUtility.getCopiedFrom(resource) : SVNRemoteStorage.instance().asRepositoryResource(resource); remote.setSelectedRevision( CompareResourcesOperation.getRemoteResourceRevisionForCompare(resource)); UIMonitorUtility.doTaskScheduledDefault( new CompareResourcesOperation(local, remote, true, true)); } } }); } } }); if (!this.showCheckBoxesAndButtons) { return; } this.tableViewer.addSelectionChangedListener(this.selectionListener = new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { ResourceSelectionComposite.this.updateSelectedResources(); ResourceSelectionComposite.this.fireResourcesSelectionChanged( new ResourceSelectionChangedEvent(ResourceSelectionComposite.this.selectedResources)); int selectedNumber = ResourceSelectionComposite.this.selectedResources.length; ResourceSelectionComposite.this.lblSelectedResourcesNumber .setText(ResourceSelectionComposite.this.resourceNumberToString(selectedNumber)); } }); Composite tComposite = new Composite(this, SWT.RIGHT); GridLayout gLayout = new GridLayout(); gLayout.numColumns = 4; gLayout.marginWidth = 0; tComposite.setLayout(gLayout); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); tComposite.setLayoutData(data); Button selectButton = new Button(tComposite, SWT.PUSH); selectButton.setText(SVNUIMessages.Button_SelectAll); data = new GridData(); data.widthHint = DefaultDialog.computeButtonWidth(selectButton); selectButton.setLayoutData(data); SelectionListener listener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ResourceSelectionComposite.this.tableViewer.setAllChecked(true); Object[] elements = ResourceSelectionComposite.this.tableViewer.getCheckedElements(); ResourceSelectionComposite.this.selectionListener.selectionChanged(null); ResourceSelectionComposite.this.fireResourcesSelectionChanged(new ResourceSelectionChangedEvent( Arrays.asList(elements).toArray(new IResource[elements.length]))); } }; selectButton.addSelectionListener(listener); Button deselectButton = new Button(tComposite, SWT.PUSH); deselectButton.setText(SVNUIMessages.Button_ClearSelection); data = new GridData(); data.widthHint = DefaultDialog.computeButtonWidth(deselectButton); deselectButton.setLayoutData(data); listener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { TableItem[] items = ResourceSelectionComposite.this.tableViewer.getTable().getSelection(); for (TableItem item : items) { ResourceSelectionComposite.this.tableViewer.setChecked(item.getData(), false); } ResourceSelectionComposite.this.selectionListener.selectionChanged(null); ResourceSelectionComposite.this .fireResourcesSelectionChanged(new ResourceSelectionChangedEvent(new IResource[0])); } }; deselectButton.addSelectionListener(listener); deselectButton = new Button(tComposite, SWT.PUSH); deselectButton.setText(SVNUIMessages.Button_ClearAll); data = new GridData(); data.widthHint = DefaultDialog.computeButtonWidth(deselectButton); deselectButton.setLayoutData(data); listener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { ResourceSelectionComposite.this.tableViewer.setAllChecked(false); ResourceSelectionComposite.this.selectionListener.selectionChanged(null); ResourceSelectionComposite.this .fireResourcesSelectionChanged(new ResourceSelectionChangedEvent(new IResource[0])); } }; deselectButton.addSelectionListener(listener); Composite lComposite = new Composite(tComposite, SWT.NONE); GridLayout lLayout = new GridLayout(); lLayout.horizontalSpacing = 0; lLayout.marginWidth = 0; lComposite.setLayout(lLayout); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); lComposite.setLayoutData(data); this.lblSelectedResourcesNumber = new Label(lComposite, SWT.RIGHT); this.lblSelectedResourcesNumber.setText(this.resourceNumberToString(this.selectedResources.length)); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); this.lblSelectedResourcesNumber.setLayoutData(data); }
From source file:org.eclipse.team.svn.ui.lock.LockResourceSelectionComposite.java
License:Open Source License
protected void createControls() { GridLayout gridLayout = null; GridData data = null;//from w w w . java 2s . c o m gridLayout = new GridLayout(); gridLayout.marginHeight = gridLayout.marginWidth = 0; this.setLayout(gridLayout); int style = SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.MULTI; if (this.hasBorder) { style |= SWT.BORDER; } Table table = new Table(this, this.showCheckBoxesAndButtons ? style | SWT.CHECK : style); table.setHeaderVisible(true); table.setLinesVisible(true); TableLayout layout = new TableLayout(); table.setLayout(layout); this.tableViewer = new CheckboxTableViewer(table); data = new GridData(GridData.FILL_BOTH); this.tableViewer.getTable().setLayoutData(data); LockResourcesTableComparator tableComparator = new LockResourcesTableComparator(this.tableViewer); if (this.showCheckBoxesAndButtons) { //0.checkbox TableColumn col = new TableColumn(table, SWT.NONE); col.setResizable(false); layout.addColumnData(new ColumnPixelData(20, false)); } else { //0.image TableColumn col = new TableColumn(table, SWT.NONE); col.setText(""); //$NON-NLS-1$ col.setResizable(false); col.setAlignment(SWT.CENTER); layout.addColumnData(new ColumnPixelData(20, false)); } //1.name TableColumn col = new TableColumn(table, SWT.NONE); col.setText(SVNUIMessages.LocksComposite_Name); col.addSelectionListener(tableComparator); layout.addColumnData(new ColumnWeightData(20, true)); //2.path col = new TableColumn(table, SWT.NONE); col.setText(SVNUIMessages.LocksComposite_Path); col.addSelectionListener(tableComparator); layout.addColumnData(new ColumnWeightData(30, true)); //3.state col = new TableColumn(table, SWT.NONE); col.setText(SVNUIMessages.LocksComposite_State); col.addSelectionListener(tableComparator); layout.addColumnData(new ColumnWeightData(20, true)); //4.owner col = new TableColumn(table, SWT.NONE); col.setText(SVNUIMessages.LocksComposite_Owner); col.addSelectionListener(tableComparator); layout.addColumnData(new ColumnWeightData(20, true)); //5.date col = new TableColumn(table, SWT.NONE); col.setText(SVNUIMessages.LocksComposite_CreationDate); col.addSelectionListener(tableComparator); layout.addColumnData(new ColumnWeightData(10, true)); tableComparator.setReversed(false); tableComparator.setColumnNumber(LockResourceSelectionComposite.COLUMN_PATH); this.tableViewer.setComparator(tableComparator); this.tableViewer.getTable() .setSortColumn(this.tableViewer.getTable().getColumn(LockResourceSelectionComposite.COLUMN_PATH)); this.tableViewer.getTable().setSortDirection(SWT.UP); this.tableViewer.setContentProvider(new ArrayStructuredContentProvider()); this.tableViewer.setLabelProvider(new LockResourcesTableLabelProvider(this.showCheckBoxesAndButtons)); this.tableViewer.addSelectionChangedListener(this.selectionListener = new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (LockResourceSelectionComposite.this.showCheckBoxesAndButtons) { LockResourceSelectionComposite.this.updateSelectedResources(); int selectedNumber = LockResourceSelectionComposite.this.selectedResources.length; LockResourceSelectionComposite.this.lblSelectedResourcesNumber .setText(LockResourceSelectionComposite.this.resourceNumberToString(selectedNumber)); } LockResourceSelectionComposite.this.fireResourcesSelectionChanged( new LockResourceSelectionChangedEvent(LockResourceSelectionComposite.this.selectedResources, event != null ? event.getSelection() : null)); } }); if (!this.showCheckBoxesAndButtons) { return; } Composite tComposite = new Composite(this, SWT.RIGHT); GridLayout gLayout = new GridLayout(); gLayout.numColumns = 3; gLayout.marginWidth = 0; tComposite.setLayout(gLayout); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); tComposite.setLayoutData(data); Button selectButton = new Button(tComposite, SWT.PUSH); selectButton.setText(SVNUIMessages.Button_SelectAll); data = new GridData(); data.widthHint = DefaultDialog.computeButtonWidth(selectButton); selectButton.setLayoutData(data); SelectionListener listener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { LockResourceSelectionComposite.this.tableViewer.setAllChecked(true); Object[] elements = LockResourceSelectionComposite.this.tableViewer.getCheckedElements(); LockResourceSelectionComposite.this.selectionListener.selectionChanged(null); LockResourceSelectionComposite.this .fireResourcesSelectionChanged(new LockResourceSelectionChangedEvent( Arrays.asList(elements).toArray(new LockResource[elements.length]), null)); } }; selectButton.addSelectionListener(listener); Button deselectButton = new Button(tComposite, SWT.PUSH); deselectButton.setText(SVNUIMessages.Button_ClearSelection); data = new GridData(); data.widthHint = DefaultDialog.computeButtonWidth(deselectButton); deselectButton.setLayoutData(data); listener = new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { LockResourceSelectionComposite.this.tableViewer.setAllChecked(false); LockResourceSelectionComposite.this.selectionListener.selectionChanged(null); LockResourceSelectionComposite.this.fireResourcesSelectionChanged( new LockResourceSelectionChangedEvent(new LockResource[0], null)); } }; deselectButton.addSelectionListener(listener); Composite lComposite = new Composite(tComposite, SWT.NONE); GridLayout lLayout = new GridLayout(); lLayout.horizontalSpacing = 0; lLayout.marginWidth = 0; lComposite.setLayout(lLayout); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); lComposite.setLayoutData(data); this.lblSelectedResourcesNumber = new Label(lComposite, SWT.RIGHT); this.lblSelectedResourcesNumber.setText(this.resourceNumberToString(this.selectedResources.length)); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); this.lblSelectedResourcesNumber.setLayoutData(data); }
From source file:org.eclipse.team.svn.ui.panel.ListSelectionPanel.java
License:Open Source License
protected CheckboxTableViewer createViewer(Composite parent) { if (!this.multipleColumns) { return CheckboxTableViewer.newCheckList(parent, SWT.BORDER); }/*from w w w.ja v a2 s . com*/ Table table = new Table(parent, SWT.CHECK | SWT.BORDER); table.setLinesVisible(true); GridData data = new GridData(GridData.FILL_BOTH); table.setLayoutData(data); TableLayout layout = new TableLayout(); table.setLayout(layout); // resource name TableColumn col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ListSelectionPanel_Resource); layout.addColumnData(new ColumnWeightData(60, true)); // local presentation col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ListSelectionPanel_LocalPresentation); layout.addColumnData(new ColumnWeightData(40, true)); return new CheckboxTableViewer(table); }
From source file:org.eclipse.team.svn.ui.wizard.checkoutas.ProjectsSelectionPage.java
License:Open Source License
protected CheckboxTableViewer createViewer(Composite parent) { Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.CHECK | SWT.BORDER); TableLayout layout = new TableLayout(); GridData data = new GridData(GridData.FILL_BOTH); table.setLayoutData(data);/*from w ww. j a v a 2s .c o m*/ table.setLayout(layout); table.setLinesVisible(true); table.setHeaderVisible(true); CheckboxTableViewer viewer = new CheckboxTableViewer(table); TableColumn col = new TableColumn(table, SWT.NONE); col.setResizable(false); layout.addColumnData(new ColumnPixelData(20, false)); col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ProjectsSelectionPage_RepositoryURL); layout.addColumnData(new ColumnPixelData(270, true)); col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ProjectsSelectionPage_ProjectName); layout.addColumnData(new ColumnPixelData(150, true)); col = new TableColumn(table, SWT.NONE); col.setResizable(true); col.setText(SVNUIMessages.ProjectsSelectionPage_ProjectType); layout.addColumnData(new ColumnPixelData(100, true)); return viewer; }
From source file:org.eclipse.thym.ui.plugins.internal.PluginRestorePage.java
License:Open Source License
@Override public void createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true).applyTo(composite); Label tableLbl = new Label(composite, SWT.NULL); tableLbl.setText(//from w w w. j av a2s. c o m "Discovered the following Cordova plug-ins on config.xml and will attempt to restore the selected plug-in(s)"); GridDataFactory.generate(tableLbl, 2, 1); final Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true) .minSize(new Point(TABLE_WIDTH, TABLE_HEIGHT)).applyTo(table); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn col = new TableColumn(table, SWT.NONE); col.setWidth(TABLE_WIDTH / 2); col.setText("ID"); col = new TableColumn(table, SWT.NULL); col.setText("Version"); col.setWidth(getMinColumnWidth(table, "Version")); col = new TableColumn(table, SWT.NULL); col.setText("Source"); col.setWidth(getMinColumnWidth(table, "registry")); col = new TableColumn(table, SWT.NULL); col.setText("Info"); col.setWidth(TABLE_WIDTH / 2); restorableList = new CheckboxTableViewer(table); restorableList.setContentProvider(new RestorablePluginsContentProvider()); restorableList.setLabelProvider(new RestorablePluginLabelProvider()); setControl(composite); }
From source file:org.eclipse.ui.activities.ActivityCategoryPreferencePage.java
License:Open Source License
/** * @param parent/*from ww w. java2 s.co m*/ */ private void createCategoryArea(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.marginHeight = layout.marginWidth = 0; layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING); layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING); composite.setLayout(layout); GridData data = new GridData(GridData.FILL_BOTH); data.widthHint = 200; composite.setLayoutData(data); Label label = new Label(composite, SWT.NONE); label.setText(strings.getProperty(CATEGORY_NAME, ActivityMessages.ActivityEnabler_categories) + ':'); Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE); table.addSelectionListener(new SelectionAdapter() { /* * (non-Javadoc) * * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ public void widgetSelected(SelectionEvent e) { if (e.detail == SWT.CHECK) { TableItem tableItem = (TableItem) e.item; ICategory category = (ICategory) tableItem.getData(); if (isLocked(category)) { tableItem.setChecked(true); e.doit = false; // veto the check return; } Set activitySet = WorkbenchActivityHelper.getActivityIdsForCategory(category); if (tableItem.getChecked()) { activitySet.addAll(workingCopy.getEnabledActivityIds()); } else { HashSet newSet = new HashSet(workingCopy.getEnabledActivityIds()); newSet.removeAll(activitySet); activitySet = newSet; } workingCopy.setEnabledActivityIds(activitySet); updateCategoryCheckState(); // even though we're reacting to // a check change we may need to // refresh a greying change. // Just process the whole thing. } } }); categoryViewer = new CheckboxTableViewer(table); categoryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); categoryViewer.setContentProvider(new CategoryContentProvider()); CategoryLabelProvider categoryLabelProvider = new CategoryLabelProvider(true); workingCopy.addActivityManagerListener(categoryLabelProvider); categoryViewer.setLabelProvider(categoryLabelProvider); categoryViewer.setComparator(new ViewerComparator()); categoryViewer.addFilter(new EmptyCategoryFilter()); categoryViewer.addSelectionChangedListener(new ISelectionChangedListener() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) */ public void selectionChanged(SelectionChangedEvent event) { ICategory element = (ICategory) ((IStructuredSelection) event.getSelection()).getFirstElement(); setDetails(element); } }); categoryViewer.setInput(workingCopy.getDefinedCategoryIds()); updateCategoryCheckState(); }
From source file:org.eclipse.ui.ide.examples.projectsnapshot.ProjectRefreshSnapshotExportWizardPage.java
License:Open Source License
/** * Creates the checkbox tree and list for selecting resources. * //from w w w.jav a 2 s .c o m * @param parent * the parent control */ private final void createResourcesGroup(Composite parent) { Composite resourcesGroup = new Composite(parent, SWT.NONE); resourcesGroup.setLayout(new GridLayout()); resourcesGroup.setLayoutData(new GridData(GridData.FILL_BOTH)); resourcesGroup.setFont(parent.getFont()); new Label(resourcesGroup, SWT.NONE).setText(Messages.ProjectRefreshSnapshotExportWizardPage_selectProjects); Table table = new Table(resourcesGroup, SWT.CHECK | SWT.BORDER); table.setLayoutData(new GridData(GridData.FILL_BOTH)); fProjectViewer = new CheckboxTableViewer(table); fProjectViewer.setContentProvider(new IStructuredContentProvider() { List fContents; public Object[] getElements(Object input) { if (fContents != null && fContents == input) return fContents.toArray(); return new Object[0]; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { if (newInput instanceof List) fContents = (List) newInput; else fContents = null; // we use a fixed set. } public void dispose() { } }); fProjectViewer.setLabelProvider(new WorkbenchLabelProvider()); ICheckStateListener checkListener = new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { updateWidgetEnablements(); } }; fProjectViewer.addCheckStateListener(checkListener); // top level group Composite buttonComposite = new Composite(resourcesGroup, SWT.NONE); buttonComposite.setFont(parent.getFont()); GridLayout layout = new GridLayout(2, true); layout.marginHeight = layout.marginWidth = 0; buttonComposite.setLayout(layout); buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL)); Button selectButton = createButton(buttonComposite, IDialogConstants.SELECT_ALL_ID, Messages.ProjectRefreshSnapshotExportWizardPage_selectAll, false); SelectionAdapter listener = new SelectionAdapter() { // @Override public void widgetSelected(SelectionEvent e) { fProjectViewer.setAllChecked(true); updateWidgetEnablements(); } }; selectButton.addSelectionListener(listener); Button deselectButton = createButton(buttonComposite, IDialogConstants.DESELECT_ALL_ID, Messages.ProjectRefreshSnapshotExportWizardPage_deselectAll, false); listener = new SelectionAdapter() { // @Override public void widgetSelected(SelectionEvent e) { fProjectViewer.setAllChecked(false); updateWidgetEnablements(); } }; deselectButton.addSelectionListener(listener); initProjects(); }
From source file:org.eclipse.ui.internal.browser.WebBrowserPreferencePage.java
License:Open Source License
/** * Create the preference options./*from w w w . j a v a 2 s . c o m*/ * * @param parent * org.eclipse.swt.widgets.Composite * @return org.eclipse.swt.widgets.Control */ protected Control createContents(Composite parent) { initializeDialogUnits(parent); PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, ContextIds.PREF_BROWSER); Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.horizontalSpacing = convertHorizontalDLUsToPixels(4); layout.verticalSpacing = convertVerticalDLUsToPixels(3); layout.marginWidth = 0; layout.marginHeight = 0; composite.setLayout(layout); GridData data = new GridData(SWT.FILL, SWT.FILL, true, false); composite.setLayoutData(data); Label label = new Label(composite, SWT.WRAP); label.setText(Messages.preferenceWebBrowserDescription); data = new GridData(SWT.FILL, SWT.NONE, false, false); data.horizontalSpan = 2; data.widthHint = 275; label.setLayoutData(data); internal = new Button(composite, SWT.RADIO); internal.setText(Messages.prefInternalBrowser); data = new GridData(SWT.FILL, SWT.NONE, true, false); data.horizontalSpan = 2; internal.setLayoutData(data); if (!WebBrowserUtil.canUseInternalWebBrowser()) internal.setEnabled(false); external = new Button(composite, SWT.RADIO); external.setText(Messages.prefExternalBrowser); data = new GridData(SWT.FILL, SWT.NONE, true, false); data.horizontalSpan = 2; external.setLayoutData(data); label = new Label(composite, SWT.NONE); label.setText(Messages.browserList); data = new GridData(SWT.FILL, SWT.CENTER, true, false); data.horizontalSpan = 2; label.setLayoutData(data); table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION); data = new GridData(SWT.FILL, SWT.FILL, true, true); table.setLayoutData(data); table.setHeaderVisible(false); table.setLinesVisible(false); TableLayout tableLayout = new TableLayout(); new TableColumn(table, SWT.NONE); tableLayout.addColumnData(new ColumnWeightData(100)); table.setLayout(tableLayout); tableViewer = new CheckboxTableViewer(table); tableViewer.setContentProvider(new BrowserContentProvider()); tableViewer.setLabelProvider(new BrowserTableLabelProvider()); tableViewer.setInput("root"); //$NON-NLS-1$ // uncheck any other elements that might be checked and leave only the // element checked to remain checked since one can only chose one // brower at a time to be current. tableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent e) { checkNewDefaultBrowser(e.getElement()); checkedBrowser = (IBrowserDescriptor) e.getElement(); // if no other browsers are checked, don't allow the single one // currently checked to become unchecked, and lose a current // browser. That is, don't permit unchecking if no other item // is checked which is supposed to be the case. Object[] obj = tableViewer.getCheckedElements(); if (obj.length == 0) tableViewer.setChecked(e.getElement(), true); } }); // set a default, checked browser based on the current browser. If there // is not a current browser, but the first item exists, use that instead. // This will work currently until workbench shutdown, because current // browser is not yet persisted. checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser(); if (checkedBrowser != null) tableViewer.setChecked(checkedBrowser, true); else { Object obj = tableViewer.getElementAt(0); if (obj != null) tableViewer.setChecked(obj, true); } tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection sele = ((IStructuredSelection) tableViewer.getSelection()); boolean sel = sele.getFirstElement() != null && !(sele.getFirstElement() instanceof SystemBrowserDescriptor); remove.setEnabled(sel); edit.setEnabled(sel); } }); tableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection()); Object firstElem = sel.getFirstElement(); if (firstElem != null && !(firstElem instanceof SystemBrowserDescriptor)) { IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement(); IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy(); BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell(), wc); if (dialog.open() != Window.CANCEL) { try { tableViewer.refresh(wc.save()); } catch (Exception ex) { // ignore } } } } }); table.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.character == SWT.DEL) { IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection()); if (sel.getFirstElement() != null) { IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement(); try { browser2.delete(); tableViewer.remove(browser2); // need here to ensure that if the item deleted was // checked, ie. was // the current browser, that the new current browser // will be the first in the // list, typically, the internal browser, which // cannot be // deleted, and be current BrowserManager manager = BrowserManager.getInstance(); if (browser2 == checkedBrowser) { if (manager.browsers.size() > 0) { checkedBrowser = manager.browsers.get(0); tableViewer.setChecked(checkedBrowser, true); } } } catch (Exception ex) { // ignore } } } } public void keyReleased(KeyEvent e) { // ignore } }); Composite buttonComp = new Composite(composite, SWT.NONE); layout = new GridLayout(); layout.horizontalSpacing = 0; layout.verticalSpacing = convertVerticalDLUsToPixels(3); layout.marginWidth = 0; layout.marginHeight = 0; layout.numColumns = 1; buttonComp.setLayout(layout); data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL); buttonComp.setLayoutData(data); final Button add = SWTUtil.createButton(buttonComp, Messages.add); add.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell()); if (dialog.open() == Window.CANCEL) return; tableViewer.refresh(); if (checkedBrowser != null) tableViewer.setChecked(checkedBrowser, true); } }); edit = SWTUtil.createButton(buttonComp, Messages.edit); edit.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection()); IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement(); IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy(); BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(getShell(), wc); if (dialog.open() != Window.CANCEL) { try { tableViewer.refresh(wc.save()); } catch (Exception ex) { // ignore } } } }); remove = SWTUtil.createButton(buttonComp, Messages.remove); remove.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = ((IStructuredSelection) tableViewer.getSelection()); IBrowserDescriptor browser2 = (IBrowserDescriptor) sel.getFirstElement(); try { browser2.delete(); tableViewer.remove(browser2); // need here to ensure that if the item deleted was checked, // ie. was // the current browser, that the new current browser will be // the first in the // list, typically, the internal browser, which cannot be // deleted, and be current BrowserManager manager = BrowserManager.getInstance(); if (browser2 == checkedBrowser) { if (manager.browsers.size() > 0) { checkedBrowser = manager.browsers.get(0); tableViewer.setChecked(checkedBrowser, true); } } } catch (Exception ex) { // ignore } } }); search = SWTUtil.createButton(buttonComp, Messages.search); data = (GridData) search.getLayoutData(); data.verticalIndent = 9; search.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { final List<IBrowserDescriptorWorkingCopy> foundBrowsers = new ArrayList<IBrowserDescriptorWorkingCopy>(); final List<String> existingPaths = WebBrowserUtil.getExternalBrowserPaths(); // select a target directory for the search DirectoryDialog dialog = new DirectoryDialog(getShell()); dialog.setMessage(Messages.selectDirectory); dialog.setText(Messages.directoryDialogTitle); String path = dialog.open(); if (path == null) return; final File rootDir = new File(path); ProgressMonitorDialog pm = new ProgressMonitorDialog(getShell()); IRunnableWithProgress r = new IRunnableWithProgress() { public void run(IProgressMonitor monitor) { monitor.beginTask(Messages.searchingTaskName, IProgressMonitor.UNKNOWN); search(rootDir, existingPaths, foundBrowsers, new HashSet<String>(), monitor); monitor.done(); } }; try { pm.run(true, true, r); } catch (InvocationTargetException ex) { Trace.trace(Trace.SEVERE, "Invocation Exception occured running monitor: " //$NON-NLS-1$ + ex); } catch (InterruptedException ex) { Trace.trace(Trace.SEVERE, "Interrupted exception occured running monitor: " //$NON-NLS-1$ + ex); return; } if (pm.getProgressMonitor().isCanceled()) return; List<IBrowserDescriptorWorkingCopy> browsersToCreate = foundBrowsers; if (browsersToCreate.isEmpty()) { // no browsers found WebBrowserUtil.openMessage(Messages.searchingNoneFound); return; } Iterator<IBrowserDescriptorWorkingCopy> iterator = browsersToCreate.iterator(); while (iterator.hasNext()) { IBrowserDescriptorWorkingCopy browser2 = iterator.next(); browser2.save(); } tableViewer.refresh(); if (checkedBrowser != null) tableViewer.setChecked(checkedBrowser, true); } }); tableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent e) { checkNewDefaultBrowser(e.getElement()); checkedBrowser = (IBrowserDescriptor) e.getElement(); } }); /*external.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { boolean sel = !tableViewer.getSelection().isEmpty(); edit.setEnabled(sel); remove.setEnabled(sel); } public void widgetDefaultSelected(SelectionEvent e) { // ignore } });*/ internal.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.INTERNAL); external.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.EXTERNAL); //boolean sel = !tableViewer.getSelection().isEmpty(); IStructuredSelection sele = ((IStructuredSelection) tableViewer.getSelection()); boolean sel = sele.getFirstElement() != null && !(sele.getFirstElement() instanceof SystemBrowserDescriptor); edit.setEnabled(sel); remove.setEnabled(sel); Dialog.applyDialogFont(composite); return composite; }