blob: b1811dca41c3b06507a89820100ab65b487954b9 [file] [log] [blame]
package org.eclipse.e4.tools.emf.ui.internal.common.uistructure;
import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider;
import org.eclipse.e4.tools.services.IResourcePool;
import org.eclipse.jface.viewers.StyledCellLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Sash;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Tree;
public class WidgetLabelProvider extends StyledCellLabelProvider {
private IResourcePool resourcePool;
public WidgetLabelProvider(IResourcePool resourcePool) {
this.resourcePool = resourcePool;
}
@Override
public void update(ViewerCell cell) {
Object element = cell.getElement();
if (element instanceof Menu) {
Menu m = (Menu) element;
if ((m.getStyle() & SWT.BAR) == SWT.BAR) {
cell.setText("MenuBar"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menubar_obj));
} else {
cell.setText("Menu"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menu_obj));
}
} else if (element instanceof MenuItem) {
MenuItem item = (MenuItem) element;
if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
cell.setText("Separator"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menuseparator_obj));
} else {
StyledString s = new StyledString("MenuItem"); //$NON-NLS-1$
s.append(" - " + ((MenuItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_menuitem_obj));
}
} else if (element instanceof CLabel) {
StyledString s = new StyledString("Label"); //$NON-NLS-1$
s.append(" - " + ((CLabel) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj));
} else if (element instanceof ToolBar) {
cell.setText("Toolbar"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolbar_obj));
} else if (element instanceof ToolItem) {
cell.setText("ToolItem"); //$NON-NLS-1$
ToolItem item = (ToolItem) element;
if ((item.getStyle() & SWT.PUSH) == SWT.PUSH) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitempush_obj));
} else if ((item.getStyle() & SWT.DROP_DOWN) == SWT.DROP_DOWN) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemdrop_obj));
} else if ((item.getStyle() & SWT.CHECK) == SWT.CHECK) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemcheck_obj));
} else if ((item.getStyle() & SWT.RADIO) == SWT.RADIO) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemradio_obj));
} else if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemseparator_obj));
}
} else if (element instanceof CoolItem) {
cell.setText("CoolItem"); //$NON-NLS-1$
CoolItem item = (CoolItem) element;
if ((item.getStyle() & SWT.PUSH) == SWT.PUSH) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitempush_obj));
} else if ((item.getStyle() & SWT.DROP_DOWN) == SWT.DROP_DOWN) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemdrop_obj));
} else if ((item.getStyle() & SWT.CHECK) == SWT.CHECK) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemcheck_obj));
} else if ((item.getStyle() & SWT.RADIO) == SWT.RADIO) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemradio_obj));
} else if ((item.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_toolitemseparator_obj));
}
} else if (element instanceof CoolBar) {
cell.setText("Coolbar"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_coolbar_obj));
} else if (element instanceof Shell) {
StyledString s = new StyledString("Shell"); //$NON-NLS-1$
s.append(" - " + ((Shell) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_shell_obj));
} else if (element instanceof ProgressBar) {
cell.setText("ProgressBar"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_progressbar_obj));
} else if (element instanceof Group) {
StyledString s = new StyledString("Group"); //$NON-NLS-1$
s.append(" - " + ((Group) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_group_obj));
} else if (element instanceof TabFolder) {
cell.setText("TabFolder"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_tabfolder_obj));
} else if (element instanceof CTabFolder) {
cell.setText("CTabFolder"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_ctabfolder_obj));
} else if (element instanceof Combo) {
cell.setText("Combo"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_comboviewer_obj));
} else if (element instanceof CCombo) {
cell.setText("CCombo"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_ccombo_obj));
} else if (element instanceof Table) {
cell.setText("Table"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_table_obj));
} else if (element instanceof Tree) {
cell.setText("Tree"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_tree_obj));
} else if (element instanceof Text) {
cell.setText("Text"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_text_obj));
} else if (element instanceof Sash) {
cell.setText("Sash"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_separator_obj));
} else if (element instanceof SashForm) {
cell.setText("Sash Form"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_sashform_obj));
} else if (element instanceof Label) {
Label l = (Label) element;
if ((l.getStyle() & SWT.SEPARATOR) == SWT.SEPARATOR) {
cell.setText("Separator"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_separator_obj));
} else {
StyledString s = new StyledString("Label"); //$NON-NLS-1$
s.append(" - " + l.getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_label_obj));
}
} else if (element instanceof TabItem) {
StyledString s = new StyledString("TabItem"); //$NON-NLS-1$
s.append(" - " + ((TabItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
} else if (element instanceof CTabItem) {
StyledString s = new StyledString("CTabItem"); //$NON-NLS-1$
s.append(" - " + ((CTabItem) element).getText(), StyledString.DECORATIONS_STYLER); //$NON-NLS-1$
cell.setStyleRanges(s.getStyleRanges());
cell.setText(s.getString());
// cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_clabel_obj));
} else if (element instanceof Button) {
Button b = (Button) element;
if ((b.getStyle() & SWT.PUSH) == SWT.PUSH) {
cell.setText("Button"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_button_obj));
} else if ((b.getStyle() & SWT.CHECK) == SWT.CHECK) {
cell.setText("Checkbox"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_checkbox_obj));
} else if ((b.getStyle() & SWT.RADIO) == SWT.RADIO) {
cell.setText("Radiobox"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_radiobutton_obj));
}
} else if (element instanceof Composite) {
cell.setText("Composite"); //$NON-NLS-1$
cell.setImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Widgets_composite_obj));
} else {
cell.setText(element + ""); //$NON-NLS-1$
}
super.update(cell);
}
}