/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ebixio.virtmus.actions;
import com.ebixio.virtmus.MainApp;
import com.ebixio.virtmus.options.Options;
import java.awt.Component;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
import org.openide.awt.DropDownButtonFactory;
import org.openide.util.HelpCtx;
import org.openide.util.ImageUtilities;
import org.openide.util.NbBundle;
import org.openide.util.NbPreferences;
import org.openide.util.actions.CallableSystemAction;
public class ScrollAmountAction extends CallableSystemAction {
private static JButton button;
private static ButtonGroup buttonGroup;
private static JPopupMenu popup;
private MyMenuItemListener menuItemListener;
@Override
public void performAction() {
// java.awt.EventQueue.invokeLater(new Runnable() {
// @Override
// public void run() {
// throw new UnsupportedOperationException("ScrollAmountAction not supported yet.");
// }
// });
}
@Override
public String getName() {
return NbBundle.getMessage(ScrollAmountAction.class, "CTL_ScrollAmountAction");
}
@Override
public HelpCtx getHelpCtx() {
return HelpCtx.DEFAULT_HELP;
}
@Override
protected boolean asynchronous() {
return false;
}
@Override
public Component getToolbarPresenter() {
Image iconImage = ImageUtilities.loadImage(
"com/ebixio/virtmus/resources/ScrollAmountAction24.png", false);
ImageIcon icon = new ImageIcon(iconImage);
popup = new JPopupMenu();
button = DropDownButtonFactory.createDropDownButton(icon, popup);
//button.setIcon(icon);
button.setToolTipText(getName());
menuItemListener = new MyMenuItemListener();
String[] txt = new String[]{"50%", "100%"};
buttonGroup = new ButtonGroup();
for (String s : txt) {
JRadioButtonMenuItem item =
new JRadioButtonMenuItem(s);
item.addActionListener(menuItemListener);
buttonGroup.add(item);
popup.add(item);
}
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
popup.show(button, 0, button.getHeight());
}
});
popup.addPopupMenuListener(new PopupMenuListener() {
@Override
public void popupMenuCanceled(PopupMenuEvent e) {
button.setSelected(false);
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
button.setSelected(false);
}
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
button.setSelected(true);
}
});
return button;
}
private class MyMenuItemListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent ev) {
JMenuItem item = (JMenuItem)ev.getSource();
String selectedStr = item.getText();
if (selectedStr.equals("50%")) {
NbPreferences.forModule(MainApp.class).put(Options.OptPageScrollAmount, "50.0" );
} else if (selectedStr.equals("100%")) {
NbPreferences.forModule(MainApp.class).put(Options.OptPageScrollAmount, "100.0" );
}
}
}
}