package org.reldb.dbrowser.ui.content.cmd;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.ToolItem;
import org.reldb.dbrowser.ui.ManagedToolbar;
public class CmdPanelToolbar extends ManagedToolbar {
private ToolItem clearOutputBtn;
private ToolItem saveOutputAsHTMLBtn;
private ToolItem saveOutputAsTextBtn;
private ToolItem enhancedOutputToggle;
private ToolItem showOkToggle;
private ToolItem autoclearToggle;
private ToolItem headingToggle;
private ToolItem headingTypesToggle;
public CmdPanelToolbar(Composite parent, CmdPanelOutput cmdPanel) {
super(parent);
addAdditionalItemsBefore(this);
clearOutputBtn = addItem("Clear", "clearIcon", SWT.PUSH);
clearOutputBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.clearOutput();
}
});
saveOutputAsHTMLBtn = addItem("Save as HTML", "saveHTMLIcon", SWT.PUSH);
saveOutputAsHTMLBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.saveOutputAsHtml();
}
});
saveOutputAsTextBtn = addItem("Save as text", "saveTextIcon", SWT.PUSH);
saveOutputAsTextBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.saveOutputAsText();
}
});
addSeparator();
enhancedOutputToggle = addItem("Display enhanced output", "enhancedIcon", SWT.CHECK);
enhancedOutputToggle.setSelection(cmdPanel.getEnhancedOutput());
enhancedOutputToggle.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.setEnhancedOutput(enhancedOutputToggle.getSelection());
headingToggle.setEnabled(enhancedOutputToggle.getSelection());
headingToggle.setSelection(headingToggle.getEnabled()
&& cmdPanel.getHeadingVisible());
headingTypesToggle.setEnabled(enhancedOutputToggle
.getSelection());
headingTypesToggle.setSelection(headingTypesToggle.getEnabled()
&& cmdPanel.getHeadingTypesVisible());
}
});
showOkToggle = addItem("Write 'Ok.' after execution", "showOkIcon", SWT.CHECK);
showOkToggle.setSelection(cmdPanel.getShowOk());
showOkToggle.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.setShowOk(showOkToggle.getSelection());
}
});
autoclearToggle = addItem("Automatically clear output", "autoclearIcon", SWT.CHECK);
autoclearToggle.setSelection(cmdPanel.getAutoclear());
autoclearToggle.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.setAutoclear(autoclearToggle.getSelection());
}
});
headingToggle = addItem("Show relation headings", "headingIcon", SWT.CHECK);
headingToggle.setEnabled(enhancedOutputToggle.getSelection());
headingToggle.setSelection(cmdPanel.getHeadingVisible()
&& headingToggle.getEnabled());
headingToggle.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
headingTypesToggle.setEnabled(headingToggle.getSelection());
headingTypesToggle.setSelection(headingTypesToggle.getEnabled()
&& cmdPanel.getHeadingTypesVisible());
cmdPanel.setHeadingVisible(headingToggle.getSelection());
}
});
headingTypesToggle = addItem("Suppress attribute types in relation headings", "typeSuppressIcon", SWT.CHECK);
headingTypesToggle.setEnabled(headingToggle.getSelection()
&& enhancedOutputToggle.getSelection());
headingTypesToggle.setSelection(cmdPanel.getHeadingTypesVisible()
&& headingTypesToggle.getEnabled());
headingTypesToggle.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
cmdPanel.setHeadingTypesVisible(headingTypesToggle
.getSelection());
}
});
addAdditionalItemsAfter(this);
}
/** Override to add additional toolbar items before the default items. */
protected void addAdditionalItemsBefore(CmdPanelToolbar toolbar) {}
/** Override to add additional toolbar items after the default items. */
protected void addAdditionalItemsAfter(CmdPanelToolbar toolbar) {}
}