package org.basex.gui;
import javax.swing.AbstractButton;
/**
* This interface defines GUI command methods.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
public interface GUICommand {
/** Separator. */
GUICommand EMPTY = new GUICommand() {
@Override
public void execute(final GUI gui) { }
@Override
public void refresh(final GUI gui, final AbstractButton button) { }
@Override
public boolean checked() { return false; }
@Override
public String label() { return null; }
@Override
public String help() { return null; }
@Override
public String key() { return null; }};
/**
* Executes the command.
* @param gui reference to the main window
*/
void execute(final GUI gui);
/**
* Enables or disables the specified button,
* depending on the command properties.
* @param gui reference to the main window
* @param button button to be modified
*/
void refresh(final GUI gui, final AbstractButton button);
/**
* Tests if this command includes a menu checkbox.
* @return result of check
*/
boolean checked();
/**
* Returns the command label.
* @return command label
*/
String label();
/**
* Returns the command help.
* @return command help
*/
String help();
/**
* Returns the command shortcut.
* @return command shortcut
*/
String key();
}