List of usage examples for org.eclipse.swt.custom StyledText StyledText
public StyledText(Composite parent, int style)
From source file:org.eclipse.swt.snippets.Snippet218.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet 218"); shell.setLayout(new FillLayout()); final StyledText styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setText(text);//from ww w . ja v a 2 s . co m FontData data = display.getSystemFont().getFontData()[0]; Font font = new Font(display, data.getName(), 16, SWT.BOLD); styledText.setFont(font); styledText.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); styledText.addListener(SWT.Resize, event -> { Rectangle rect = styledText.getClientArea(); Image newImage = new Image(display, 1, Math.max(1, rect.height)); GC gc = new GC(newImage); gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE)); gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW)); gc.fillGradientRectangle(rect.x, rect.y, 1, rect.height, true); gc.dispose(); styledText.setBackgroundImage(newImage); if (oldImage != null) oldImage.dispose(); oldImage = newImage; }); shell.setSize(700, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } if (oldImage != null) oldImage.dispose(); font.dispose(); display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet212.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet 212"); shell.setLayout(new GridLayout()); styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); styledText.setText(text);/*from w ww . j a v a 2s . c o m*/ int offset = text.indexOf("\uFFFC", 0); addImage(display.getSystemImage(SWT.ICON_QUESTION), offset); offset = text.indexOf("\uFFFC", offset + 1); addImage(display.getSystemImage(SWT.ICON_INFORMATION), offset); // use a verify listener to dispose the images styledText.addVerifyListener(event -> { if (event.start == event.end) return; String text = styledText.getText(event.start, event.end - 1); int index = text.indexOf('\uFFFC'); while (index != -1) { StyleRange style = styledText.getStyleRangeAtOffset(event.start + index); if (style != null) { Image image = (Image) style.data; if (image != null) image.dispose(); } index = text.indexOf('\uFFFC', index + 1); } }); // draw images on paint event styledText.addPaintObjectListener(event -> { StyleRange style = event.style; Image image = (Image) style.data; if (!image.isDisposed()) { int x = event.x; int y = event.y + event.ascent - style.metrics.ascent; event.gc.drawImage(image, x, y); } }); styledText.addListener(SWT.Dispose, event -> { StyleRange[] styles = styledText.getStyleRanges(); for (int i = 0; i < styles.length; i++) { StyleRange style = styles[i]; if (style.data != null) { Image image = (Image) style.data; if (image != null) image.dispose(); } } }); Button button = new Button(shell, SWT.PUSH); button.setText("Add Image"); button.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false)); button.addListener(SWT.Selection, event -> { FileDialog dialog = new FileDialog(shell); String filename = dialog.open(); if (filename != null) { try { Image image = new Image(display, filename); int offset1 = styledText.getCaretOffset(); styledText.replaceTextRange(offset1, 0, "\uFFFC"); addImage(image, offset1); } catch (Exception e) { e.printStackTrace(); } } }); shell.setSize(400, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet213.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 213"); shell.setLayout(new FillLayout()); StyledText styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setText(text);/*from w w w . j a v a 2 s .c o m*/ styledText.setLineIndent(0, 1, 50); styledText.setLineAlignment(2, 1, SWT.CENTER); styledText.setLineJustify(4, 1, true); styledText.setLineAlignment(6, 1, SWT.RIGHT); styledText.setLineJustify(6, 1, true); shell.setSize(300, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet217.java
public static void main(String[] args) { final Display display = new Display(); Font font = new Font(display, "Tahoma", 16, SWT.NORMAL); final Shell shell = new Shell(display); shell.setText("Snippet 217"); shell.setLayout(new GridLayout()); styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setFont(font);//from w w w .j av a 2 s . c o m styledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); styledText.setText(text); Button button = new Button(styledText, SWT.PUSH); button.setText("Button 1"); int offset = text.indexOf('\uFFFC'); addControl(button, offset); button.setLocation(styledText.getLocationAtOffset(offset)); Combo combo = new Combo(styledText, SWT.NONE); combo.add("item 1"); combo.add("another item"); combo.setText(combo.getItem(0)); offset = text.indexOf('\uFFFC', offset + 1); addControl(combo, offset); combo.setLocation(styledText.getLocationAtOffset(offset)); // use a verify listener to dispose the controls styledText.addVerifyListener(event -> { if (event.start == event.end) return; String text = styledText.getText(event.start, event.end - 1); int index = text.indexOf('\uFFFC'); while (index != -1) { StyleRange style = styledText.getStyleRangeAtOffset(event.start + index); if (style != null) { Control control = (Control) style.data; if (control != null) control.dispose(); } index = text.indexOf('\uFFFC', index + 1); } }); // reposition widgets on paint event styledText.addPaintObjectListener(event -> { Control control = (Control) event.style.data; Point pt = control.getSize(); int x = event.x + MARGIN; int y = event.y + event.ascent - 2 * pt.y / 3; control.setLocation(x, y); }); shell.setSize(400, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } font.dispose(); display.dispose(); }
From source file:StyledTextIndentAlignmentJustify.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); StyledText styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setText(text);/*w w w .jav a2 s. c o m*/ styledText.setLineIndent(0, 1, 50); styledText.setLineAlignment(2, 1, SWT.CENTER); styledText.setLineJustify(4, 1, true); styledText.setLineAlignment(6, 1, SWT.RIGHT); styledText.setLineJustify(6, 1, true); shell.setSize(300, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet257.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 257"); shell.setLayout(new FillLayout()); shell.setSize(100, 300);//from w ww . j a v a 2 s .c o m int style = SWT.MULTI | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; final StyledText text = new StyledText(shell, style); text.setText(string1); final DragSource source = new DragSource(text, DND.DROP_COPY | DND.DROP_MOVE); source.setDragSourceEffect(new DragSourceEffect(text) { @Override public void dragStart(DragSourceEvent event) { event.image = display.getSystemImage(SWT.ICON_WARNING); } }); source.setTransfer(TextTransfer.getInstance()); source.addDragListener(new DragSourceAdapter() { Point selection; @Override public void dragStart(DragSourceEvent event) { selection = text.getSelection(); event.doit = selection.x != selection.y; text.setData(DRAG_START_DATA, selection); } @Override public void dragSetData(DragSourceEvent e) { e.data = text.getText(selection.x, selection.y - 1); } @Override public void dragFinished(DragSourceEvent event) { if (event.detail == DND.DROP_MOVE) { Point newSelection = text.getSelection(); int length = selection.y - selection.x; int delta = 0; if (newSelection.x < selection.x) delta = length; text.replaceTextRange(selection.x + delta, length, ""); } selection = null; text.setData(DRAG_START_DATA, null); } }); DropTarget target = new DropTarget(text, DND.DROP_DEFAULT | DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); target.setTransfer(TextTransfer.getInstance()); target.addDropListener(new DropTargetAdapter() { @Override public void dragEnter(DropTargetEvent event) { if (event.detail == DND.DROP_DEFAULT) { if (text.getData(DRAG_START_DATA) == null) event.detail = DND.DROP_COPY; else event.detail = DND.DROP_MOVE; } } @Override public void dragOperationChanged(DropTargetEvent event) { if (event.detail == DND.DROP_DEFAULT) { if (text.getData(DRAG_START_DATA) == null) event.detail = DND.DROP_COPY; else event.detail = DND.DROP_MOVE; } } @Override public void dragOver(DropTargetEvent event) { event.feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_SELECT; } @Override public void drop(DropTargetEvent event) { if (event.detail != DND.DROP_NONE) { Point selection = (Point) text.getData(DRAG_START_DATA); int insertPos = text.getCaretOffset(); if (event.detail == DND.DROP_MOVE && selection != null && selection.x <= insertPos && insertPos <= selection.y || event.detail == DND.DROP_COPY && selection != null && selection.x < insertPos && insertPos < selection.y) { text.setSelection(selection); event.detail = DND.DROP_COPY; // prevent source from deleting selection } else { String string = (String) event.data; text.insert(string); if (selection != null) text.setSelectionRange(insertPos, string.length()); } } } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:StyledTextGradientBackground.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final StyledText styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setText(text);/* w w w. j av a 2s .c om*/ FontData data = display.getSystemFont().getFontData()[0]; Font font = new Font(display, data.getName(), 16, SWT.BOLD); styledText.setFont(font); styledText.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); styledText.addListener(SWT.Resize, new Listener() { public void handleEvent(Event event) { Rectangle rect = styledText.getClientArea(); Image newImage = new Image(display, 1, Math.max(1, rect.height)); GC gc = new GC(newImage); gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE)); gc.setBackground(display.getSystemColor(SWT.COLOR_YELLOW)); gc.fillGradientRectangle(rect.x, rect.y, 1, rect.height, true); gc.dispose(); styledText.setBackgroundImage(newImage); if (oldImage != null) oldImage.dispose(); oldImage = newImage; } }); shell.setSize(700, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } if (oldImage != null) oldImage.dispose(); font.dispose(); display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet331.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 331"); shell.setLayout(new FillLayout()); StyledText styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setText(text);// ww w . j a v a 2s .co m styledText.setLineIndent(0, 1, 50); styledText.setLineIndent(2, 1, 50); styledText.setLineWrapIndent(2, 1, 50); styledText.setLineWrapIndent(4, 1, 50); StyleRange style = new StyleRange(); style.metrics = new GlyphMetrics(0, 0, 50); Bullet bullet = new Bullet(style); styledText.setLineBullet(6, 1, bullet); styledText.setLineBullet(8, 1, bullet); styledText.setLineWrapIndent(8, 1, 50); shell.setSize(350, 550); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet210.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 210"); shell.setLayout(new FillLayout()); int style = SWT.MULTI | SWT.WRAP | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; final StyledText text1 = new StyledText(shell, style); text1.setText(string1);// w w w . j a v a 2 s . c om DragSource source = new DragSource(text1, DND.DROP_COPY | DND.DROP_MOVE); source.setTransfer(TextTransfer.getInstance()); source.addDragListener(new DragSourceAdapter() { Point selection; @Override public void dragStart(DragSourceEvent e) { selection = text1.getSelection(); e.doit = selection.x != selection.y; } @Override public void dragSetData(DragSourceEvent e) { e.data = text1.getText(selection.x, selection.y - 1); } @Override public void dragFinished(DragSourceEvent e) { if (e.detail == DND.DROP_MOVE) { text1.replaceTextRange(selection.x, selection.y - selection.x, ""); } selection = null; } }); final StyledText text2 = new StyledText(shell, style); text2.setText(string2); DropTarget target = new DropTarget(text2, DND.DROP_DEFAULT | DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK); target.setTransfer(TextTransfer.getInstance()); target.addDropListener(new DropTargetAdapter() { @Override public void dragEnter(DropTargetEvent e) { if (e.detail == DND.DROP_DEFAULT) e.detail = DND.DROP_COPY; } @Override public void dragOperationChanged(DropTargetEvent e) { if (e.detail == DND.DROP_DEFAULT) e.detail = DND.DROP_COPY; } @Override public void drop(DropTargetEvent e) { text2.insert((String) e.data); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:StyledTextEmbebControls.java
public static void main(String[] args) { final Display display = new Display(); Font font = new Font(display, "Tahoma", 32, SWT.NORMAL); final Shell shell = new Shell(display); shell.setLayout(new GridLayout()); styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER); styledText.setFont(font);//w ww .j ava 2s. c o m styledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); styledText.setText(text); controls = new Control[2]; Button button = new Button(styledText, SWT.PUSH); button.setText("Button 1"); controls[0] = button; Combo combo = new Combo(styledText, SWT.NONE); combo.add("item 1"); combo.add("another item"); controls[1] = combo; offsets = new int[controls.length]; int lastOffset = 0; for (int i = 0; i < controls.length; i++) { int offset = text.indexOf("\uFFFC", lastOffset); offsets[i] = offset; addControl(controls[i], offsets[i]); lastOffset = offset + 1; } // use a verify listener to keep the offsets up to date styledText.addVerifyListener(new VerifyListener() { public void verifyText(VerifyEvent e) { int start = e.start; int replaceCharCount = e.end - e.start; int newCharCount = e.text.length(); for (int i = 0; i < offsets.length; i++) { int offset = offsets[i]; if (start <= offset && offset < start + replaceCharCount) { // this widget is being deleted from the text if (controls[i] != null && !controls[i].isDisposed()) { controls[i].dispose(); controls[i] = null; } offset = -1; } if (offset != -1 && offset >= start) offset += newCharCount - replaceCharCount; offsets[i] = offset; } } }); // reposition widgets on paint event styledText.addPaintObjectListener(new PaintObjectListener() { public void paintObject(PaintObjectEvent event) { StyleRange style = event.style; int start = style.start; for (int i = 0; i < offsets.length; i++) { int offset = offsets[i]; if (start == offset) { Point pt = controls[i].getSize(); int x = event.x + MARGIN; int y = event.y + event.ascent - 2 * pt.y / 3; controls[i].setLocation(x, y); break; } } } }); shell.setSize(400, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } font.dispose(); display.dispose(); }