<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Forg.eclipse.jface.viewers%2FComboBoxCellEditor</id>
		<title>Java by API/org.eclipse.jface.viewers/ComboBoxCellEditor - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Forg.eclipse.jface.viewers%2FComboBoxCellEditor"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_by_API/org.eclipse.jface.viewers/ComboBoxCellEditor&amp;action=history"/>
		<updated>2026-04-23T18:15:56Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_by_API/org.eclipse.jface.viewers/ComboBoxCellEditor&amp;diff=1053&amp;oldid=prev</id>
		<title> в 17:43, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_by_API/org.eclipse.jface.viewers/ComboBoxCellEditor&amp;diff=1053&amp;oldid=prev"/>
				<updated>2010-05-31T17:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:43, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_by_API/org.eclipse.jface.viewers/ComboBoxCellEditor&amp;diff=1054&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_by_API/org.eclipse.jface.viewers/ComboBoxCellEditor&amp;diff=1054&amp;oldid=prev"/>
				<updated>2010-05-31T14:23:22Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== new ComboBoxCellEditor(Composite arg0) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import org.eclipse.jface.viewers.CellEditor;&lt;br /&gt;
import org.eclipse.jface.viewers.CheckboxCellEditor;&lt;br /&gt;
import org.eclipse.jface.viewers.ColorCellEditor;&lt;br /&gt;
import org.eclipse.jface.viewers.ruboBoxCellEditor;&lt;br /&gt;
import org.eclipse.jface.viewers.ICellModifier;&lt;br /&gt;
import org.eclipse.jface.viewers.ILabelProviderListener;&lt;br /&gt;
import org.eclipse.jface.viewers.IStructuredContentProvider;&lt;br /&gt;
import org.eclipse.jface.viewers.ITableLabelProvider;&lt;br /&gt;
import org.eclipse.jface.viewers.TableViewer;&lt;br /&gt;
import org.eclipse.jface.viewers.TextCellEditor;&lt;br /&gt;
import org.eclipse.jface.viewers.Viewer;&lt;br /&gt;
import org.eclipse.jface.window.ApplicationWindow;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.SelectionAdapter;&lt;br /&gt;
import org.eclipse.swt.events.SelectionEvent;&lt;br /&gt;
import org.eclipse.swt.graphics.Image;&lt;br /&gt;
import org.eclipse.swt.graphics.RGB;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.ruposite;&lt;br /&gt;
import org.eclipse.swt.widgets.Control;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Item;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Table;&lt;br /&gt;
import org.eclipse.swt.widgets.TableColumn;&lt;br /&gt;
public class MainClass extends ApplicationWindow {&lt;br /&gt;
  public static final String NAME = &amp;quot;Name&amp;quot;;&lt;br /&gt;
  public static final String MALE = &amp;quot;Male?&amp;quot;;&lt;br /&gt;
  public static final String AGE = &amp;quot;Age Range&amp;quot;;&lt;br /&gt;
  public static final String SHIRT_COLOR = &amp;quot;Shirt Color&amp;quot;;&lt;br /&gt;
  public static final String[] PROPS = { NAME, MALE, AGE, SHIRT_COLOR};&lt;br /&gt;
  private java.util.List studentList= new ArrayList();&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    super(null);&lt;br /&gt;
    setBlockOnOpen(true);&lt;br /&gt;
    open();&lt;br /&gt;
    Display.getCurrent().dispose();&lt;br /&gt;
  }&lt;br /&gt;
  protected void configureShell(Shell shell) {&lt;br /&gt;
    super.configureShell(shell);&lt;br /&gt;
    shell.setText(&amp;quot;Person Editor&amp;quot;);&lt;br /&gt;
    shell.setSize(400, 400);&lt;br /&gt;
  }&lt;br /&gt;
  protected Control createContents(Composite parent) {&lt;br /&gt;
    Composite composite = new Composite(parent, SWT.NONE);&lt;br /&gt;
    composite.setLayout(new GridLayout(1, false));&lt;br /&gt;
    Button newPerson = new Button(composite, SWT.PUSH);&lt;br /&gt;
    newPerson.setText(&amp;quot;Create New Person&amp;quot;);&lt;br /&gt;
    final TableViewer tv = new TableViewer(composite, SWT.FULL_SELECTION);&lt;br /&gt;
    tv.setContentProvider(new PersonContentProvider());&lt;br /&gt;
    tv.setLabelProvider(new StudentLabelProvider());&lt;br /&gt;
    tv.setInput(studentList);&lt;br /&gt;
    Table table = tv.getTable();&lt;br /&gt;
    table.setLayoutData(new GridData(GridData.FILL_BOTH));&lt;br /&gt;
    new TableColumn(table, SWT.CENTER).setText(NAME);&lt;br /&gt;
    new TableColumn(table, SWT.CENTER).setText(MALE);&lt;br /&gt;
    new TableColumn(table, SWT.CENTER).setText(AGE);&lt;br /&gt;
    new TableColumn(table, SWT.CENTER).setText(SHIRT_COLOR);&lt;br /&gt;
    for (int i = 0, n = table.getColumnCount(); i &amp;lt; n; i++) {&lt;br /&gt;
      table.getColumn(i).pack();&lt;br /&gt;
    }&lt;br /&gt;
    table.setHeaderVisible(true);&lt;br /&gt;
    table.setLinesVisible(true);&lt;br /&gt;
    newPerson.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        Student p = new Student();&lt;br /&gt;
        p.setName(&amp;quot;Name&amp;quot;);&lt;br /&gt;
        p.setMale(true);&lt;br /&gt;
        p.setAgeRange(Integer.valueOf(&amp;quot;0&amp;quot;));&lt;br /&gt;
        p.setShirtColor(new RGB(255, 0, 0));&lt;br /&gt;
        studentList.add(p);&lt;br /&gt;
        tv.refresh();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    CellEditor[] editors = new CellEditor[4];&lt;br /&gt;
    editors[0] = new TextCellEditor(table);&lt;br /&gt;
    editors[1] = new CheckboxCellEditor(table);&lt;br /&gt;
    editors[2] = new ComboBoxCellEditor(table, AgeRange.INSTANCES, SWT.READ_ONLY);&lt;br /&gt;
    editors[3] = new ColorCellEditor(table);&lt;br /&gt;
    tv.setColumnProperties(PROPS);&lt;br /&gt;
    tv.setCellModifier(new StudentCellModifier(tv));&lt;br /&gt;
    tv.setCellEditors(editors);&lt;br /&gt;
    return composite;&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new MainClass();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class StudentCellModifier implements ICellModifier {&lt;br /&gt;
  private Viewer viewer;&lt;br /&gt;
  public StudentCellModifier(Viewer viewer) {&lt;br /&gt;
    this.viewer = viewer;&lt;br /&gt;
  }&lt;br /&gt;
  public boolean canModify(Object element, String property) {&lt;br /&gt;
    return true;&lt;br /&gt;
  }&lt;br /&gt;
  public Object getValue(Object element, String property) {&lt;br /&gt;
    Student p = (Student) element;&lt;br /&gt;
    if (MainClass.NAME.equals(property))&lt;br /&gt;
      return p.getName();&lt;br /&gt;
    else if (MainClass.MALE.equals(property))&lt;br /&gt;
      return Boolean.valueOf(p.isMale());&lt;br /&gt;
    else if (MainClass.AGE.equals(property))&lt;br /&gt;
      return p.getAgeRange();&lt;br /&gt;
    else if (MainClass.SHIRT_COLOR.equals(property))&lt;br /&gt;
      return p.getShirtColor();&lt;br /&gt;
    else&lt;br /&gt;
      return null;&lt;br /&gt;
  }&lt;br /&gt;
  public void modify(Object element, String property, Object value) {&lt;br /&gt;
    if (element instanceof Item) element = ((Item) element).getData();&lt;br /&gt;
    Student p = (Student) element;&lt;br /&gt;
    if (MainClass.NAME.equals(property))&lt;br /&gt;
      p.setName((String) value);&lt;br /&gt;
    else if (MainClass.MALE.equals(property))&lt;br /&gt;
      p.setMale(((Boolean) value).booleanValue());&lt;br /&gt;
    else if (MainClass.AGE.equals(property))&lt;br /&gt;
      p.setAgeRange((Integer) value);&lt;br /&gt;
    else if (MainClass.SHIRT_COLOR.equals(property))&lt;br /&gt;
        p.setShirtColor((RGB) value);&lt;br /&gt;
    viewer.refresh();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class PersonContentProvider implements IStructuredContentProvider {&lt;br /&gt;
  public Object[] getElements(Object inputElement) {&lt;br /&gt;
    return ((List) inputElement).toArray();&lt;br /&gt;
  }&lt;br /&gt;
  public void dispose() {&lt;br /&gt;
  }&lt;br /&gt;
  public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class Student {&lt;br /&gt;
  private String name;&lt;br /&gt;
  private boolean male;&lt;br /&gt;
  private Integer ageRange;&lt;br /&gt;
  private RGB shirtColor;&lt;br /&gt;
  public Integer getAgeRange() {&lt;br /&gt;
    return ageRange;&lt;br /&gt;
  }&lt;br /&gt;
  public void setAgeRange(Integer ageRange) {&lt;br /&gt;
    this.ageRange = ageRange;&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isMale() {&lt;br /&gt;
    return male;&lt;br /&gt;
  }&lt;br /&gt;
  public void setMale(boolean male) {&lt;br /&gt;
    this.male = male;&lt;br /&gt;
  }&lt;br /&gt;
  public String getName() {&lt;br /&gt;
    return name;&lt;br /&gt;
  }&lt;br /&gt;
  public void setName(String name) {&lt;br /&gt;
    this.name = name;&lt;br /&gt;
  }&lt;br /&gt;
  public RGB getShirtColor() {&lt;br /&gt;
    return shirtColor;&lt;br /&gt;
  }&lt;br /&gt;
  public void setShirtColor(RGB shirtColor) {&lt;br /&gt;
    this.shirtColor = shirtColor;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class StudentLabelProvider implements ITableLabelProvider {&lt;br /&gt;
  public Image getColumnImage(Object element, int columnIndex) {&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
  public String getColumnText(Object element, int columnIndex) {&lt;br /&gt;
    Student person = (Student) element;&lt;br /&gt;
    switch (columnIndex) {&lt;br /&gt;
    case 0:&lt;br /&gt;
      return person.getName();&lt;br /&gt;
    case 1:&lt;br /&gt;
      return Boolean.toString(person.isMale());&lt;br /&gt;
    case 2:&lt;br /&gt;
      return AgeRange.INSTANCES[person.getAgeRange().intValue()];&lt;br /&gt;
    case 3:&lt;br /&gt;
      return person.getShirtColor().toString();&lt;br /&gt;
    }&lt;br /&gt;
    return null;&lt;br /&gt;
  }&lt;br /&gt;
  public void addListener(ILabelProviderListener listener) {&lt;br /&gt;
  }&lt;br /&gt;
  public void dispose() {&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isLabelProperty(Object element, String property) {&lt;br /&gt;
    return false;&lt;br /&gt;
  }&lt;br /&gt;
  public void removeListener(ILabelProviderListener listener) {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class AgeRange {&lt;br /&gt;
  public static final String NONE = &amp;quot;&amp;quot;;&lt;br /&gt;
  public static final String BABY = &amp;quot;0 - 3&amp;quot;;&lt;br /&gt;
  public static final String TODDLER = &amp;quot;4 - 7&amp;quot;;&lt;br /&gt;
  public static final String CHILD = &amp;quot;8 - 12&amp;quot;;&lt;br /&gt;
  public static final String TEENAGER = &amp;quot;13 - 19&amp;quot;;&lt;br /&gt;
  public static final String ADULT = &amp;quot;20 - ?&amp;quot;;&lt;br /&gt;
  public static final String[] INSTANCES = { NONE, BABY, TODDLER, CHILD,&lt;br /&gt;
      TEENAGER, ADULT};&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>