Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 72298 Details for
Bug 188333
[Viewers] Label provider for multi-colored TableItems/TreeItems
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Snippet using the new class
Snippet041StyleRangeProviderSimple.java (text/plain), 4.98 KB, created by
Michael Chervil
on 2007-06-24 15:37:37 EDT
(
hide
)
Description:
Snippet using the new class
Filename:
MIME Type:
Creator:
Michael Chervil
Created:
2007-06-24 15:37:37 EDT
Size:
4.98 KB
patch
obsolete
>/******************************************************************************* > * Copyright (c) 2007 Michael Krkoska and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html > * > * Contributors: > * Michael Krkoska - initial API and implementation > *******************************************************************************/ >package org.eclipse.jface.snippets.viewers; > >import java.util.regex.Matcher; >import java.util.regex.Pattern; > >import org.eclipse.jface.resource.JFaceResources; >import org.eclipse.jface.viewers.ArrayContentProvider; >import org.eclipse.jface.viewers.ColumnPixelData; >import org.eclipse.jface.viewers.IFontProvider; >import org.eclipse.jface.viewers.ILabelProvider; >import org.eclipse.jface.viewers.LabelProvider; >import org.eclipse.jface.viewers.StyleRangeLabelProvider; >import org.eclipse.jface.viewers.TableLayout; >import org.eclipse.jface.viewers.TableViewer; >import org.eclipse.swt.SWT; >import org.eclipse.swt.custom.StyleRange; >import org.eclipse.swt.graphics.Color; >import org.eclipse.swt.graphics.Font; >import org.eclipse.swt.graphics.Image; >import org.eclipse.swt.layout.GridData; >import org.eclipse.swt.layout.GridLayout; >import org.eclipse.swt.widgets.Composite; >import org.eclipse.swt.widgets.Display; >import org.eclipse.swt.widgets.Shell; >import org.eclipse.swt.widgets.TableColumn; > >/** > * A simple TableViewer using a StyleRangeLabelProvider to color a part of the label. > * > * @author Michael Krkoska <michael.krkoska@gmail.com> > */ >public class Snippet041StyleRangeProviderSimple { > > private static final Display DISPLAY = Display.getDefault(); > private static final Color GREEN = DISPLAY.getSystemColor(SWT.COLOR_DARK_GREEN); > private static final Image IMAGE_BIG = DISPLAY.getSystemImage(SWT.ICON_WARNING); > private static final Image IMAGE = new Image(DISPLAY, IMAGE_BIG.getImageData().scaledTo(16, 16)); > private static final Pattern BRACES = Pattern.compile("\\(.*\\)"); > > public static void main( String[] args ) { > > Shell shell = new Shell(DISPLAY, SWT.CLOSE); > shell.setSize(300, 300); > shell.setLayout(new GridLayout()); > > Snippet041StyleRangeProviderSimple example = new Snippet041StyleRangeProviderSimple(); > example.createPartControl(shell); > > shell.open(); > > while ( !shell.isDisposed() ) { > if ( !DISPLAY.readAndDispatch() ) { > DISPLAY.sleep(); > } > } > DISPLAY.dispose(); > } > > private TableViewer viewer; > > public void createPartControl( Composite parent ) { > // SWT.FULL_SELECTION is needed on win32 as long as Bug 168807 exists > viewer = new TableViewer(parent, SWT.FULL_SELECTION); > > GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH); > viewer.getControl().setLayoutData(data); > > viewer.setContentProvider(new ArrayContentProvider()); > createColumns(); > > viewer.setLabelProvider(new MyStyleRangeLabelProvider(new MyLabelProvider())); >// viewer.setLabelProvider(new MyLabelProvider()); > > StyleRangeLabelProvider.setUpOwnerDraw(viewer); > > String[] s = new String[10]; > for ( int i = 0; i < s.length; i++ ) { > s[i] = "row " + i + " (green)"; > } > viewer.setInput(s); > } > > private void createColumns() { > TableLayout layout = new TableLayout(); > viewer.getTable().setLayout(layout); > viewer.getTable().setHeaderVisible(false); > viewer.getTable().setLinesVisible(true); > > int width = 300 - 2 * 5 - viewer.getTable().getShell().computeTrim(0, 0, 0, 0).width; > > new TableColumn(viewer.getTable(), SWT.NONE); > layout.addColumnData(new ColumnPixelData(width)); > } > > private final class MyLabelProvider extends LabelProvider implements IFontProvider { > > public Font getFont( Object element ) { > return JFaceResources.getFont("Font"); > } > > public Image getImage( Object element ) { >// if(element.toString().startsWith("row 1")) >// return IMAGE_BIG; > if ( !element.toString().startsWith("row 0") ) { > return IMAGE; > } > return null; > } > > } > > private final class MyStyleRangeLabelProvider extends StyleRangeLabelProvider { > > private MyStyleRangeLabelProvider( ILabelProvider labelProvider ) { > super(labelProvider); > } > > public StyleRange[] getStyleRanges( Object element, int columnIndex, String label ) { > Matcher matcher = BRACES.matcher(label); > if ( matcher.find() ) { > StyleRange styleRange = new StyleRange(matcher.start(), matcher.end() - matcher.start(), null, null); > styleRange.foreground = GREEN; > return new StyleRange[] { styleRange }; > } > return null; > } > } > >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 188333
:
72297
|
72298
|
72299
|
72300
|
72421
|
72422
|
72423
|
72424
|
72495
|
72496
|
72539
|
72542
|
72592
|
73167
|
73272
|
73353
|
73614
|
73626
|
73633
|
73818
|
80884
|
80912
|
82965
|
83672