List of usage examples for org.eclipse.swt.widgets Display getSystemColor
@Override public Color getSystemColor(int id)
From source file:org.eclipse.swt.snippets.Snippet310.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet 310"); shell.setLayout(new GridLayout()); final Spinner spinner = new Spinner(shell, SWT.BORDER); spinner.setValues(0, -100, 100, 0, 1, 10); spinner.setLayoutData(new GridData(200, SWT.DEFAULT)); final ToolTip toolTip = new ToolTip(shell, SWT.BALLOON | SWT.ICON_WARNING); spinner.addModifyListener(e -> {/*www . j av a 2s . co m*/ String string = spinner.getText(); String message = null; try { int value = Integer.parseInt(string); int maximum = spinner.getMaximum(); int minimum = spinner.getMinimum(); if (value > maximum) { message = "Current input is greater than the maximum limit (" + maximum + ")"; } else if (value < minimum) { message = "Current input is less than the minimum limit (" + minimum + ")"; } } catch (Exception ex) { message = "Current input is not numeric"; } if (message != null) { spinner.setForeground(display.getSystemColor(SWT.COLOR_RED)); Rectangle rect = spinner.getBounds(); GC gc = new GC(spinner); Point pt = gc.textExtent(string); gc.dispose(); toolTip.setLocation(display.map(shell, null, rect.x + pt.x, rect.y + rect.height)); toolTip.setMessage(message); toolTip.setVisible(true); } else { toolTip.setVisible(false); spinner.setForeground(null); } }); shell.setSize(300, 100); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet240.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Text spans two columns in a TreeItem"); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.MULTI | SWT.FULL_SELECTION); tree.setHeaderVisible(true);/*from w ww .j a v a2 s . c om*/ int columnCount = 4; for (int i = 0; i < columnCount; i++) { TreeColumn column = new TreeColumn(tree, SWT.NONE); column.setText("Column " + i); } int itemCount = 8; for (int i = 0; i < itemCount; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText(0, "item " + i + " a"); item.setText(3, "item " + i + " d"); for (int j = 0; j < 3; j++) { TreeItem subItem = new TreeItem(item, SWT.NONE); subItem.setText(0, "subItem " + i + "-" + j + " a"); subItem.setText(3, "subItem " + i + "-" + j + " d"); } } /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. * Therefore, it is critical for performance that these methods be * as efficient as possible. */ final String string = "text that spans two columns"; GC gc = new GC(tree); final Point extent = gc.stringExtent(string); gc.dispose(); final Color red = display.getSystemColor(SWT.COLOR_RED); Listener paintListener = event -> { switch (event.type) { case SWT.MeasureItem: { if (event.index == 1 || event.index == 2) { event.width = extent.x / 2; event.height = Math.max(event.height, extent.y + 2); } break; } case SWT.PaintItem: { if (event.index == 1 || event.index == 2) { int offset = 0; if (event.index == 2) { TreeColumn column1 = tree.getColumn(1); offset = column1.getWidth(); } event.gc.setForeground(red); int y = event.y + (event.height - extent.y) / 2; event.gc.drawString(string, event.x - offset, y, true); } break; } } }; tree.addListener(SWT.MeasureItem, paintListener); tree.addListener(SWT.PaintItem, paintListener); for (int i = 0; i < columnCount; i++) { tree.getColumn(i).pack(); } shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet365.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet365 - Transparent Background"); RowLayout layout = new RowLayout(SWT.VERTICAL); layout.spacing = 20;// ww w . ja va 2 s .c o m layout.marginWidth = 10; layout.marginHeight = 10; shell.setLayout(layout); // Standard color background for Shell // shell.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // Gradient background for Shell shell.addListener(SWT.Resize, event -> { Rectangle rect = shell.getClientArea(); Image newImage = new Image(display, Math.max(1, rect.width), 1); GC gc = new GC(newImage); gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); gc.setBackground(display.getSystemColor(SWT.COLOR_GREEN)); gc.fillGradientRectangle(rect.x, rect.y, rect.width, 1, false); gc.dispose(); shell.setBackgroundImage(newImage); if (oldImage != null) oldImage.dispose(); oldImage = newImage; }); // Transparent buttonCheckBox = new Button(shell, SWT.CHECK | SWT.None); buttonCheckBox.setText("SET TRANSPARENT"); buttonCheckBox.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); buttonCheckBox.setSelection(false); buttonCheckBox.addSelectionListener(widgetSelectedAdapter(e -> { boolean transparent = ((Button) e.getSource()).getSelection(); if (transparent) { // ContainerGroup containerGroup.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); canvas.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); composite.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); tabFolder.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); for (TabItem item : tabFolder.getItems()) { item.getControl().setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); } // Native nativeGroup.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); toolBar.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); coolBar.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); label.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); link.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); scale.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); radio.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); check.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); group.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); sash.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); slider.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); list.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); // Custom customGroup.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); cLabel.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); cTab.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_TRANSPARENT)); gradientCTab.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_TRANSPARENT)); sashForm.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_TRANSPARENT)); for (Control control : sashForm.getChildren()) { control.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_TRANSPARENT)); } // Default push.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); defaultBackgroundGroup.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); combo.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); progressBar.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); dateTime.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); ccombo.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); text.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); styledText.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); expandBar.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); table.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); tree.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); // ItemGroup itemGroup.setBackground(display.getSystemColor(SWT.COLOR_TRANSPARENT)); } else { // Native nativeGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); toolBar.setBackground(null); coolBar.setBackground(null); label.setBackground(null); link.setBackground(null); scale.setBackground(null); RGB rgb = display.getSystemColor(SWT.COLOR_CYAN).getRGB(); radio.setBackground(new Color(display, new RGBA(rgb.red, rgb.blue, rgb.green, 255))); check.setBackgroundImage(getBackgroundImage(display)); group.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); sash.setBackground(display.getSystemColor(SWT.COLOR_DARK_CYAN)); slider.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); list.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); text.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // ContainerGroup containerGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); canvas.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); composite.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); tabFolder.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); for (TabItem item : tabFolder.getItems()) { item.getControl().setBackground(display.getSystemColor(SWT.COLOR_CYAN)); } // Custom customGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); cLabel.setBackground((Color) null); styledText.setBackground((Color) null); sashForm.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); for (Control control : sashForm.getChildren()) { control.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); } cTab.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); gradientCTab.setBackground(new Color[] { display.getSystemColor(SWT.COLOR_RED), display.getSystemColor(SWT.COLOR_WHITE) }, new int[] { 90 }, true); // Default defaultBackgroundGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); push.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); combo.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); ccombo.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); dateTime.setBackground(null); progressBar.setBackground(null); expandBar.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); table.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); tree.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // ItemGroup itemGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); } })); // ContainerGroup containerGroup = new Composite(shell, SWT.NONE); containerGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); containerGroup.setToolTipText("CONTAINER"); layout = new RowLayout(); layout.spacing = 20; containerGroup.setLayout(layout); // Native nativeGroup = new Composite(shell, SWT.NONE); nativeGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); nativeGroup.setToolTipText("NATIVE"); layout = new RowLayout(); layout.spacing = 20; nativeGroup.setLayout(layout); // Custom customGroup = new Composite(shell, SWT.NONE); customGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); customGroup.setToolTipText("CUSTOM"); layout = new RowLayout(); layout.spacing = 20; customGroup.setLayout(layout); // AsDesigned defaultBackgroundGroup = new Composite(shell, SWT.NONE); defaultBackgroundGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); defaultBackgroundGroup.setToolTipText("Default Background"); layout = new RowLayout(); layout.spacing = 20; defaultBackgroundGroup.setLayout(layout); // ItemGroup itemGroup = new Composite(shell, SWT.NONE); itemGroup.setBackground(display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); itemGroup.setToolTipText("ITEM"); layout = new RowLayout(); layout.spacing = 20; itemGroup.setLayout(layout); // Label label = new Label(nativeGroup, SWT.NONE); label.setText("Label"); // Radio button radio = new Button(nativeGroup, SWT.RADIO); radio.setText("Radio Button"); radio.setSelection(true); radio.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // Checkbox button with image check = new Button(nativeGroup, SWT.CHECK); check.setText("CheckBox Image"); check.setSelection(true); check.setBackgroundImage(getBackgroundImage(display)); // Push Button push = new Button(defaultBackgroundGroup, SWT.PUSH); push.setText("Push Button"); // Toolbar toolBar = new ToolBar(nativeGroup, SWT.FLAT); toolBar.pack(); ToolItem item = new ToolItem(toolBar, SWT.PUSH); item.setText("ToolBar_Item"); // Coolbar coolBar = new CoolBar(nativeGroup, SWT.BORDER); for (int i = 0; i < 2; i++) { CoolItem item2 = new CoolItem(coolBar, SWT.NONE); Button button = new Button(coolBar, SWT.PUSH); button.setText("Button " + i); Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT); item2.setPreferredSize(item2.computeSize(size.x, size.y)); item2.setControl(button); } // Scale scale = new Scale(nativeGroup, SWT.None); scale.setMaximum(100); scale.setSelection(20); // Link link = new Link(nativeGroup, SWT.NONE); link.setText("<a>Sample link</a>"); // List list = new List(nativeGroup, SWT.BORDER); list.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); list.add("List_one"); list.add("List_two"); list.add("List_three"); list.add("List_four"); // Canvas canvas = new Canvas(containerGroup, SWT.NONE); canvas.setToolTipText("Canvas"); canvas.addPaintListener(e -> { GC gc = e.gc; gc.setForeground(display.getSystemColor(SWT.COLOR_RED)); gc.drawRectangle(e.x + 1, e.y + 1, e.width - 2, e.height - 2); gc.drawArc(2, 2, e.width - 4, e.height - 4, 0, 360); }); // Composite composite = new Composite(containerGroup, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); composite.setToolTipText("Composite"); // TabFolder tabFolder = new TabFolder(containerGroup, SWT.BORDER); tabFolder.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); for (int i = 0; i < 2; i++) { TabItem tabItem = new TabItem(tabFolder, SWT.NONE); tabItem.setText("TabItem " + i); Label label = new Label(tabFolder, SWT.PUSH); label.setText("Page " + i); tabItem.setControl(label); tabItem.getControl().setBackground(display.getSystemColor(SWT.COLOR_CYAN)); } tabFolder.pack(); // Group group = new Group(containerGroup, SWT.NONE); group.setText("Group"); // Sash sash = new Sash(containerGroup, SWT.HORIZONTAL | SWT.BORDER); sash.setBackground(display.getSystemColor(SWT.COLOR_DARK_CYAN)); sash.setLayoutData(new RowData(100, 100)); sash.setToolTipText("Sash"); // SashForm sashForm = new SashForm(containerGroup, SWT.HORIZONTAL | SWT.BORDER); Label leftLabel = new Label(sashForm, SWT.NONE); leftLabel.setText("SashForm\nLeft\n...\n...\n...\n...\n..."); Label rightLabel = new Label(sashForm, SWT.NONE); rightLabel.setText("SashForm\nRight\n...\n...\n...\n...\n..."); // DateTime dateTime = new DateTime(defaultBackgroundGroup, SWT.NONE); dateTime.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // Text text = new Text(nativeGroup, SWT.BORDER); text.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); text.setText("text"); // ProgressBar progressBar = new ProgressBar(defaultBackgroundGroup, SWT.NONE); progressBar.setMaximum(100); progressBar.setSelection(80); // Combo combo = new Combo(defaultBackgroundGroup, SWT.BORDER); combo.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); combo.add("combo"); combo.setText("combo"); // Slider slider = new Slider(nativeGroup, SWT.HORIZONTAL | SWT.BORDER); slider.setSelection(20); slider.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // CCombo ccombo = new CCombo(defaultBackgroundGroup, SWT.BORDER); ccombo.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); ccombo.add("ccombo"); ccombo.setText("ccombo"); // CLable cLabel = new CLabel(customGroup, SWT.NONE); cLabel.setText("CLabel"); // Text styledText = new StyledText(customGroup, SWT.BORDER); styledText.setFont(new Font(display, "Tahoma", 18, SWT.BOLD | SWT.ITALIC)); styledText.setForeground(display.getSystemColor(SWT.COLOR_DARK_BLUE)); styledText.setText("Styled Text"); styledText.append("\n"); styledText.append("Example_string"); styledText.append("\n"); styledText.append("One_Two"); styledText.append("\n"); styledText.append("Two_Three"); // CTabFolder cTab = new CTabFolder(containerGroup, SWT.BORDER); for (int i = 0; i < 2; i++) { CTabItem cTabItem = new CTabItem(cTab, SWT.CLOSE, i); cTabItem.setText("CTabItem " + (i + 1)); } cTab.setSelection(0); // Gradient CTabFolder gradientCTab = new CTabFolder(customGroup, SWT.BORDER); gradientCTab.setBackground( new Color[] { display.getSystemColor(SWT.COLOR_WHITE), display.getSystemColor(SWT.COLOR_RED) }, new int[] { 90 }, true); for (int i = 0; i < 2; i++) { CTabItem cTabItem = new CTabItem(gradientCTab, SWT.CLOSE, i); cTabItem.setText("CTabItem " + (i + 1)); } gradientCTab.setSelection(0); // Table table = new Table(itemGroup, SWT.V_SCROLL); table.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); table.setLinesVisible(true); table.setHeaderVisible(true); TableItem tableItem = new TableItem(table, SWT.NONE); tableItem.setText("TableItem - One"); tableItem = new TableItem(table, SWT.NONE); tableItem.setText("TableItem - Two"); // Tree tree = new Tree(itemGroup, SWT.NONE); TreeItem treeItem = new TreeItem(tree, SWT.NONE); treeItem.setText("Parent"); TreeItem childItem = new TreeItem(treeItem, SWT.NONE); childItem.setText("Child1"); childItem = new TreeItem(treeItem, SWT.NONE); childItem.setText("Child2"); treeItem.setExpanded(true); tree.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); // ExpandBar expandBar = new ExpandBar(itemGroup, SWT.V_SCROLL); expandBar.setBackground(display.getSystemColor(SWT.COLOR_CYAN)); for (int i = 1; i <= 2; i++) { ExpandItem item1 = new ExpandItem(expandBar, SWT.NONE, 0); item1.setText("Expand_Bar_Entry " + i); item1.setExpanded(true); item1.setHeight(20); } shell.open(); shell.pack(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:TableCellProgressBar.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setText("Show results as a bar chart in Table"); final Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true);/*from ww w.j av a 2 s. co m*/ table.setLinesVisible(true); TableColumn column1 = new TableColumn(table, SWT.NONE); column1.setText("Bug Status"); column1.setWidth(100); final TableColumn column2 = new TableColumn(table, SWT.NONE); column2.setText("Percent"); column2.setWidth(200); String[] labels = new String[] { "Resolved", "New", "Won't Fix", "Invalid" }; for (int i = 0; i < labels.length; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(labels[i]); } /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. * Therefore, it is critical for performance that these methods be as * efficient as possible. */ table.addListener(SWT.PaintItem, new Listener() { int[] percents = new int[] { 50, 30, 5, 15 }; public void handleEvent(Event event) { if (event.index == 1) { GC gc = event.gc; TableItem item = (TableItem) event.item; int index = table.indexOf(item); int percent = percents[index]; Color foreground = gc.getForeground(); Color background = gc.getBackground(); gc.setForeground(display.getSystemColor(SWT.COLOR_RED)); gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW)); int width = (column2.getWidth() - 1) * percent / 100; gc.fillGradientRectangle(event.x, event.y, width, event.height, true); Rectangle rect2 = new Rectangle(event.x, event.y, width - 1, event.height - 1); gc.drawRectangle(rect2); gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); String text = percent + "%"; Point size = event.gc.textExtent(text); int offset = Math.max(0, (event.height - size.y) / 2); gc.drawText(text, event.x + 2, event.y + offset, true); gc.setForeground(background); gc.setBackground(foreground); } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet228.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setText("Show results as a bar chart in Table"); final Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true);/*from w w w . ja va2 s . c o m*/ table.setLinesVisible(true); TableColumn column1 = new TableColumn(table, SWT.NONE); column1.setText("Bug Status"); column1.setWidth(100); final TableColumn column2 = new TableColumn(table, SWT.NONE); column2.setText("Percent"); column2.setWidth(200); String[] labels = new String[] { "Resolved", "New", "Won't Fix", "Invalid" }; for (int i = 0; i < labels.length; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(labels[i]); } /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. * Therefore, it is critical for performance that these methods be * as efficient as possible. */ table.addListener(SWT.PaintItem, new Listener() { int[] percents = new int[] { 50, 30, 5, 15 }; @Override public void handleEvent(Event event) { if (event.index == 1) { GC gc = event.gc; TableItem item = (TableItem) event.item; int index = table.indexOf(item); int percent = percents[index]; Color foreground = gc.getForeground(); Color background = gc.getBackground(); gc.setForeground(display.getSystemColor(SWT.COLOR_RED)); gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW)); int width = (column2.getWidth() - 1) * percent / 100; gc.fillGradientRectangle(event.x, event.y, width, event.height, true); Rectangle rect2 = new Rectangle(event.x, event.y, width - 1, event.height - 1); gc.drawRectangle(rect2); gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); String text = percent + "%"; Point size = event.gc.textExtent(text); int offset = Math.max(0, (event.height - size.y) / 2); gc.drawText(text, event.x + 2, event.y + offset, true); gc.setForeground(background); gc.setBackground(foreground); } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:TreeTableBarChart.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setText("Show results as a bar chart in Tree"); final Tree tree = new Tree(shell, SWT.BORDER); tree.setHeaderVisible(true);//from w w w . j a va2 s. co m tree.setLinesVisible(true); TreeColumn column1 = new TreeColumn(tree, SWT.NONE); column1.setText("Bug Status"); column1.setWidth(100); final TreeColumn column2 = new TreeColumn(tree, SWT.NONE); column2.setText("Percent"); column2.setWidth(200); String[] states = new String[] { "Resolved", "New", "Won't Fix", "Invalid" }; String[] teams = new String[] { "UI", "SWT", "OSGI" }; for (int i = 0; i < teams.length; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText(teams[i]); for (int j = 0; j < states.length; j++) { TreeItem subItem = new TreeItem(item, SWT.NONE); subItem.setText(states[j]); } } /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. * Therefore, it is critical for performance that these methods be as * efficient as possible. */ tree.addListener(SWT.PaintItem, new Listener() { int[] percents = new int[] { 50, 30, 5, 15 }; public void handleEvent(Event event) { if (event.index == 1) { TreeItem item = (TreeItem) event.item; TreeItem parent = item.getParentItem(); if (parent != null) { GC gc = event.gc; int index = parent.indexOf(item); int percent = percents[index]; Color foreground = gc.getForeground(); Color background = gc.getBackground(); gc.setForeground(display.getSystemColor(SWT.COLOR_RED)); gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW)); int width = (column2.getWidth() - 1) * percent / 100; gc.fillGradientRectangle(event.x, event.y, width, event.height, true); Rectangle rect2 = new Rectangle(event.x, event.y, width - 1, event.height - 1); gc.drawRectangle(rect2); gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); String text = percent + "%"; Point size = event.gc.textExtent(text); int offset = Math.max(0, (event.height - size.y) / 2); gc.drawText(text, event.x + 2, event.y + offset, true); gc.setForeground(background); gc.setBackground(foreground); } } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet232.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setText("Show results as a bar chart in Tree"); final Tree tree = new Tree(shell, SWT.BORDER); tree.setHeaderVisible(true);/*www.j a v a2 s .c o m*/ tree.setLinesVisible(true); TreeColumn column1 = new TreeColumn(tree, SWT.NONE); column1.setText("Bug Status"); column1.setWidth(100); final TreeColumn column2 = new TreeColumn(tree, SWT.NONE); column2.setText("Percent"); column2.setWidth(200); String[] states = new String[] { "Resolved", "New", "Won't Fix", "Invalid" }; String[] teams = new String[] { "UI", "SWT", "OSGI" }; for (int i = 0; i < teams.length; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText(teams[i]); for (int j = 0; j < states.length; j++) { TreeItem subItem = new TreeItem(item, SWT.NONE); subItem.setText(states[j]); } } /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. * Therefore, it is critical for performance that these methods be * as efficient as possible. */ tree.addListener(SWT.PaintItem, new Listener() { int[] percents = new int[] { 50, 30, 5, 15 }; @Override public void handleEvent(Event event) { if (event.index == 1) { TreeItem item = (TreeItem) event.item; TreeItem parent = item.getParentItem(); if (parent != null) { GC gc = event.gc; int index = parent.indexOf(item); int percent = percents[index]; Color foreground = gc.getForeground(); Color background = gc.getBackground(); gc.setForeground(display.getSystemColor(SWT.COLOR_RED)); gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW)); int width = (column2.getWidth() - 1) * percent / 100; gc.fillGradientRectangle(event.x, event.y, width, event.height, true); Rectangle rect2 = new Rectangle(event.x, event.y, width - 1, event.height - 1); gc.drawRectangle(rect2); gc.setForeground(display.getSystemColor(SWT.COLOR_LIST_FOREGROUND)); String text = percent + "%"; Point size = event.gc.textExtent(text); int offset = Math.max(0, (event.height - size.y) / 2); gc.drawText(text, event.x + 2, event.y + offset, true); gc.setForeground(background); gc.setBackground(foreground); } } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:TextLayoutSubscriptSuperscript.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display, SWT.SHELL_TRIM | SWT.DOUBLE_BUFFERED); shell.setText("Modify Rise"); FontData data = display.getSystemFont().getFontData()[0]; Font font = new Font(display, data.getName(), 24, SWT.NORMAL); Font smallFont = new Font(display, data.getName(), 8, SWT.NORMAL); GC gc = new GC(shell); gc.setFont(smallFont);/* w ww.j a va2s .c om*/ FontMetrics smallMetrics = gc.getFontMetrics(); final int smallBaseline = smallMetrics.getAscent() + smallMetrics.getLeading(); gc.setFont(font); FontMetrics metrics = gc.getFontMetrics(); final int baseline = metrics.getAscent() + metrics.getLeading(); gc.dispose(); final TextLayout layout0 = new TextLayout(display); layout0.setText("SubscriptScriptSuperscript"); layout0.setFont(font); TextStyle subscript0 = new TextStyle(smallFont, null, null); TextStyle superscript0 = new TextStyle(smallFont, null, null); superscript0.rise = baseline - smallBaseline; layout0.setStyle(subscript0, 0, 8); layout0.setStyle(superscript0, 15, 25); final TextLayout layout1 = new TextLayout(display); layout1.setText("SubscriptScriptSuperscript"); layout1.setFont(font); TextStyle subscript1 = new TextStyle(smallFont, null, null); subscript1.rise = -smallBaseline; TextStyle superscript1 = new TextStyle(smallFont, null, null); superscript1.rise = baseline; layout1.setStyle(subscript1, 0, 8); layout1.setStyle(superscript1, 15, 25); shell.addListener(SWT.Paint, new Listener() { public void handleEvent(Event event) { Display display = event.display; GC gc = event.gc; Rectangle rect0 = layout0.getBounds(); rect0.x += 10; rect0.y += 10; gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK)); gc.fillRectangle(rect0); layout0.draw(gc, rect0.x, rect0.y); gc.setForeground(display.getSystemColor(SWT.COLOR_MAGENTA)); gc.drawLine(rect0.x, rect0.y, rect0.x + rect0.width, rect0.y); gc.drawLine(rect0.x, rect0.y + baseline, rect0.x + rect0.width, rect0.y + baseline); gc.drawLine(rect0.x + rect0.width / 2, rect0.y, rect0.x + rect0.width / 2, rect0.y + rect0.height); Rectangle rect1 = layout1.getBounds(); rect1.x += 10; rect1.y += 20 + rect0.height; gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK)); gc.fillRectangle(rect1); layout1.draw(gc, rect1.x, rect1.y); gc.setForeground(display.getSystemColor(SWT.COLOR_MAGENTA)); gc.drawLine(rect1.x, rect1.y + smallBaseline, rect1.x + rect1.width, rect1.y + smallBaseline); gc.drawLine(rect1.x, rect1.y + baseline + smallBaseline, rect1.x + rect1.width, rect1.y + baseline + smallBaseline); gc.drawLine(rect1.x + rect1.width / 2, rect1.y, rect1.x + rect1.width / 2, rect1.y + rect1.height); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } layout0.dispose(); layout1.dispose(); smallFont.dispose(); font.dispose(); display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet125.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet 125"); shell.setLayout(new FillLayout()); final Table table = new Table(shell, SWT.BORDER); for (int i = 0; i < 20; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText("item " + i); }/*ww w . j a v a 2 s .c om*/ // Disable native tooltip table.setToolTipText(""); // Implement a "fake" tooltip final Listener labelListener = event -> { Label label = (Label) event.widget; Shell shell1 = label.getShell(); switch (event.type) { case SWT.MouseDown: Event e = new Event(); e.item = (TableItem) label.getData("_TABLEITEM"); // Assuming table is single select, set the selection as if // the mouse down event went through to the table table.setSelection(new TableItem[] { (TableItem) e.item }); table.notifyListeners(SWT.Selection, e); shell1.dispose(); table.setFocus(); break; case SWT.MouseExit: shell1.dispose(); break; } }; Listener tableListener = new Listener() { Shell tip = null; Label label = null; @Override public void handleEvent(Event event) { switch (event.type) { case SWT.Dispose: case SWT.KeyDown: case SWT.MouseMove: { if (tip == null) break; tip.dispose(); tip = null; label = null; break; } case SWT.MouseHover: { TableItem item = table.getItem(new Point(event.x, event.y)); if (item != null) { if (tip != null && !tip.isDisposed()) tip.dispose(); tip = new Shell(shell, SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL); tip.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); FillLayout layout = new FillLayout(); layout.marginWidth = 2; tip.setLayout(layout); label = new Label(tip, SWT.NONE); label.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND)); label.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); label.setData("_TABLEITEM", item); label.setText(item.getText()); label.addListener(SWT.MouseExit, labelListener); label.addListener(SWT.MouseDown, labelListener); Point size = tip.computeSize(SWT.DEFAULT, SWT.DEFAULT); Rectangle rect = item.getBounds(0); Point pt = table.toDisplay(rect.x, rect.y); tip.setBounds(pt.x, pt.y, size.x, size.y); tip.setVisible(true); } } } } }; table.addListener(SWT.Dispose, tableListener); table.addListener(SWT.KeyDown, tableListener); table.addListener(SWT.MouseMove, tableListener); table.addListener(SWT.MouseHover, tableListener); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet229.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Custom gradient selection for Table"); shell.setLayout(new FillLayout()); final Table table = new Table(shell, SWT.MULTI | SWT.FULL_SELECTION); table.setHeaderVisible(true);//from ww w.ja v a2s.c o m table.setLinesVisible(true); int columnCount = 3; for (int i = 0; i < columnCount; i++) { TableColumn column = new TableColumn(table, SWT.NONE); column.setText("Column " + i); } int itemCount = 8; for (int i = 0; i < itemCount; i++) { TableItem item = new TableItem(table, SWT.NONE); item.setText(new String[] { "item " + i + " a", "item " + i + " b", "item " + i + " c" }); } /* * NOTE: MeasureItem, PaintItem and EraseItem are called repeatedly. * Therefore, it is critical for performance that these methods be * as efficient as possible. */ table.addListener(SWT.EraseItem, event -> { event.detail &= ~SWT.HOT; if ((event.detail & SWT.SELECTED) != 0) { GC gc = event.gc; Rectangle area = table.getClientArea(); /* * If you wish to paint the selection beyond the end of * last column, you must change the clipping region. */ int columnCount1 = table.getColumnCount(); if (event.index == columnCount1 - 1 || columnCount1 == 0) { int width = area.x + area.width - event.x; if (width > 0) { Region region = new Region(); gc.getClipping(region); region.add(event.x, event.y, width, event.height); gc.setClipping(region); region.dispose(); } } gc.setAdvanced(true); if (gc.getAdvanced()) gc.setAlpha(127); Rectangle rect = event.getBounds(); Color foreground = gc.getForeground(); Color background = gc.getBackground(); gc.setForeground(display.getSystemColor(SWT.COLOR_RED)); gc.setBackground(display.getSystemColor(SWT.COLOR_LIST_BACKGROUND)); gc.fillGradientRectangle(0, rect.y, 500, rect.height, false); // restore colors for subsequent drawing gc.setForeground(foreground); gc.setBackground(background); event.detail &= ~SWT.SELECTED; } }); for (int i = 0; i < columnCount; i++) { table.getColumn(i).pack(); } table.setSelection(table.getItem(0)); shell.setSize(500, 200); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }