// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.actions;
import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import org.openstreetmap.josm.Main;
import org.openstreetmap.josm.tools.ImageProvider;
import org.openstreetmap.josm.tools.Shortcut;
/**
* This action toggles visibility of dialogs panel and other panels to free more space for drawing (GIMP-like)
* @author cmuelle8
* @since 5965
*/
public class DialogsToggleAction extends ToggleAction {
/**
* Constructs a new {@code DialogsToggleAction}.
*/
public DialogsToggleAction() {
super(tr("Toggle dialogs panel"),
(ImageProvider) null, /* no icon */
tr("Toggle dialogs panel, maximize mapview"),
Shortcut.registerShortcut("menu:view:dialogspanel", tr("Toggle dialogs panel"), KeyEvent.VK_TAB, Shortcut.DIRECT),
true, "dialogspanel", /* register in toolbar */
false
);
putValue("help", ht("/ToggleDialogs"));
setSelected(Main.pref.getBoolean("draw.dialogspanel", true));
notifySelectedState();
}
@Override
public void actionPerformed(ActionEvent e) {
toggleSelectedState(e);
Main.pref.put("draw.dialogspanel", isSelected());
notifySelectedState();
setMode();
}
protected void setMode() {
if (Main.isDisplayingMapView()) {
boolean selected = isSelected();
Main.map.setDialogsPanelVisible(selected);
Main.map.statusLine.setVisible(selected || Main.pref.getBoolean("statusbar.always-visible", true));
Main.main.menu.setVisible(selected || Main.pref.getBoolean("menu.always-visible", true));
// Toolbars listen to preference changes, use it here
if (!Main.pref.getBoolean("toolbar.always-visible", true)) {
Main.pref.put("toolbar.visible", selected);
}
if (!Main.pref.getBoolean("sidetoolbar.always-visible", true)) {
Main.pref.put("sidetoolbar.visible", selected);
}
Main.map.mapView.rememberLastPositionOnScreen();
}
}
}