package main;
import java.util.List;
import com.sun.jna.platform.win32.WinDef.HWND;
import gui.views.MainWindow;
import main.utils.WindowsUtils;
/**
* Interprets non-hexadecimal strings coming from the standard input.
*
* @author Maxime PIA
*/
public class CommandInterpreter {
private MainWindow mainWindow;
public CommandInterpreter(MainWindow mainWindow) {
this.mainWindow = mainWindow;
}
/**
* Executes a command.
* TODO: list possible commands and arguments
*
* @param input
* A command without its colon at the beginning
* @return True if the command requests the program to exit.
*/
public boolean isExitAndExecute(String input) {
String[] args = input.split(" ");
String cmd = args[0];
if (cmd.equals("exit")) {
return true;
} else if (cmd.equals("focus")) {
synchronized(mainWindow) {
mainWindow.setVisible(true);
mainWindow.toFront();
}
} else if (cmd.equals("hide")) {
List<HWND> windowsToHide = WindowsUtils.findByTitle(args[1]);
for (HWND window : windowsToHide) {
WindowsUtils.setVisible(window, false);
}
}
return false;
}
}