Class AbstractTextGUIThread
java.lang.Object
com.googlecode.lanterna.gui2.AbstractTextGUIThread
- All Implemented Interfaces:
TextGUIThread
- Direct Known Subclasses:
SameTextGUIThread, SeparateTextGUIThread
Abstract implementation of
TextGUIThread with common logic for both available concrete implementations.-
Nested Class Summary
Nested classes/interfaces inherited from interface TextGUIThread
TextGUIThread.ExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected TextGUIThread.ExceptionHandlerprotected final TextGUI -
Constructor Summary
ConstructorsConstructorDescriptionAbstractTextGUIThread(TextGUI textGUI) Sets up thisAbstractTextGUIThreadfor operations on the suppliesTextGUI -
Method Summary
Modifier and TypeMethodDescriptionvoidinvokeAndWait(Runnable runnable) Schedules custom code to be executed on the GUI thread and waits until the code has been executed before returning.voidinvokeLater(Runnable runnable) Invokes custom code on the GUI thread.booleanMain method to call when you are managing the event/input/update loop yourself.voidsetExceptionHandler(TextGUIThread.ExceptionHandler exceptionHandler) Updates the exception handler used by this TextGUIThread.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface TextGUIThread
getThread
-
Field Details
-
textGUI
-
customTasks
-
exceptionHandler
-
-
Constructor Details
-
AbstractTextGUIThread
Sets up thisAbstractTextGUIThreadfor operations on the suppliesTextGUI- Parameters:
textGUI- Text GUI thisTextGUIThreadimplementations will be operating on
-
-
Method Details
-
invokeLater
Description copied from interface:TextGUIThreadInvokes custom code on the GUI thread. Even if the current thread is the GUI thread, the code will be executed at a later time when the event processing is done.- Specified by:
invokeLaterin interfaceTextGUIThread- Parameters:
runnable- Code to run asynchronously- Throws:
IllegalStateException- If the GUI thread is not running
-
setExceptionHandler
Description copied from interface:TextGUIThreadUpdates the exception handler used by this TextGUIThread. The exception handler will be invoked when an exception occurs in the main event loop. You can then decide how to log this exception and if you want to terminate the thread or not.- Specified by:
setExceptionHandlerin interfaceTextGUIThread- Parameters:
exceptionHandler- Handler to inspect exceptions
-
processEventsAndUpdate
Description copied from interface:TextGUIThreadMain method to call when you are managing the event/input/update loop yourself. This method will run one round through the GUI's event/input queue and update the visuals if required. If the operation did nothing (returningfalse) you could sleep for a millisecond and then try again. If you useSameTextGUIThreadyou must either call this method directly to make the GUI update or use one of the methods onWindowBasedTextGUIthat blocks until a particular window has closed.- Specified by:
processEventsAndUpdatein interfaceTextGUIThread- Returns:
trueif there was anything to process or the GUI was updated, otherwisefalse- Throws:
IOException- If there was an I/O error when processing and updating the GUI
-
invokeAndWait
Description copied from interface:TextGUIThreadSchedules custom code to be executed on the GUI thread and waits until the code has been executed before returning. If this is run on the GUI thread, it will immediately run theRunnableand then return.- Specified by:
invokeAndWaitin interfaceTextGUIThread- Parameters:
runnable- Code to be run and waited for completion before this method returns- Throws:
IllegalStateException- If the GUI thread is not runningInterruptedException- If the caller thread was interrupted while waiting for the task to be executed
-