В плагине eclipse я пытаюсь создать всплывающее окно, которое активируется в редакторе и добавляет синтаксис к строке в зависимости от выбора, выбранного во всплывающем окне. У меня есть класс редактора, который расширяет AbstractTextEditor, и внутри него я пытаюсь использовать keylistener для всплывающего окна, содержащего список функций манипуляции со строками, а затем, когда элемент в списке выбран, я хочу заменить некоторое выбранное содержимое на новая строка возвращается из метода во всплывающем окне. Когда я пытаюсь сделать это (с кодом в 2 связанных файлах), я получаю сообщение об ошибке ниже:
Исключение в потоке "AWT-EventQueue-0" org.eclipse.swt.SWTException:
Неверный доступ к потоку
на org.eclipse.swt.SWT.error (SWT.java:4595)
на org.eclipse.swt.SWT.error (SWT.java:4510)
на org.eclipse.swt.SWT.error (SWT.java:4481)
на org.eclipse.swt.widgets.Widget.error (Widget.java:451)
в org.eclipse.swt.widgets.Widget.checkWidget (Widget.java:369)
в org.eclipse.swt.custom.StyledText.getSelectionRange (StyledText.java:4743)
на githubflavoredmarkdowneclipseplugin.MarkdownEditor.test (MarkdownEditor.java:140)
при автозаполнении. Автозаполнение $ 1.keyPressed (AutoComplete.java:50)
at java.awt.AWTEventMulticaster.keyPressed (Неизвестный источник)
в java.awt.Component.processKeyEvent (Неизвестный источник)
в javax.swing.JComponent.processKeyEvent (Неизвестный источник)
в java.awt.Component.processEvent (Неизвестный источник)
в java.awt.Container.processEvent (Неизвестный источник)
at java.awt.Component.dispatchEventImpl (неизвестный источник)
в java.awt.Container.dispatchEventImpl (Неизвестный источник)
в java.awt.Component.dispatchEvent (Неизвестный источник)
в java.awt.KeyboardFocusManager.redispatchEvent (Неизвестный источник)
в java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent (Неизвестный источник)
в java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent (Неизвестно
Источник)
в java.awt.DefaultKeyboardFocusManager.typeAheadAssertions (Неизвестно
Источник)
в java.awt.DefaultKeyboardFocusManager.dispatchEvent (Неизвестный источник)
at java.awt.Component.dispatchEventImpl (неизвестный источник)
в java.awt.Container.dispatchEventImpl (Неизвестный источник)
в java.awt.Window.dispatchEventImpl (неизвестный источник)
в java.awt.Component.dispatchEvent (Неизвестный источник)
в java.awt.EventQueue.dispatchEventImpl (Неизвестный источник)
на java.awt.EventQueue.access $ 500 (неизвестный источник)
at java.awt.EventQueue $ 3.run (неизвестный источник)
at java.awt.EventQueue $ 3.run (неизвестный источник)
at java.security.AccessController.doPrivileged (собственный метод)
в java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (Неизвестно
Источник)
в java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (Неизвестно
Источник)
at java.awt.EventQueue $ 4.run (неизвестный источник)
at java.awt.EventQueue $ 4.run (неизвестный источник)
at java.security.AccessController.doPrivileged (собственный метод)
в java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (Неизвестно
Источник)
в java.awt.EventQueue.dispatchEvent (Неизвестный источник)
в java.awt.EventDispatchThread.pumpOneEventForFilters (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEventsForFilter (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEventsForHierarchy (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEvents (Неизвестный источник)
в java.awt.EventDispatchThread.pumpEvents (Неизвестный источник)
at java.awt.EventDispatchThread.run (неизвестный источник)
Кажется, что когда класс autoupdate пытается сообщить классу редактора, что изменение было выбрано, он не может манипулировать переменной styledText. Кто-нибудь знает, как это исправить?
Два файла, содержащие этот код, можно просмотреть по следующим ссылкам:
http://www.filedropper.com/markdowneditor
http://www.filedropper.com/autocomplete