1 package org.eclipse.e4.tools.emf.ui.internal.common.uistructure; 2 3 import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider; 4 import org.eclipse.e4.tools.services.IResourcePool; 5 import org.eclipse.jface.viewers.StyledCellLabelProvider; 6 import org.eclipse.jface.viewers.StyledString; 7 import org.eclipse.jface.viewers.ViewerCell; 8 import org.eclipse.swt.SWT; 9 import org.eclipse.swt.custom.CCombo; 10 import org.eclipse.swt.custom.CLabel; 11 import org.eclipse.swt.custom.CTabFolder; 12 import org.eclipse.swt.custom.CTabItem; 13 import org.eclipse.swt.custom.SashForm; 14 import org.eclipse.swt.widgets.Button; 15 import org.eclipse.swt.widgets.Combo; 16 import org.eclipse.swt.widgets.Composite; 17 import org.eclipse.swt.widgets.CoolBar; 18 import org.eclipse.swt.widgets.CoolItem; 19 import org.eclipse.swt.widgets.Group; 20 import org.eclipse.swt.widgets.Label; 21 import org.eclipse.swt.widgets.Menu; 22 import org.eclipse.swt.widgets.MenuItem; 23 import org.eclipse.swt.widgets.ProgressBar; 24 import org.eclipse.swt.widgets.Sash; 25 import org.eclipse.swt.widgets.Shell; 26 import org.eclipse.swt.widgets.TabFolder; 27 import org.eclipse.swt.widgets.TabItem; 28 import org.eclipse.swt.widgets.Table; 29 import org.eclipse.swt.widgets.Text; 30 import org.eclipse.swt.widgets.ToolBar; 31 import org.eclipse.swt.widgets.ToolItem; 32 import org.eclipse.swt.widgets.Tree; 33 34 public class WidgetLabelProvider extends StyledCellLabelProvider { 35 private IResourcePool resourcePool; 36 WidgetLabelProvider(IResourcePool resourcePool)37 public WidgetLabelProvider(IResourcePool resourcePool) { 38 this.resourcePool = resourcePool; 39 } 40 41 @Override update(ViewerCell cell)42 public void update(ViewerCell cell) { 43 Object element = cell.getElement(); 44 if (element instanceof Menu) { 45 Menu m = (Menu) element; 46 if ((m.getStyle() & SWT.BAR) == SWT.BAR) { 47 cell.setText("MenuBar"); //$NON-NLS-1$ 48 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menubar_obj)); 49 } else { 50 cell.setText("Menu"); //$NON-NLS-1$ 51 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menu_obj)); 52 } 53 } else if (element instanceof MenuItem) { 54 MenuItem item = (MenuItem) element; 55 if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { 56 cell.setText("Separator"); //$NON-NLS-1$ 57 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menuseparator_obj)); 58 } else { 59 StyledString s = new StyledString("MenuItem"); //$NON-NLS-1$ 60 s.append(" - " + ((MenuItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 61 cell.setStyleRanges(s.getStyleRanges()); 62 cell.setText(s.getString()); 63 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menuitem_obj)); 64 } 65 66 } else if (element instanceof CLabel) { 67 StyledString s = new StyledString("Label"); //$NON-NLS-1$ 68 s.append(" - " + ((CLabel) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 69 cell.setStyleRanges(s.getStyleRanges()); 70 cell.setText(s.getString()); 71 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj)); 72 } else if (element instanceof ToolBar) { 73 cell.setText("Toolbar"); //$NON-NLS-1$ 74 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolbar_obj)); 75 } else if (element instanceof ToolItem) { 76 cell.setText("ToolItem"); //$NON-NLS-1$ 77 ToolItem item = (ToolItem) element; 78 if ((item.getStyle() & SWT.PUSH) == SWT.PUSH) { 79 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitempush_obj)); 80 } else if ((item.getStyle() & SWT.DROP_DOWN) == SWT.DROP_DOWN) { 81 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemdrop_obj)); 82 } else if ((item.getStyle() & SWT.CHECK) == SWT.CHECK) { 83 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemcheck_obj)); 84 } else if ((item.getStyle() & SWT.RADIO) == SWT.RADIO) { 85 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemradio_obj)); 86 } else if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { 87 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemseparator_obj)); 88 } 89 } else if (element instanceof CoolItem) { 90 cell.setText("CoolItem"); //$NON-NLS-1$ 91 CoolItem item = (CoolItem) element; 92 if ((item.getStyle() & SWT.PUSH) == SWT.PUSH) { 93 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitempush_obj)); 94 } else if ((item.getStyle() & SWT.DROP_DOWN) == SWT.DROP_DOWN) { 95 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemdrop_obj)); 96 } else if ((item.getStyle() & SWT.CHECK) == SWT.CHECK) { 97 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemcheck_obj)); 98 } else if ((item.getStyle() & SWT.RADIO) == SWT.RADIO) { 99 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemradio_obj)); 100 } else if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { 101 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemseparator_obj)); 102 } 103 } else if (element instanceof CoolBar) { 104 cell.setText("Coolbar"); //$NON-NLS-1$ 105 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_coolbar_obj)); 106 } else if (element instanceof Shell) { 107 StyledString s = new StyledString("Shell"); //$NON-NLS-1$ 108 s.append(" - " + ((Shell) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 109 cell.setStyleRanges(s.getStyleRanges()); 110 cell.setText(s.getString()); 111 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_shell_obj)); 112 } else if (element instanceof ProgressBar) { 113 cell.setText("ProgressBar"); //$NON-NLS-1$ 114 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_progressbar_obj)); 115 } else if (element instanceof Group) { 116 StyledString s = new StyledString("Group"); //$NON-NLS-1$ 117 s.append(" - " + ((Group) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 118 cell.setStyleRanges(s.getStyleRanges()); 119 cell.setText(s.getString()); 120 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_group_obj)); 121 } else if (element instanceof TabFolder) { 122 cell.setText("TabFolder"); //$NON-NLS-1$ 123 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_tabfolder_obj)); 124 } else if (element instanceof CTabFolder) { 125 cell.setText("CTabFolder"); //$NON-NLS-1$ 126 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_ctabfolder_obj)); 127 } else if (element instanceof Combo) { 128 cell.setText("Combo"); //$NON-NLS-1$ 129 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_comboviewer_obj)); 130 } else if (element instanceof CCombo) { 131 cell.setText("CCombo"); //$NON-NLS-1$ 132 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_ccombo_obj)); 133 } else if (element instanceof Table) { 134 cell.setText("Table"); //$NON-NLS-1$ 135 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_table_obj)); 136 } else if (element instanceof Tree) { 137 cell.setText("Tree"); //$NON-NLS-1$ 138 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_tree_obj)); 139 } else if (element instanceof Text) { 140 cell.setText("Text"); //$NON-NLS-1$ 141 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_text_obj)); 142 } else if (element instanceof Sash) { 143 cell.setText("Sash"); //$NON-NLS-1$ 144 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_separator_obj)); 145 } else if (element instanceof SashForm) { 146 cell.setText("Sash Form"); //$NON-NLS-1$ 147 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_sashform_obj)); 148 } else if (element instanceof Label) { 149 Label l = (Label) element; 150 if ((l.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) { 151 cell.setText("Separator"); //$NON-NLS-1$ 152 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_separator_obj)); 153 } else { 154 StyledString s = new StyledString("Label"); //$NON-NLS-1$ 155 s.append(" - " + l.getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 156 cell.setStyleRanges(s.getStyleRanges()); 157 cell.setText(s.getString()); 158 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_label_obj)); 159 } 160 161 } else if (element instanceof TabItem) { 162 StyledString s = new StyledString("TabItem"); //$NON-NLS-1$ 163 s.append(" - " + ((TabItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 164 cell.setStyleRanges(s.getStyleRanges()); 165 cell.setText(s.getString()); 166 } else if (element instanceof CTabItem) { 167 StyledString s = new StyledString("CTabItem"); //$NON-NLS-1$ 168 s.append(" - " + ((CTabItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ 169 cell.setStyleRanges(s.getStyleRanges()); 170 cell.setText(s.getString()); 171 // cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj)); 172 } else if (element instanceof Button) { 173 Button b = (Button) element; 174 if ((b.getStyle() & SWT.PUSH) == SWT.PUSH) { 175 cell.setText("Button"); //$NON-NLS-1$ 176 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_button_obj)); 177 } else if ((b.getStyle() & SWT.CHECK) == SWT.CHECK) { 178 cell.setText("Checkbox"); //$NON-NLS-1$ 179 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_checkbox_obj)); 180 } else if ((b.getStyle() & SWT.RADIO) == SWT.RADIO) { 181 cell.setText("Radiobox"); //$NON-NLS-1$ 182 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_radiobutton_obj)); 183 } 184 } else if (element instanceof Composite) { 185 cell.setText("Composite"); //$NON-NLS-1$ 186 cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_composite_obj)); 187 } else { 188 cell.setText(element + ""); //$NON-NLS-1$ 189 } 190 super.update(cell); 191 } 192 } 193