package jetbrains.mps.lang.editor.diagram.runtime.jetpad.palette.ui;
/*Generated by MPS */
import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl;
import org.jetbrains.annotations.NotNull;
import com.intellij.openapi.actionSystem.ActionGroup;
import com.intellij.ide.DataManager;
import com.intellij.openapi.actionSystem.ex.ActionManagerEx;
import com.intellij.openapi.keymap.ex.KeymapManagerEx;
import com.intellij.openapi.actionSystem.impl.ActionButton;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.ex.ActionButtonLook;
import com.intellij.openapi.actionSystem.Presentation;
import java.awt.Dimension;
import com.intellij.openapi.actionSystem.DataContext;
import java.awt.event.MouseEvent;
/*package*/ class DiagramPaletteActionToolbar extends ActionToolbarImpl {
public DiagramPaletteActionToolbar(String place, @NotNull ActionGroup actionGroup, boolean horizontal, DataManager dataManager, ActionManagerEx actionManager, KeymapManagerEx keymapManager) {
super(place, actionGroup, horizontal, dataManager, actionManager, keymapManager);
}
@Override
public ActionButton createToolbarButton(AnAction action, ActionButtonLook look, String place, Presentation presentation, Dimension minimumSize) {
if (action.displayTextInToolbar()) {
return super.createToolbarButton(action, look, place, presentation, minimumSize);
}
ActionButton button = new ActionButton(action, presentation, place, minimumSize) {
@Override
protected DataContext getDataContext() {
return getToolbarDataContext();
}
@Override
protected void processMouseEvent(MouseEvent event) {
if (event.getID() == MouseEvent.MOUSE_RELEASED) {
updateChildren();
}
super.processMouseEvent(event);
if (event.getID() == MouseEvent.MOUSE_RELEASED) {
removeChildren();
}
}
@Override
public void click() {
updateChildren();
super.click();
removeChildren();
}
private void updateChildren() {
if (myAction instanceof PopupPaletteActionGroupAdapter) {
((PopupPaletteActionGroupAdapter) myAction).updateChildren();
}
}
private void removeChildren() {
if (myAction instanceof PopupPaletteActionGroupAdapter) {
((PopupPaletteActionGroupAdapter) myAction).removeChildren();
}
}
};
button.setLook(look);
return button;
}
}