/* * Jexer - Java Text User Interface * * The MIT License (MIT) * * Copyright (C) 2019 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * @author Kevin Lamonte [kevin.lamonte@gmail.com] * @version 1 */ package jexer; /** * This class encapsulates a user command event. User commands can be * generated by menu actions, keyboard accelerators, and other UI elements. * Commands can operate on both the application and individual widgets. */ public class TCommand { // ------------------------------------------------------------------------ // Constants -------------------------------------------------------------- // ------------------------------------------------------------------------ /** * Immediately abort the application (e.g. remote side closed * connection). */ public static final int ABORT = 1; /** * File open dialog. */ public static final int OPEN = 2; /** * Exit application. */ public static final int EXIT = 3; /** * Spawn OS shell window. */ public static final int SHELL = 4; /** * Cut selected text and copy to the clipboard. */ public static final int CUT = 5; /** * Copy selected text to clipboard. */ public static final int COPY = 6; /** * Paste from clipboard. */ public static final int PASTE = 7; /** * Clear selected text without copying it to the clipboard. */ public static final int CLEAR = 8; /** * Tile windows. */ public static final int TILE = 9; /** * Cascade windows. */ public static final int CASCADE = 10; /** * Close all windows. */ public static final int CLOSE_ALL = 11; /** * Move (move/resize) window. */ public static final int WINDOW_MOVE = 12; /** * Zoom (maximize/restore) window. */ public static final int WINDOW_ZOOM = 13; /** * Next window (like Alt-TAB). */ public static final int WINDOW_NEXT = 14; /** * Previous window (like Shift-Alt-TAB). */ public static final int WINDOW_PREVIOUS = 15; /** * Close window. */ public static final int WINDOW_CLOSE = 16; /** * Enter help system. */ public static final int HELP = 20; /** * Enter first menu. */ public static final int MENU = 21; /** * Save file. */ public static final int SAVE = 30; /** * Backend disconnected. */ public static final int BACKEND_DISCONNECT = 100; public static final TCommand cmAbort = new TCommand(ABORT); public static final TCommand cmExit = new TCommand(EXIT); public static final TCommand cmQuit = new TCommand(EXIT); public static final TCommand cmOpen = new TCommand(OPEN); public static final TCommand cmShell = new TCommand(SHELL); public static final TCommand cmCut = new TCommand(CUT); public static final TCommand cmCopy = new TCommand(COPY); public static final TCommand cmPaste = new TCommand(PASTE); public static final TCommand cmClear = new TCommand(CLEAR); public static final TCommand cmTile = new TCommand(TILE); public static final TCommand cmCascade = new TCommand(CASCADE); public static final TCommand cmCloseAll = new TCommand(CLOSE_ALL); public static final TCommand cmWindowMove = new TCommand(WINDOW_MOVE); public static final TCommand cmWindowZoom = new TCommand(WINDOW_ZOOM); public static final TCommand cmWindowNext = new TCommand(WINDOW_NEXT); public static final TCommand cmWindowPrevious = new TCommand(WINDOW_PREVIOUS); public static final TCommand cmWindowClose = new TCommand(WINDOW_CLOSE); public static final TCommand cmHelp = new TCommand(HELP); public static final TCommand cmSave = new TCommand(SAVE); public static final TCommand cmMenu = new TCommand(MENU); public static final TCommand cmBackendDisconnect = new TCommand(BACKEND_DISCONNECT); // ------------------------------------------------------------------------ // Variables -------------------------------------------------------------- // ------------------------------------------------------------------------ /** * Type of command, one of EXIT, CASCADE, etc. */ private int type; // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- // ------------------------------------------------------------------------ /** * Public constructor. * * @param type the Type of command, one of EXIT, CASCADE, etc. */ public TCommand(final int type) { this.type = type; } // ------------------------------------------------------------------------ // TCommand --------------------------------------------------------------- // ------------------------------------------------------------------------ /** * Make human-readable description of this TCommand. * * @return displayable String */ @Override public final String toString() { return String.format("%s", type); } /** * Comparison check. All fields must match to return true. * * @param rhs another TCommand instance * @return true if all fields are equal */ @Override public final boolean equals(final Object rhs) { if (!(rhs instanceof TCommand)) { return false; } TCommand that = (TCommand) rhs; return (type == that.type); } /** * Hashcode uses all fields in equals(). * * @return the hash */ @Override public int hashCode() { return type; } }