List of usage examples for org.eclipse.jface.viewers ViewerCell setImage
public void setImage(Image image)
From source file:org.eclipse.cdt.internal.ui.search.CSearchListLabelProvider.java
License:Open Source License
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); switch (fColumnIndex) { case CSearchViewPage.LOCATION_COLUMN_INDEX: if (element instanceof LineSearchElement) { LineSearchElement lineElement = (LineSearchElement) element; String location = IndexLocationFactory.getPath(lineElement.getLocation()).toString(); int lineNumber = lineElement.getLineNumber(); cell.setText(/*from ww w .j av a 2 s . c o m*/ Messages.format(CSearchMessages.CSearchResultCollector_location, location, lineNumber)); cell.setImage(CDTSharedImages.getImage(CDTSharedImages.IMG_OBJS_SEARCH_LINE)); } break; case CSearchViewPage.DEFINITION_COLUMN_INDEX: if (element instanceof LineSearchElement) { LineSearchElement lineElement = (LineSearchElement) element; ICElement enclosingElement = lineElement.getMatches()[0].getEnclosingElement(); if (fPage.isShowEnclosingDefinitions() && enclosingElement != null) { cell.setText(enclosingElement.getElementName()); cell.setImage(getImage(element)); } else { cell.setText(""); //$NON-NLS-1$ } } break; case CSearchViewPage.MATCH_COLUMN_INDEX: super.update(cell); cell.setImage(null); break; default: cell.setText(""); //$NON-NLS-1$ break; } }
From source file:org.eclipse.cdt.internal.ui.search.PDOMSearchListLabelProvider.java
License:Open Source License
@Override public void update(ViewerCell cell) { Object element = cell.getElement(); switch (fColumnIndex) { case PDOMSearchViewPage.LOCATION_COLUMN_INDEX: if (element instanceof LineSearchElement) { LineSearchElement lineElement = (LineSearchElement) element; String location = IndexLocationFactory.getPath(lineElement.getLocation()).toString(); int lineNumber = lineElement.getLineNumber(); cell.setText(/*w w w .j a va2s . com*/ Messages.format(CSearchMessages.CSearchResultCollector_location, location, lineNumber)); cell.setImage(CDTSharedImages.getImage(CDTSharedImages.IMG_OBJS_SEARCH_LINE)); } break; case PDOMSearchViewPage.DEFINITION_COLUMN_INDEX: if (element instanceof LineSearchElement) { LineSearchElement lineElement = (LineSearchElement) element; ICElement enclosingElement = lineElement.getMatches()[0].getEnclosingElement(); if (fPage.isShowEnclosingDefinitions() && enclosingElement != null) { cell.setText(enclosingElement.getElementName()); cell.setImage(getImage(element)); } else { cell.setText(""); //$NON-NLS-1$ } } break; case PDOMSearchViewPage.MATCH_COLUMN_INDEX: super.update(cell); cell.setImage(null); break; default: cell.setText(""); //$NON-NLS-1$ break; } }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.AbstractIconDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); getShell().setText(getShellTitle()); setTitle(getDialogTitle());//w w w.java 2 s.co m setMessage(getDialogMessage()); Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); l.setText(Messages.AbstractIconDialog_IconName); final Text t = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(container, SWT.NONE); viewer = new TableViewer(container); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file = (IFile) cell.getElement(); StyledString styledString = new StyledString(file.getProjectRelativePath().toString(), null); Image img = icons.get(file); if (img == null) { InputStream in = null; try { in = file.getContents(); img = new Image(cell.getControl().getDisplay(), in); icons.put(file, img); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } String bundle = getBundle(file); if (bundle != null) { styledString.append(" - " + bundle, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } cell.setImage(img); cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); final WritableList list = new WritableList(); viewer.setInput(list); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { okPressed(); } }); t.addModifyListener(new ModifyListener() { private IconMatchCallback callback; private Timer timer = new Timer(true); private TimerTask task; public void modifyText(ModifyEvent e) { if (callback != null) { callback.cancel = true; } if (task != null) { task.cancel(); } list.clear(); clearImages(); callback = new IconMatchCallback(list); task = new SearchThread(callback, t.getText(), project); timer.schedule(task, 500); } }); getShell().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { clearImages(); } }); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.AbstractIconDialogWithHardcodedScope.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); getShell().setText(getShellTitle()); setTitle(getDialogTitle());//from www .ja v a 2 s .co m setMessage(getDialogMessage()); String bundleFilter = (String) context.get("bundle"); if (E.notEmpty(bundleFilter)) { setMessage("Filtering by bundle " + bundleFilter); //$NON-NLS-1$ } Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Composite compOptions = new Composite(container, SWT.NONE); compOptions.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); compOptions.setLayout(new RowLayout()); if (E.isEmpty(bundleFilter)) { Button btnProject = new Button(compOptions, SWT.RADIO); btnProject.setText("Project"); btnProject.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { searchScope = ResourceSearchScope.PROJECT; textSearch.notifyListeners(SWT.Modify, new Event()); } }); btnProject.setSelection(true); Button btnWorkspace = new Button(compOptions, SWT.RADIO); btnWorkspace.setText("Workspace"); btnWorkspace.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { searchScope = ResourceSearchScope.WORKSPACE; textSearch.notifyListeners(SWT.Modify, new Event()); } }); btnWorkspace.setSelection(searchScope == ResourceSearchScope.WORKSPACE); btnProject.setSelection(searchScope == ResourceSearchScope.PROJECT); } else { searchScope = ResourceSearchScope.WORKSPACE; } Label l = new Label(container, SWT.NONE); l.setText(Messages.AbstractIconDialog_IconName); textSearch = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); textSearch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(container, SWT.NONE); viewer = new TableViewer(container, SWT.FULL_SELECTION | SWT.BORDER); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file = (IFile) cell.getElement(); StyledString styledString = new StyledString(file.getProjectRelativePath().toString(), null); Image img = icons.get(file); if (img == null) { InputStream in = null; try { in = file.getContents(); img = new Image(cell.getControl().getDisplay(), in); icons.put(file, img); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } String bundle = getBundle(file); if (bundle != null) { styledString.append(" - " + bundle, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } cell.setImage(img); cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); final WritableList list = new WritableList(); viewer.setInput(list); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); textSearch.addModifyListener(new ModifyListener() { private IconMatchCallback callback; private Timer timer = new Timer(true); private TimerTask task; @Override public void modifyText(ModifyEvent e) { if (callback != null) { callback.cancel = true; } if (task != null) { task.cancel(); } list.clear(); clearImages(); callback = new IconMatchCallback(list); task = new SearchThread(callback, textSearch.getText(), project, context, searchScope); timer.schedule(task, 500); } }); getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { clearImages(); } }); textSearch.notifyListeners(SWT.Modify, new Event()); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.AbstractIconDialogWithScopeAndFilter.java
License:Open Source License
@Override protected void rebuildViewer() { super.rebuildViewer(); getViewer().getTable().setHeaderVisible(true); ((GridData) getViewer().getTable().getLayoutData()).minimumHeight = 100; TableViewerColumn colIcon = new TableViewerColumn(getViewer(), SWT.NONE); colIcon.getColumn().setText(Messages.AbstractIconDialogWithScopeAndFilter_icon); TableViewerColumn colText = new TableViewerColumn(getViewer(), SWT.NONE); colText.getColumn().setText(Messages.AbstractIconDialogWithScopeAndFilter_details); // resize the row height using a MeasureItem listener getViewer().getTable().addListener(SWT.MeasureItem, new Listener() { @Override/*w w w .java 2 s . c om*/ public void handleEvent(Event event) { // height cannot be per row so simply set event.height = maxDisplayedImageSize; } }); colIcon.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file; if (cell.getElement() instanceof ContributionData) { file = new ContributionDataFile((ContributionData) cell.getElement()); } else if (cell.getElement() instanceof Entry) { file = ((Entry) cell.getElement()).file; } else { file = (IFile) cell.getElement(); } Image img = icons.get(file); if (img == null) { InputStream in = null; try { in = file.getContents(); img = new Image(cell.getControl().getDisplay(), in); icons.put(file, img); } catch (Exception e) { // e.printStackTrace(); return; } finally { if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block // e.printStackTrace(); } } } } // scale image if larger then max height // also remember max width for column resizing if (img != null) { double scale1 = ((double) maxDisplayedImageSize) / img.getImageData().height; double scale2 = ((double) maxDisplayedImageSize) / img.getImageData().width; if (scale2 < scale1) { scale1 = scale2; } if (scale1 < 1) { int width = (int) (img.getImageData().width * scale1); if (width == 0) width = 1; int height = (int) (img.getImageData().height * scale1); if (height == 0) height = 1; Image img2 = new Image(img.getDevice(), img.getImageData().scaledTo(width, height)); img.dispose(); img = img2; icons.put(file, img); } int width = AbstractIconDialogWithScopeAndFilter.this.getViewer().getTable().getColumn(0) .getWidth(); if (img.getImageData().width > width) { AbstractIconDialogWithScopeAndFilter.this.getViewer().getTable().getColumn(0) .setWidth(img.getImageData().width); } int height = img.getImageData().height; if (height > maxImageHeight) { maxImageHeight = height; } } cell.setImage(img); } }); colIcon.getColumn().setWidth(30); colText.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file; String installLocation = null; if (cell.getElement() instanceof ContributionData) { ContributionData contributionData = (ContributionData) cell.getElement(); file = new ContributionDataFile(contributionData); installLocation = contributionData.installLocation; } else if (cell.getElement() instanceof Entry) { file = ((Entry) cell.getElement()).file; installLocation = ((Entry) cell.getElement()).installLocation; } else { file = (IFile) cell.getElement(); } StyledString styledString = new StyledString(file.getProjectRelativePath().toString(), null); String bundle = FilteredContributionDialog.getBundle(file); if (bundle != null) { styledString.append(" - " + bundle, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } else if (installLocation != null) { styledString.append(" - " + installLocation, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); colText.getColumn().setWidth(400); getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { clearImages(); } }); }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FilteredContributionDialog.java
License:Open Source License
protected void rebuildViewer() { viewerList = new WritableList(); TableViewer oldViewer = viewer;/* w w w .j a va 2 s .co m*/ viewer = new TableViewer(compOptions, SWT.FULL_SELECTION | SWT.BORDER); if (oldViewer != null) { viewer.getTable().moveAbove(oldViewer.getTable()); oldViewer.getTable().dispose(); } GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { ContributionData data; if (cell.getElement() instanceof ContributionData) { data = (ContributionData) cell.getElement(); } else if (cell.getElement() instanceof ContributionDataFile) { data = ((ContributionDataFile) cell.getElement()).getContributionData(); } else { return; } StyledString styledString = new StyledString(); if (data.className != null) { styledString.append(data.className, null); } if (data.bundleName != null) { styledString.append(" - " + data.bundleName, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } else if (data.installLocation != null) { styledString.append(" - " + data.installLocation, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } if (data.sourceType != null) { styledString.append(" - ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ styledString.append(data.sourceType + "", StyledString.COUNTER_STYLER); //$NON-NLS-1$ } if (data.iconPath == null) { cell.setImage(contributionTypeImage); } cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); viewer.setInput(viewerList); if (oldViewer != null) { getViewer().getTable().getParent().layout(true, true); getViewer().getTable().getParent().redraw(); } }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FindImportElementDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); final Image titleImage = new Image(parent.getDisplay(), getClass().getClassLoader().getResourceAsStream("/icons/full/wizban/import_wiz.png")); //$NON-NLS-1$ setTitleImage(titleImage);/*from w ww . java 2 s. co m*/ getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { titleImage.dispose(); } }); getShell().setText(Messages.FindImportElementDialog_ShellTitle); setTitle(Messages.FindImportElementDialog_Title); setMessage(Messages.FindImportElementDialog_Message); Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); l.setText(Messages.FindImportElementDialog_Search); final Text searchText = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); GridData gd = new GridData(GridData.FILL_HORIZONTAL); searchText.setLayoutData(gd); l = new Label(container, SWT.PUSH); viewer = new TableViewer(container); gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 200; viewer.getControl().setLayoutData(gd); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { EObject o = (EObject) cell.getElement(); cell.setImage(editor.getImage(o, searchText.getDisplay())); MApplicationElement appEl = (MApplicationElement) o; StyledString styledString = new StyledString(editor.getLabel(o) + " (" //$NON-NLS-1$ + (appEl.getElementId() == null ? "<" + Messages.FindImportElementDialog_noId + ">" //$NON-NLS-1$//$NON-NLS-2$ : appEl.getElementId()) + ")", null); //$NON-NLS-1$ String detailLabel = editor.getDetailLabel(o); if (detailLabel != null && !detailLabel.equals(appEl.getElementId())) { styledString.append(" - " + detailLabel, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } styledString.append(" - " + o.eResource().getURI(), StyledString.COUNTER_STYLER); //$NON-NLS-1$ cell.setStyleRanges(styledString.getStyleRanges()); cell.setText(styledString.getString()); } }); viewer.setContentProvider(new ObservableListContentProvider()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); final WritableList list = new WritableList(); viewer.setInput(list); final ClassContributionCollector collector = getCollector(); searchText.addModifyListener(new ModifyListener() { private ModelResultHandlerImpl currentResultHandler; @Override public void modifyText(ModifyEvent e) { if (currentResultHandler != null) { currentResultHandler.cancled = true; } list.clear(); Filter filter = new Filter(element.eClass(), searchText.getText()); currentResultHandler = new ModelResultHandlerImpl(list, filter, editor, element.eResource()); collector.findModelElements(filter, currentResultHandler); } }); Button button = new Button(container, SWT.PUSH); button.setText(Messages.FindImportElementDialog_ClearCache); button.setLayoutData(new GridData(GridData.END, GridData.CENTER, true, false, 2, 1)); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { collector.clearModelCache(); } }); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FindParentReferenceElementDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); final Image titleImage = new Image(parent.getDisplay(), getClass().getClassLoader().getResourceAsStream("/icons/full/wizban/import_wiz.png")); //$NON-NLS-1$ setTitleImage(titleImage);/* w w w. j a va 2 s . c o m*/ getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { titleImage.dispose(); } }); getShell().setText(Messages.FindParentReferenceElementDialog_ShellTitle); setTitle(Messages.FindParentReferenceElementDialog_Title); setMessage(Messages.FindParentReferenceElementDialog_Message); Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); l.setText(Messages.FindParentReferenceElementDialog_ContainerType); eClassViewer = new ComboViewer(container); eClassViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((EClass) element).getName(); } }); eClassViewer.setContentProvider(new ArrayContentProvider()); List<EClass> eClassList = new ArrayList<EClass>(); for (InternalPackage p : Util.loadPackages()) { eClassList.addAll(p.getAllClasses()); } eClassViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { EClass ec1 = (EClass) e1; EClass ec2 = (EClass) e2; return ec1.getName().compareTo(ec2.getName()); } }); eClassViewer.setInput(eClassList); eClassViewer.getCombo().select(0); eClassViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); eClassViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { updateSearch(); } }); l = new Label(container, SWT.NONE); l.setText(Messages.FindParentReferenceElementDialog_Search); searchText = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); GridData gd = new GridData(GridData.FILL_HORIZONTAL); searchText.setLayoutData(gd); l = new Label(container, SWT.PUSH); viewer = new TableViewer(container); gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 200; viewer.getControl().setLayoutData(gd); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { EObject o = (EObject) cell.getElement(); AbstractComponentEditor editor = FindParentReferenceElementDialog.this.editor.getEditor() .getEditor(o.eClass()); cell.setImage(editor.getImage(o, searchText.getDisplay())); MApplicationElement appEl = (MApplicationElement) o; StyledString styledString = new StyledString(editor.getLabel(o) + " (" //$NON-NLS-1$ + (appEl.getElementId() == null ? "<" + Messages.FindParentReferenceElementDialog_NoId + ">" //$NON-NLS-1$//$NON-NLS-2$ : appEl.getElementId()) + ")", null); //$NON-NLS-1$ String detailLabel = editor.getDetailLabel(o); if (detailLabel != null && !detailLabel.equals(appEl.getElementId())) { styledString.append(" - " + detailLabel, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } styledString.append(" - " + o.eResource().getURI(), StyledString.COUNTER_STYLER); //$NON-NLS-1$ cell.setStyleRanges(styledString.getStyleRanges()); cell.setText(styledString.getString()); } }); viewer.setContentProvider(new ObservableListContentProvider()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); list = new WritableList(); viewer.setInput(list); final ClassContributionCollector collector = getCollector(); searchText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { updateSearch(); } }); Button button = new Button(container, SWT.PUSH); button.setText(Messages.FindParentReferenceElementDialog_ClearCache); button.setLayoutData(new GridData(GridData.END, GridData.CENTER, true, false, 2, 1)); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { collector.clearModelCache(); } }); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.ComponentLabelProvider.java
License:Open Source License
@Override public void update(final ViewerCell cell) { if (cell.getElement() instanceof EObject) { EObject o = (EObject) cell.getElement(); AbstractComponentEditor elementEditor = editor.getEditor(o.eClass()); if (elementEditor != null) { String label = elementEditor.getLabel(o); String detailText = elementEditor.getDetailLabel(o); Styler styler = null;//from ww w.j a v a2 s .co m if (o instanceof MUIElement) { if (!((MUIElement) o).isVisible() && !((MUIElement) o).isToBeRendered()) { label += "<" + Messages.ComponentLabelProvider_invisible + "/" //$NON-NLS-1$//$NON-NLS-2$ + Messages.ComponentLabelProvider_notrendered + ">"; //$NON-NLS-1$ styler = BOTH_STYLER; } else if (!((MUIElement) o).isVisible()) { label += "<" + Messages.ComponentLabelProvider_invisible + ">"; //$NON-NLS-1$//$NON-NLS-2$ styler = NOT_VISIBLE_STYLER; } else if (!((MUIElement) o).isToBeRendered()) { label += "<" + Messages.ComponentLabelProvider_notrendered + ">"; //$NON-NLS-1$ //$NON-NLS-2$ styler = NOT_RENDERED_STYLER; } } if (detailText == null) { StyledString styledString = new StyledString(label, styler); cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } else { StyledString styledString = new StyledString(label, styler); styledString.append(" - " + detailText, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } cell.setImage(elementEditor.getImage(o, cell.getControl().getDisplay())); } else { cell.setText(cell.getElement().toString()); } } else if (cell.getElement() instanceof VirtualEntry<?>) { String s = cell.getElement().toString(); if (font == null) { FontData[] data = cell.getControl().getFont().getFontData(); font = new Font(cell.getControl().getDisplay(), new FontData(data[0].getName(), data[0].getHeight(), SWT.ITALIC)); } cell.setFont(font); cell.setText(s); } else { cell.setText(cell.getElement().toString()); } }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.dialogs.FindContributionDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); // TODO param getShell().setText(Messages.ContributionClassDialog_ShellTitle); if ("show-bundles".equals(mode)) { //$NON-NLS-1$ // TODO create icon } else if ("show-packages".equals(mode)) { //$NON-NLS-1$ // TODO create icon } else if ("show-icons".equals(mode)) { //$NON-NLS-1$ // TODO create icon } else {//from ww w .j av a2 s. c o m titleImage = new Image(comp.getDisplay(), getClass().getClassLoader().getResourceAsStream("/icons/full/wizban/newclass_wiz.png")); //$NON-NLS-1$ setTitleImage(titleImage); } getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { javaClassImage.dispose(); if (titleImage != null) { titleImage.dispose(); } } }); javaClassImage = new Image(getShell().getDisplay(), getClass().getClassLoader().getResourceAsStream("/icons/full/obj16/class_obj.gif")); //$NON-NLS-1$ Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); // TODO param l.setText(Messages.ContributionClassDialog_Label_Classname); final Text t = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // TODO param t.setMessage(Messages.ContributionClassDialog_FilterText_Message); new Label(container, SWT.NONE); viewer = new TableViewer(container, SWT.FULL_SELECTION | SWT.BORDER); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { ContributionData data = (ContributionData) cell.getElement(); StyledString styledString = new StyledString(); if ("show-bundles".equals(mode)) { //$NON-NLS-1$ styledString.append(data.bundleName, StyledString.DECORATIONS_STYLER); } else if ("show-packages".equals(mode)) { //$NON-NLS-1$ int dot = data.className.lastIndexOf("."); //$NON-NLS-1$ String packageName; if (dot >= 0) { packageName = data.className.substring(0, dot); } else { packageName = ""; //$NON-NLS-1$ } styledString.append(packageName, StyledString.DECORATIONS_STYLER); } else if ("show-icons".equals(mode)) { //$NON-NLS-1$ styledString.append(data.iconPath, null); if (data.bundleName != null) { styledString.append(" - " + data.bundleName, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } if (data.sourceType != null) { styledString.append(" - ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ styledString.append(data.sourceType + "", StyledString.COUNTER_STYLER); //$NON-NLS-1$ } if (data.iconPath == null) { cell.setImage(javaClassImage); } } else { styledString.append(data.className, null); if (data.bundleName != null) { styledString.append(" - " + data.bundleName, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } if (data.sourceType != null) { styledString.append(" - ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ styledString.append(data.sourceType + "", StyledString.COUNTER_STYLER); //$NON-NLS-1$ } if (data.iconPath == null) { cell.setImage(javaClassImage); } } cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); final WritableList list = new WritableList(); viewer.setInput(list); final ClassContributionCollector collector = getCollector(); t.addModifyListener(new ModifyListener() { private ContributionResultHandlerImpl currentResultHandler; @Override public void modifyText(ModifyEvent e) { if (currentResultHandler != null) { currentResultHandler.cancled = true; } list.clear(); currentResultHandler = new ContributionResultHandlerImpl(list); Filter filter = new Filter(project, t.getText()); collector.findContributions(filter, currentResultHandler); t.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.ARROW_DOWN) { if (viewer.getTable().getItemCount() > 0) { viewer.getTable().setFocus(); viewer.getTable().select(0); } } } }); viewer.getTable().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { super.keyPressed(e); if ((e.keyCode == SWT.ARROW_UP) && (viewer.getTable().getSelectionIndex() == 0)) { t.setFocus(); } } }); } }); viewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { ContributionData cd = (ContributionData) element; if ("show-bundles".equals(mode)) { //$NON-NLS-1$ // only add first item from each bundle boolean found = false; for (Iterator it = list.iterator(); it.hasNext();) { ContributionData cd2 = (ContributionData) it.next(); if (cd2.bundleName == null || cd2.bundleName.equals(cd.bundleName)) { if (found == false) { found = true; } else { return false; } } } return true; } else if ("show-packages".equals(mode)) { //$NON-NLS-1$ if (bundleFilter != null && bundleFilter.isEmpty() == false) { if (!bundleFilter.equals(cd.bundleName)) { return false; } } String packageName; int last = cd.className.lastIndexOf("."); //$NON-NLS-1$ if (last >= 0) { packageName = cd.className.substring(0, last); } else { packageName = ""; //$NON-NLS-1$ } // only add first item from each package boolean found = false; for (Iterator it = list.iterator(); it.hasNext();) { boolean matches = false; ContributionData cd2 = (ContributionData) it.next(); if (packageName.isEmpty() && cd2.className.contains(".") == false) { //$NON-NLS-1$ matches = true; } else if (cd2.className.startsWith(packageName + ".")) { //$NON-NLS-1$ matches = true; } if (matches) { if (found == false) { found = true; } else { return false; } } } return true; } else if ("show-icons".equals(mode)) { //$NON-NLS-1$ if (cd.iconPath == null) { return false; } if (bundleFilter != null && bundleFilter.isEmpty() == false) { if (!bundleFilter.equals(cd.bundleName)) { return false; } } if (packageFilter != null && packageFilter.isEmpty() == false) { if (!cd.className.startsWith(packageFilter + ".")) { //$NON-NLS-1$ return false; } } return true; } else { if (bundleFilter != null && bundleFilter.isEmpty() == false) { if (!bundleFilter.equals(cd.bundleName)) { return false; } } if (packageFilter != null && packageFilter.isEmpty() == false) { if (!cd.className.startsWith(packageFilter + ".")) { //$NON-NLS-1$ return false; } } return true; } } } }); StringBuilder sbFind = new StringBuilder(); if ("show-bundles".equals(mode)) { //$NON-NLS-1$ setTitle( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findBundle); sbFind.append( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findBundle); } else if ("show-packages".equals(mode)) { //$NON-NLS-1$ setTitle( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findPackage); sbFind.append( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findPackage); if (E.notEmpty(bundleFilter)) { sbFind.append(" " //$NON-NLS-1$ + org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_inBundle + " " + bundleFilter); //$NON-NLS-3$ } } else if ("show-icons".equals(mode)) { //$NON-NLS-1$ setTitle( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findIcon); sbFind.append( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findIcon); if (E.notEmpty(bundleFilter)) { sbFind.append(" " //$NON-NLS-1$ + org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_inBundle + " " + bundleFilter); //$NON-NLS-3$ } if (E.notEmpty(packageFilter)) { sbFind.append(" " //$NON-NLS-1$ + org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_inPackage + " " + packageFilter); //$NON-NLS-3$ } } else { setTitle( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findClass); sbFind.append( org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_findClass); if (E.notEmpty(bundleFilter)) { sbFind.append(" " //$NON-NLS-1$ + org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_inBundle + " " + bundleFilter); //$NON-NLS-3$ } if (E.notEmpty(packageFilter)) { sbFind.append(" " //$NON-NLS-1$ + org.eclipse.e4.tools.emf.ui.internal.common.resourcelocator.Messages.FindContributionDialog_inPackage + " " + packageFilter); //$NON-NLS-3$ } } setMessage(sbFind.toString()); // preload list if few items if (list.size() <= 30) { t.notifyListeners(SWT.Modify, null); } return comp; }