package org.basex.gui;
import javax.swing.*;
import org.basex.gui.layout.*;
/**
* This is the toolbar of the main window.
* The toolbar contents are defined in {@link GUIConstants#TOOLBAR}.
*
* @author BaseX Team 2005-17, BSD License
* @author Christian Gruen
*/
final class GUIToolBar extends JToolBar {
/** Toolbar commands. */
private final GUICommand[] commands;
/** Reference to main window. */
private final GUI gui;
/**
* Default constructor.
* @param commands toolbar commands
* @param gui reference to the main window
*/
GUIToolBar(final GUICommand[] commands, final GUI gui) {
setFloatable(false);
this.commands = commands;
this.gui = gui;
for(final GUICommand c : commands) {
if(c == null) {
addSeparator();
} else {
final AbstractButton button = BaseXButton.command(c, gui);
button.setFocusable(false);
add(button);
}
}
}
/**
* Refreshes the buttons.
*/
void refresh() {
final int cl = commands.length;
for(int c = 0; c < cl; ++c) {
final GUICommand cmd = commands[c];
if(cmd != null) {
final AbstractButton button = (AbstractButton) getComponent(c);
button.setEnabled(cmd.enabled(gui));
button.setSelected(cmd.selected(gui));
}
}
}
}