/** Disposes of the operating system resources associated with the widget. */ public void dispose() { textWidget.dispose(); provider.setWidget(null); provider = null; textWidget = null; disposed = true; }
/** * @param inIsFormStyle boolean <code>true</code> if the widget is on a form, <code>false</code> * if it is on the inspector part. */ public void setFormStyle(final boolean inIsFormStyle) { provider.setFormStyle(inIsFormStyle); }
private void initialize(final Composite inContainer) { textWidget = new StyledText( inContainer, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL); content = new TextContent(); textWidget.setContent(content); textWidget.setLayout(new GridLayout(1, true)); textWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); textWidget.addExtendedModifyListener( new ExtendedModifyListener() { @Override public void modifyText(final ExtendedModifyEvent inEvent) { if (textWidget.getCharCount() == 0) return; final StyleRange lRange = textWidget.getStyleRangeAtOffset(Math.max(inEvent.start - 1, 0)); if (lRange != null) { final StyleRange lNew = new StyleRange( lRange.start, lRange.length + inEvent.length, lRange.foreground, lRange.background, lRange.fontStyle); textWidget.replaceStyleRanges(lNew.start, lNew.length, new StyleRange[] {lNew}); } final int lEndPos = inEvent.start + inEvent.length; if (lEndPos - textWidget.getOffsetAtLine(textWidget.getLineAtOffset(lEndPos)) == 0) { final int lLineIndex = textWidget.getLineAtOffset(inEvent.start); if (lLineIndex + 2 > textWidget.getLineCount()) return; // a new line has been entered, therefore, check whether we // have to continue a list final Bullet lBullet = textWidget.getLineBullet(lLineIndex); textWidget.setLineBullet(lLineIndex + 1, 1, lBullet); } } }); textWidget.addPaintObjectListener(Styles.getPaintObjectListener(textWidget)); textWidget.addVerifyKeyListener( new VerifyKeyListener() { @Override public void verifyKey(final VerifyEvent inEvent) { if (inEvent.keyCode == 9) { // TAB keyCode final StyledText lWidget = (StyledText) inEvent.getSource(); if (consumeTabKey(lWidget)) { inEvent.doit = false; final TextStyler lStyler = new TextStyler(lWidget); if ((inEvent.stateMask & SWT.SHIFT) != 0) { lStyler.dedentLines(); provider.notifyPositionChange(lWidget.getCaretOffset()); } else { lStyler.indentLines(); } } } } }); textWidget.addTraverseListener( new TraverseListener() { @Override public void keyTraversed(final TraverseEvent inEvent) { if (inEvent.detail == SWT.TRAVERSE_TAB_PREVIOUS && consumeTabKey((StyledText) inEvent.getSource())) { inEvent.doit = false; } } }); textWidget.addMouseListener( new MouseAdapter() { @Override public void mouseDown(final MouseEvent inEvent) { provider.notifyPositionChange(textWidget.getCaretOffset()); } }); textWidget.addKeyListener( new KeyAdapter() { @Override public void keyReleased(final KeyEvent inEvent) { provider.notifyPositionChange(textWidget.getCaretOffset()); } }); provider = ContextInjectionFactory.make(TextStyleProvider.class, context); provider.setWidget(textWidget); // font handling if (fontSizeToUse != 0) { trackFontSize(fontSizeToUse); } disposed = false; }