summaryrefslogtreecommitdiff
path: root/src/net/tuschhcm/routercontrol/ui/ConsoleUI.java
blob: 9ac1c810af34b638569c744e367fba8e026f32bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package net.tuschhcm.routercontrol.ui;

import java.util.Scanner;

public class ConsoleUI implements UserInterface {

	private Action mPresetSelectedAction;
	
	private Action mLockSetAction;
	
	private boolean mLocked;
	
	private int mLastPreset;
	
    @Override
    public void addPreset(int number, final String name) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void setPresetSelectionAction(final Action action) {
    	mPresetSelectedAction = action;
    }

    @Override
    public int getSelectedPreset() {
        return mLastPreset;
    }

    @Override
    public void run() {
        
    	Scanner keyboard = new Scanner(System.in);
    	String userInput;
    	boolean running = true;
    	
    	System.out.println("Welcome to Router Control!");
        System.out.println("--------------------------");
        System.out.println("Available commands: \nLock: Locks/unlocks the physical controls" +
        		"on the router\nExit: Exits the application");
        
        do{
        
        	System.out.print("\nEnter a command or preset number: ");
        	userInput = keyboard.next();
        
        
        	if(userInput.equalsIgnoreCase("exit")){
            	//TODO: Implement and call exit method from switcherApp
           
            } else if(userInput.equalsIgnoreCase("lock")){
            	mLocked = !mLocked;
            	mLockSetAction.onAction();
            	if(mLocked){
            		System.out.println("Physical Controls are Locked.");
            	} else {
            		System.out.println("Physical Controls are Unlocked");
            	}
            
            } else {
            	try{
            		mLastPreset = Integer.valueOf(userInput);
            		mPresetSelectedAction.onAction();
            	} catch (final NumberFormatException nfe){
            		System.out.println("ERROR: Invalid Entry");
            	}
            }
        }while(running);
        
       keyboard.close();
    }

    @Override
    public void setToggleControlLockAction(final Action action) {
        mLockSetAction = action;
    }

    @Override
    public boolean getControlLockStatus() {
        return mLocked;
    }

    @Override
    public void setControlLockStatus(boolean enabled) {
        mLocked = enabled;
    }
}