I didn't think they were that important, really.
Change-Id: I3b9d2aa76702b764d95bce2cccc0e6a56856b4c9
Reviewed-on: http://gerrit.dmdirc.com/3468
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
Pass FrameContainer their parents when constructed
There's no reason for the parent to ever change, and this simplifies
a lot of things going forward.
Change-Id: I0dc9f767840ce0989739ea28f08254c78ef0d565
Depends-On: I3c0dc4b6cf42b5c6b69a499ac11195271c0aa846
Reviewed-on: http://gerrit.dmdirc.com/3466
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
The core shouldn't randomly default them to black - shunt that
down to the UIs instead.
Change-Id: I50a19086bab32a35fee535c8500a1636ff82b959
Depends-On: Ic17b9ff399a25e1b91bd1ce91d6d7071ba44ecb2
Reviewed-on: http://gerrit.dmdirc.com/3462
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Where commands are executed globally, pass in a GlobalWindow.
Make the GlobalWindow a singleton that persists, and is simply
added/removed from the WindowManager when the user wants to
show/hide it.
Change-Id: Iac94848487442509bdbf8ec98f67983e313ed743
Reviewed-on: http://gerrit.dmdirc.com/3451
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Add a way to get a FrameContainer from Connection.
At the moment Server is both a FrameContainer and a Connection, and
in most places we have to cast up to Server to do what we need to.
This adds a method to Connection to retrieve the associated
FrameContainer. Eventually they should be separate objects, with
the Connection implementation managing the parser and associated
state, and the FrameContainer modelling the window (providing
tab completers, line history, input handlers, etc).
Change-Id: I56c9a2bb9ad06e9e3ad911914b29a046959e30ea
Reviewed-on: http://gerrit.dmdirc.com/3431
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Move the functionality down into just FrameContainer. Callers can use
isWritable() to determine if the FrameContainer is writable, instead
of horrible instanceof/casting logic.
Change-Id: Iab58f1d2b9275ee3fc60d79e433e158bae784911
Depends-On: I52a09d5f5ad69c2bebafa58582a173f706515fa6
Reviewed-on: http://gerrit.dmdirc.com/3426
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Common methods from GroupChat pushed down into Chat.
Change-Id: I57a6edc40ec9628dec4d0734989917ae379eff19
Reviewed-on: http://gerrit.dmdirc.com/3423
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
There's no sane reason for this to be an abstract method - instead
just create the tab completer and pass it up to WritableFrameContainer.
Change-Id: Ifa80de021c22d2e302d4b66514923cd08c91cac4
Depends-On: I15ab9677fdbcb510ab87a69a07ce8ecb3a994f7f
Reviewed-on: http://gerrit.dmdirc.com/3422
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Pass in a ScheduledExecutorService and use it for who timers and
reconnect timers.
Only run the who timer when we're connected, not the whole time.
This stops the Server ctor starting a timer.
Change-Id: Iea92d7046f33eda7666b8a2b739374345e8ea20d
Reviewed-on: http://gerrit.dmdirc.com/3419
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Instead of returning either null or a topic, use Optional<>.
Change-Id: I9e8723fe0fe2b9209a401d33361f80fb832b9434
Depends-On: If0a0609ab778df22c02b8dc1d349da45b4b5b16f
Reviewed-on: http://gerrit.dmdirc.com/3415
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Rename confusing method name and add correctly functioning one.
This fixes portable mode when running from a jar only.
Change-Id: I8272e2ff2fe1c6d88d6f6c41c859eb2d2124e04c
Issue: CLIENT-496
Reviewed-on: http://gerrit.dmdirc.com/3401
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>