similarTo(), compares the display data for two StyleRange objects for equality: the foreground color, the background color, and the font style.
It ignores which portion of the text the StyleRanges correspond to (their start and length fields).
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class CompareStyleRange {
public static void main(String[] args) {
final Display display = new Display();
final Shell shell = new Shell(display);
final StyledText styledText = new StyledText(shell, SWT.V_SCROLL | SWT.BORDER);
styledText.setText("12345");
// Use the empty constructor and set the fields
StyleRange sr1 = new StyleRange();
sr1.start = 7;
sr1.length = 14;
sr1.foreground = display.getSystemColor(SWT.COLOR_GREEN);
sr1.background = display.getSystemColor(SWT.COLOR_WHITE);
sr1.fontStyle = SWT.BOLD;
// Use the constructor that accepts the fields
StyleRange sr2 = new StyleRange(7, 14, display.getSystemColor(SWT.COLOR_GREEN), display
.getSystemColor(SWT.COLOR_WHITE), SWT.BOLD);
System.out.println(sr2.similarTo(sr1));
styledText.setBounds(10, 10, 100, 100);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}