File tree Expand file tree Collapse file tree 2 files changed +27
-11
lines changed Expand file tree Collapse file tree 2 files changed +27
-11
lines changed Original file line number Diff line number Diff line change 1
1
module .exports =
2
2
class FastForwardView
3
- constructor : (serializedState ) ->
3
+ constructor : (serializedState , emitter ) ->
4
+ # Set Emitter field variable.
5
+ @emitter = emitter
6
+
4
7
# Create root element
5
8
@element = document .createElement (' div' )
6
9
@element .classList .add (' fast-forward' )
7
10
8
- # Create message element
9
- message = document .createElement (' div' )
10
- message .textContent = " The FastForward package is Alive! It's ALIVE!"
11
- message .classList .add (' message' )
12
- @element .appendChild (message)
11
+ # Create button element
12
+ @button = document .createElement (' button' )
13
+ @button .textContent = " Toggle Fast Forward"
14
+ @button .classList .add (' btn-primary' )
15
+ @button .classList .add (' btn' )
16
+
17
+ # Event listening for button. Emits event to the FastForward module.
18
+ @button .addEventListener (' click' , () =>
19
+ @emitter .emit (' toggle-button-event' )
20
+ )
21
+ @element .appendChild (@button )
13
22
14
23
# Returns an object that can be retrieved when package is activated
15
24
serialize : ->
16
25
17
26
# Tear down any state and detach
18
27
destroy : ->
28
+ @button .removeEventListener (' click' , 0 )
19
29
@element .remove ()
20
30
21
31
getElement : ->
Original file line number Diff line number Diff line change 1
1
FastForwardView = require ' ./fast-forward-view'
2
- {CompositeDisposable } = require ' atom'
2
+ {CompositeDisposable , Emitter } = require ' atom'
3
3
4
4
module .exports = FastForward =
5
5
fastForwardView : null
6
6
modalPanel : null
7
7
subscriptions : null
8
+ emitter : null
8
9
9
10
activate : (state ) ->
10
- @fastForwardView = new FastForwardView (state .fastForwardViewState )
11
+ # Construct Emitter, then pass Emitter into construct fastForwardView.
12
+ @emitter = new Emitter ()
13
+ @fastForwardView = new FastForwardView (state .fastForwardViewState , @emitter )
14
+
11
15
# Create a panel for the plugin, visible by default
12
16
@modalPanel = atom .workspace .addRightPanel (item : @fastForwardView .getElement (), visible : true )
13
17
14
18
# Events subscribed to in atom's system can be easily cleaned up with a CompositeDisposable
15
- @subscriptions = new CompositeDisposable
19
+ @subscriptions = new CompositeDisposable ()
16
20
17
21
# Register command that toggles this view
18
- @subscriptions .add atom .commands .add ' atom-workspace' , ' fast-forward:toggle ' : => @ toggle ()
22
+ @subscriptions .add (atom .commands .add (' atom-workspace' , {' fast-forward:toggle' : () => @ toggle ()}))
23
+
24
+ @emitter .on ' toggle-button-event' , => @ toggle ()
19
25
20
26
deactivate : ->
21
27
@modalPanel .destroy ()
22
28
@subscriptions .dispose ()
29
+ @emitter .dispose ()
23
30
@fastForwardView .destroy ()
24
31
25
32
serialize : ->
26
33
fastForwardViewState : @fastForwardView .serialize ()
27
34
28
35
toggle : ->
29
36
console .log ' FastForward was toggled!'
30
-
31
37
if @modalPanel .isVisible ()
32
38
@modalPanel .hide ()
33
39
else
You can’t perform that action at this time.
0 commit comments