private void init() { control.addListener(SWT.Paint, this); control.addListener(SWT.Dispose, this); final Display display = Display.getCurrent(); visitor = new ISpellCheckerVisitor() { public void handleWith(SpellChecker spellChecker) { if (control == null || control.isDisposed() || disposed) return; SpellingHelper.this.spellChecker = spellChecker; check(display); } }; SpellCheckerAgent.visitSpellChecker(visitor); SpellCheckerAgent.addListener(visitor); }
/** @param range */ private void addToDict(final Display display, final SpellCheckEvent range) { SpellCheckerAgent.visitSpellChecker( new ISpellCheckerVisitor() { // This listener is just to get value from a long time delay. public void handleWith(SpellChecker spellChecker) { if (!isActive()) return; spellChecker.addToDictionary(range.getInvalidWord()); check(display); } }); }
private void deactivate() { SpellCheckerAgent.removeListener(visitor); if (viewer != null) { viewer.removeTextListener(this); viewer = null; } if (control != null && !control.isDisposed()) { control.removeListener(SWT.Modify, this); control.removeListener(SWT.Paint, this); control.removeListener(SWT.Dispose, this); redraw(control.getDisplay()); control = null; } if (job != null) { job.dispose(); job = null; } ranges.clear(); }