use of java.awt.event.MouseWheelListener in project graphhopper by graphhopper.
the class MiniGraphUI method visualize.
public void visualize() {
try {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
int frameHeight = 800;
int frameWidth = 1200;
JFrame frame = new JFrame("GraphHopper UI - Small&Ugly ;)");
frame.setLayout(new BorderLayout());
frame.add(mainPanel, BorderLayout.CENTER);
frame.add(infoPanel, BorderLayout.NORTH);
infoPanel.setPreferredSize(new Dimension(300, 100));
// scale
mainPanel.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
mg.scale(e.getX(), e.getY(), e.getWheelRotation() < 0);
repaintRoads();
}
});
// listener to investigate findID behavior
// MouseAdapter ml = new MouseAdapter() {
//
// @Override public void mouseClicked(MouseEvent e) {
// findIDLat = mg.getLat(e.getY());
// findIDLon = mg.getLon(e.getX());
// findIdLayer.repaint();
// mainPanel.repaint();
// }
//
// @Override public void mouseMoved(MouseEvent e) {
// updateLatLon(e);
// }
//
// @Override public void mousePressed(MouseEvent e) {
// updateLatLon(e);
// }
// };
MouseAdapter ml = new MouseAdapter() {
// for routing:
double fromLat, fromLon;
boolean fromDone = false;
boolean dragging = false;
@Override
public void mouseClicked(MouseEvent e) {
if (!fromDone) {
fromLat = mg.getLat(e.getY());
fromLon = mg.getLon(e.getX());
} else {
double toLat = mg.getLat(e.getY());
double toLon = mg.getLon(e.getX());
StopWatch sw = new StopWatch().start();
logger.info("start searching from " + fromLat + "," + fromLon + " to " + toLat + "," + toLon);
// get from and to node id
fromRes = index.findClosest(fromLat, fromLon, EdgeFilter.ALL_EDGES);
toRes = index.findClosest(toLat, toLon, EdgeFilter.ALL_EDGES);
logger.info("found ids " + fromRes + " -> " + toRes + " in " + sw.stop().getSeconds() + "s");
repaintPaths();
}
fromDone = !fromDone;
}
@Override
public void mouseDragged(MouseEvent e) {
dragging = true;
fastPaint = true;
update(e);
updateLatLon(e);
}
@Override
public void mouseReleased(MouseEvent e) {
if (dragging) {
// update only if mouse release comes from dragging! (at the moment equal to fastPaint)
dragging = false;
fastPaint = false;
update(e);
}
}
public void update(MouseEvent e) {
mg.setNewOffset(e.getX() - currentPosX, e.getY() - currentPosY);
repaintRoads();
}
@Override
public void mouseMoved(MouseEvent e) {
updateLatLon(e);
}
@Override
public void mousePressed(MouseEvent e) {
updateLatLon(e);
}
};
mainPanel.addMouseListener(ml);
mainPanel.addMouseMotionListener(ml);
// just for fun
// mainPanel.getInputMap().put(KeyStroke.getKeyStroke("DELETE"), "removedNodes");
// mainPanel.getActionMap().put("removedNodes", new AbstractAction() {
// @Override public void actionPerformed(ActionEvent e) {
// int counter = 0;
// for (CoordTrig<Long> coord : quadTreeNodes) {
// int ret = quadTree.remove(coord.lat, coord.lon);
// if (ret < 1) {
//// logger.info("cannot remove " + coord + " " + ret);
//// ret = quadTree.remove(coord.getLatitude(), coord.getLongitude());
// } else
// counter += ret;
// }
// logger.info("Removed " + counter + " of " + quadTreeNodes.size() + " nodes");
// }
// });
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(frameWidth + 10, frameHeight + 30);
frame.setVisible(true);
}
});
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
use of java.awt.event.MouseWheelListener in project intellij-community by JetBrains.
the class JBScrollPane method setUI.
@Override
public void setUI(ScrollPaneUI ui) {
super.setUI(ui);
updateViewportBorder();
if (ui instanceof BasicScrollPaneUI) {
try {
Field field = BasicScrollPaneUI.class.getDeclaredField("mouseScrollListener");
field.setAccessible(true);
Object value = field.get(ui);
if (value instanceof MouseWheelListener) {
MouseWheelListener oldListener = (MouseWheelListener) value;
MouseWheelListener newListener = event -> {
if (isScrollEvent(event)) {
Object source = event.getSource();
if (source instanceof JScrollPane) {
JScrollPane pane = (JScrollPane) source;
if (pane.isWheelScrollingEnabled()) {
JScrollBar bar = event.isShiftDown() ? pane.getHorizontalScrollBar() : pane.getVerticalScrollBar();
if (bar != null && bar.isVisible()) {
if (!(bar instanceof JBScrollBar && ((JBScrollBar) bar).handleMouseWheelEvent(event))) {
oldListener.mouseWheelMoved(event);
}
}
}
}
}
};
field.set(ui, newListener);
// replace listener if field updated successfully
removeMouseWheelListener(oldListener);
addMouseWheelListener(newListener);
}
} catch (Exception exception) {
LOG.warn(exception);
}
}
}
use of java.awt.event.MouseWheelListener in project JMRI by JMRI.
the class ControlPanel method initGUI.
/**
* Create, initialize and place GUI components.
*/
private void initGUI() {
mainPanel = new JPanel();
this.setContentPane(mainPanel);
mainPanel.setLayout(new BorderLayout());
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
speedControlPanel = new JPanel();
speedControlPanel.setLayout(new BoxLayout(speedControlPanel, BoxLayout.X_AXIS));
speedControlPanel.setOpaque(false);
mainPanel.add(speedControlPanel, BorderLayout.CENTER);
sliderPanel = new JPanel();
sliderPanel.setLayout(new GridBagLayout());
sliderPanel.setOpaque(false);
speedSlider = new JSlider(0, intSpeedSteps);
speedSlider.setOpaque(false);
speedSlider.setValue(0);
speedSlider.setFocusable(false);
// add mouse-wheel support
speedSlider.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.getWheelRotation() > 0) {
for (int i = 0; i < e.getScrollAmount(); i++) {
decelerate1();
}
} else {
for (int i = 0; i < e.getScrollAmount(); i++) {
accelerate1();
}
}
}
});
speedSliderContinuous = new JSlider(-intSpeedSteps, intSpeedSteps);
speedSliderContinuous.setValue(0);
speedSliderContinuous.setOpaque(false);
speedSliderContinuous.setFocusable(false);
// add mouse-wheel support
speedSliderContinuous.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.getWheelRotation() > 0) {
for (int i = 0; i < e.getScrollAmount(); i++) {
decelerate1();
}
} else {
for (int i = 0; i < e.getScrollAmount(); i++) {
accelerate1();
}
}
}
});
speedSpinner = new JSpinner();
speedSpinnerModel = new SpinnerNumberModel(0, 0, intSpeedSteps, 1);
speedSpinner.setModel(speedSpinnerModel);
speedSpinner.setFocusable(false);
SpeedStep128Button = new JRadioButton(Bundle.getMessage("Button128SS"));
SpeedStep28Button = new JRadioButton(Bundle.getMessage("Button28SS"));
SpeedStep27Button = new JRadioButton(Bundle.getMessage("Button27SS"));
SpeedStep14Button = new JRadioButton(Bundle.getMessage("Button14SS"));
forwardButton = new JRadioButton();
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
forwardButton.setBorderPainted(false);
forwardButton.setContentAreaFilled(false);
forwardButton.setText(null);
forwardButton.setIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/up-red.png")));
forwardButton.setSelectedIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/up-green.png")));
forwardButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
forwardButton.setToolTipText(Bundle.getMessage("ButtonForward"));
} else {
forwardButton.setText(Bundle.getMessage("ButtonForward"));
}
reverseButton = new JRadioButton();
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
reverseButton.setBorderPainted(false);
reverseButton.setContentAreaFilled(false);
reverseButton.setText(null);
reverseButton.setIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/down-red.png")));
reverseButton.setSelectedIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/down-green.png")));
reverseButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
reverseButton.setToolTipText(Bundle.getMessage("ButtonReverse"));
} else {
reverseButton.setText(Bundle.getMessage("ButtonReverse"));
}
propertiesPopup = new JPopupMenu();
GridBagConstraints constraints = new GridBagConstraints();
constraints.anchor = GridBagConstraints.CENTER;
constraints.fill = GridBagConstraints.BOTH;
constraints.gridheight = 1;
constraints.gridwidth = 1;
constraints.ipadx = 0;
constraints.ipady = 0;
Insets insets = new Insets(2, 2, 2, 2);
constraints.insets = insets;
constraints.weightx = 1;
constraints.weighty = 1;
constraints.gridx = 0;
constraints.gridy = 0;
sliderPanel.add(speedSlider, constraints);
//this.getContentPane().add(sliderPanel,BorderLayout.CENTER);
speedControlPanel.add(sliderPanel);
speedSlider.setOrientation(JSlider.VERTICAL);
speedSlider.setMajorTickSpacing(maxSpeed / 2);
java.util.Hashtable<Integer, JLabel> labelTable = new java.util.Hashtable<Integer, JLabel>();
labelTable.put(Integer.valueOf(maxSpeed / 2), new JLabel("50%"));
labelTable.put(Integer.valueOf(maxSpeed), new JLabel("100%"));
labelTable.put(Integer.valueOf(0), new JLabel(Bundle.getMessage("LabelStop")));
speedSlider.setLabelTable(labelTable);
speedSlider.setPaintTicks(true);
speedSlider.setPaintLabels(true);
// remove old actions
speedSlider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (!internalAdjust) {
boolean doIt = false;
if (!speedSlider.getValueIsAdjusting()) {
doIt = true;
lastTrackedSliderMovementTime = System.currentTimeMillis() - trackSliderMinInterval;
} else if (trackSlider && System.currentTimeMillis() - lastTrackedSliderMovementTime >= trackSliderMinInterval) {
doIt = true;
lastTrackedSliderMovementTime = System.currentTimeMillis();
}
if (doIt) {
float newSpeed = (speedSlider.getValue() / (intSpeedSteps * 1.0f));
if (log.isDebugEnabled()) {
log.debug("stateChanged: slider pos: " + speedSlider.getValue() + " speed: " + newSpeed);
}
if (sliderPanel.isVisible() && throttle != null) {
throttle.setSpeedSetting(newSpeed);
}
if (speedSpinner != null) {
speedSpinnerModel.setValue(Integer.valueOf(speedSlider.getValue()));
}
if (speedSliderContinuous != null) {
if (forwardButton.isSelected()) {
speedSliderContinuous.setValue(((Integer) speedSlider.getValue()).intValue());
} else {
speedSliderContinuous.setValue(-((Integer) speedSlider.getValue()).intValue());
}
}
}
}
}
});
speedSliderContinuousPanel = new JPanel();
speedSliderContinuousPanel.setLayout(new GridBagLayout());
constraints = new GridBagConstraints();
constraints.anchor = GridBagConstraints.CENTER;
constraints.fill = GridBagConstraints.BOTH;
constraints.gridheight = 1;
constraints.gridwidth = 1;
constraints.ipadx = 0;
constraints.ipady = 0;
insets = new Insets(2, 2, 2, 2);
constraints.insets = insets;
constraints.weightx = 1;
constraints.weighty = 1;
constraints.gridx = 0;
constraints.gridy = 0;
speedSliderContinuousPanel.add(speedSliderContinuous, constraints);
//this.getContentPane().add(sliderPanel,BorderLayout.CENTER);
speedControlPanel.add(speedSliderContinuousPanel);
speedSliderContinuous.setOrientation(JSlider.VERTICAL);
speedSliderContinuous.setMajorTickSpacing(maxSpeed / 2);
labelTable = new java.util.Hashtable<Integer, JLabel>();
labelTable.put(Integer.valueOf(maxSpeed / 2), new JLabel("50%"));
labelTable.put(Integer.valueOf(maxSpeed), new JLabel("100%"));
labelTable.put(Integer.valueOf(0), new JLabel(Bundle.getMessage("LabelStop")));
labelTable.put(Integer.valueOf(-maxSpeed / 2), new JLabel("-50%"));
labelTable.put(Integer.valueOf(-maxSpeed), new JLabel("-100%"));
speedSliderContinuous.setLabelTable(labelTable);
speedSliderContinuous.setPaintTicks(true);
speedSliderContinuous.setPaintLabels(true);
// remove old actions
speedSliderContinuous.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (!internalAdjust) {
boolean doIt = false;
if (!speedSliderContinuous.getValueIsAdjusting()) {
doIt = true;
lastTrackedSliderMovementTime = System.currentTimeMillis() - trackSliderMinInterval;
} else if (trackSlider && System.currentTimeMillis() - lastTrackedSliderMovementTime >= trackSliderMinInterval) {
doIt = true;
lastTrackedSliderMovementTime = System.currentTimeMillis();
}
if (doIt) {
float newSpeed = (java.lang.Math.abs(speedSliderContinuous.getValue()) / (intSpeedSteps * 1.0f));
boolean newDir = (speedSliderContinuous.getValue() >= 0);
if (log.isDebugEnabled()) {
log.debug("stateChanged: slider pos: " + speedSliderContinuous.getValue() + " speed: " + newSpeed + " dir: " + newDir);
}
if (speedSliderContinuousPanel.isVisible() && throttle != null) {
throttle.setSpeedSetting(newSpeed);
if ((newSpeed > 0) && (newDir != forwardButton.isSelected())) {
throttle.setIsForward(newDir);
}
}
if (speedSpinner != null) {
speedSpinnerModel.setValue(Integer.valueOf(java.lang.Math.abs(speedSliderContinuous.getValue())));
}
if (speedSlider != null) {
speedSlider.setValue(Integer.valueOf(java.lang.Math.abs(speedSliderContinuous.getValue())));
}
}
}
}
});
spinnerPanel = new JPanel();
spinnerPanel.setLayout(new GridBagLayout());
spinnerPanel.add(speedSpinner, constraints);
speedControlPanel.add(spinnerPanel);
// remove old actions
speedSpinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (!internalAdjust) {
//if (!speedSpinner.getValueIsAdjusting())
//{
float newSpeed = ((Integer) speedSpinner.getValue()).floatValue() / (intSpeedSteps * 1.0f);
if (log.isDebugEnabled()) {
log.debug("stateChanged: spinner pos: " + speedSpinner.getValue() + " speed: " + newSpeed);
}
if (throttle != null) {
if (spinnerPanel.isVisible()) {
throttle.setSpeedSetting(newSpeed);
}
speedSlider.setValue(((Integer) speedSpinner.getValue()).intValue());
if (speedSliderContinuous != null) {
if (forwardButton.isSelected()) {
speedSliderContinuous.setValue(((Integer) speedSpinner.getValue()).intValue());
} else {
speedSliderContinuous.setValue(-((Integer) speedSpinner.getValue()).intValue());
}
}
} else {
log.warn("no throttle object in stateChanged, ignoring change of speed to " + newSpeed);
}
//}
}
}
});
ButtonGroup speedStepButtons = new ButtonGroup();
speedStepButtons.add(SpeedStep128Button);
speedStepButtons.add(SpeedStep28Button);
speedStepButtons.add(SpeedStep27Button);
speedStepButtons.add(SpeedStep14Button);
constraints.fill = GridBagConstraints.NONE;
constraints.gridy = 1;
spinnerPanel.add(SpeedStep128Button, constraints);
constraints.gridy = 2;
spinnerPanel.add(SpeedStep28Button, constraints);
constraints.gridy = 3;
spinnerPanel.add(SpeedStep27Button, constraints);
constraints.gridy = 4;
spinnerPanel.add(SpeedStep14Button, constraints);
SpeedStep14Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setSpeedStepsMode(DccThrottle.SpeedStepMode14);
throttle.setSpeedStepMode(DccThrottle.SpeedStepMode14);
}
});
SpeedStep27Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setSpeedStepsMode(DccThrottle.SpeedStepMode27);
throttle.setSpeedStepMode(DccThrottle.SpeedStepMode27);
}
});
SpeedStep28Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setSpeedStepsMode(DccThrottle.SpeedStepMode28);
throttle.setSpeedStepMode(DccThrottle.SpeedStepMode28);
}
});
SpeedStep128Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setSpeedStepsMode(DccThrottle.SpeedStepMode128);
throttle.setSpeedStepMode(DccThrottle.SpeedStepMode128);
}
});
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridBagLayout());
mainPanel.add(buttonPanel, BorderLayout.SOUTH);
ButtonGroup directionButtons = new ButtonGroup();
directionButtons.add(forwardButton);
directionButtons.add(reverseButton);
constraints.fill = GridBagConstraints.NONE;
constraints.gridy = 1;
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
constraints.gridx = 3;
}
buttonPanel.add(forwardButton, constraints);
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
constraints.gridx = 1;
} else {
constraints.gridy = 2;
}
buttonPanel.add(reverseButton, constraints);
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
constraints.gridx = 2;
}
forwardButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
throttle.setIsForward(true);
if (speedSliderContinuous != null) {
speedSliderContinuous.setValue(java.lang.Math.abs(speedSliderContinuous.getValue()));
}
}
});
reverseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
throttle.setIsForward(false);
if (speedSliderContinuous != null) {
speedSliderContinuous.setValue(-java.lang.Math.abs(speedSliderContinuous.getValue()));
}
}
});
stopButton = new JButton();
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
stopButton.setBorderPainted(false);
stopButton.setContentAreaFilled(false);
stopButton.setText(null);
stopButton.setIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/estop.png")));
stopButton.setPressedIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/estop24.png")));
stopButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
stopButton.setToolTipText(Bundle.getMessage("ButtonEStop"));
} else {
stopButton.setText(Bundle.getMessage("ButtonEStop"));
}
constraints.gridy = 4;
constraints.fill = GridBagConstraints.HORIZONTAL;
buttonPanel.add(stopButton, constraints);
stopButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
stop();
}
});
stopButton.addMouseListener(new MouseListener() {
@Override
public void mousePressed(MouseEvent e) {
stop();
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
});
idleButton = new JButton();
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
idleButton.setBorderPainted(false);
idleButton.setContentAreaFilled(false);
idleButton.setText(null);
idleButton.setIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/stop.png")));
idleButton.setPressedIcon(new ImageIcon(FileUtil.findURL("resources/icons/throttles/stop24.png")));
idleButton.setPreferredSize(new Dimension(BUTTON_SIZE, BUTTON_SIZE));
idleButton.setToolTipText(Bundle.getMessage("ButtonIdle"));
} else {
idleButton.setText(Bundle.getMessage("ButtonIdle"));
}
if (jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingExThrottle() && jmri.jmrit.throttle.ThrottleFrameManager.instance().getThrottlesPreferences().isUsingFunctionIcon()) {
constraints.gridy = 1;
} else {
constraints.gridy = 3;
}
buttonPanel.add(idleButton, constraints);
idleButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
speedSlider.setValue(0);
if (speedSpinner != null) {
speedSpinner.setValue(Integer.valueOf(0));
}
if (speedSliderContinuous != null) {
speedSliderContinuous.setValue(Integer.valueOf(0));
}
throttle.setSpeedSetting(0);
}
});
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
changeOrientation();
}
});
JMenuItem propertiesItem = new JMenuItem(Bundle.getMessage("ControlPanelProperties"));
propertiesItem.addActionListener(this);
propertiesPopup.add(propertiesItem);
// Add a mouse listener all components to trigger the popup menu.
MouseInputAdapter popupListener = new PopupListener(propertiesPopup, this);
MouseInputAdapterInstaller.installMouseInputAdapterOnAllComponents(popupListener, this);
// Install the Key bindings on all Components
KeyListenerInstaller.installKeyListenerOnAllComponents(new ControlPadKeyListener(), this);
// set by default which speed selection method is on top
setSpeedController(_displaySlider);
}
use of java.awt.event.MouseWheelListener in project OpenNotebook by jaltekruse.
the class StringAdjustmentPanel method addPanelContent.
@Override
public void addPanelContent() {
// to prevent the panel from looking too small, estimate the amount of lines needed to
// show all of the text
int numLines = 0;
if (getGraphics() != null) {
// one of these panels is constructed in the background to initialize some resources
// at that time there is no graphics object to reference to measure text
numLines = getGraphics().getFontMetrics().stringWidth(mAtt.getValue()) / 120;
} else {
numLines = mAtt.getValue().length() / 20;
}
if (numLines < 2) {
numLines = 2;
}
textArea = new JTextArea(numLines, 12);
textArea.setEditable(true);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setText(mAtt.getValue());
textArea.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent arg0) {
}
@Override
public void focusLost(FocusEvent arg0) {
applyPanelValueToObject();
}
});
// need to decide if having this panel set with the enter key is worth
// not being able to include line breaks
textArea.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent ev) {
if (ev.getKeyCode() == KeyEvent.VK_ENTER) {
applyPanelValueToObject();
enterJustPressed = true;
}
}
@Override
public void keyReleased(KeyEvent arg0) {
if (arg0.getKeyCode() == KeyEvent.VK_ENTER && enterJustPressed) {
// had issue with hitting enter to confirm dialog, dialog disappeared but enter key release event
// was still received here if an object was selected, hence the boolean set in the keypressed
// method and checked here
String s = textArea.getText();
int caretPos = textArea.getCaretPosition() - 1;
s = s.substring(0, textArea.getCaretPosition() - 1) + s.substring(textArea.getCaretPosition());
textArea.setText(s);
textArea.setCaretPosition(caretPos);
enterJustPressed = false;
}
}
@Override
public void keyTyped(KeyEvent arg0) {
}
});
setLayout(new GridBagLayout());
GridBagConstraints con = new GridBagConstraints();
con.fill = GridBagConstraints.HORIZONTAL;
con.weightx = .5;
con.gridx = 0;
con.gridwidth = 1;
con.gridy = 0;
con.insets = new Insets(2, 5, 0, 5);
add(new JLabel(mAtt.getName()), con);
JButton keyboard = new JButton(ObjectPropertiesFrame.SMALL_KEYBOARD_IMAGE);
keyboard.setToolTipText("Show On-Screen Keyboard");
keyboard.setMargin(new Insets(3, 3, 3, 3));
keyboard.setFocusable(false);
con.insets = new Insets(2, 2, 2, 2);
con.gridx = 1;
con.weightx = .1;
con.weighty = .1;
con.gridheight = 1;
add(keyboard, con);
keyboard.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
notebookPanel.getCurrentDocViewer().setOnScreenKeyBoardVisible(true);
}
});
JButton applyChanges = new JButton("Apply");
applyChanges.setToolTipText("Value can also be applied by hitting Enter");
applyChanges.setMargin(new Insets(5, 3, 5, 3));
applyChanges.setFocusable(false);
con.gridx = 2;
con.weightx = .1;
con.weighty = .1;
con.gridheight = 1;
add(applyChanges, con);
applyChanges.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
applyPanelValueToObject();
}
});
con.fill = GridBagConstraints.BOTH;
con.weightx = 1;
con.weighty = 1;
con.gridwidth = 3;
con.gridy = 1;
con.gridx = 0;
con.gridheight = 3;
scrollPane = new JScrollPane(textArea);
scrollPane.setWheelScrollingEnabled(false);
con.insets = new Insets(0, 5, 2, 0);
add(scrollPane, con);
scrollPane.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
Point componentPoint = SwingUtilities.convertPoint(scrollPane, e.getPoint(), parentPanel);
parentPanel.dispatchEvent(new MouseWheelEvent(parentPanel, e.getID(), e.getWhen(), e.getModifiers(), componentPoint.x, componentPoint.y, e.getClickCount(), e.isPopupTrigger(), e.getScrollType(), e.getScrollAmount(), e.getWheelRotation()));
}
});
}
use of java.awt.event.MouseWheelListener in project intellij-community by JetBrains.
the class IpnbEditorUtil method noScrolling.
private static void noScrolling(EditorEx editor) {
editor.getScrollPane().setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
editor.getScrollPane().setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
editor.getScrollPane().setWheelScrollingEnabled(false);
List<MouseWheelListener> listeners = Lists.newArrayList(editor.getScrollPane().getMouseWheelListeners());
for (MouseWheelListener l : listeners) {
editor.getScrollPane().removeMouseWheelListener(l);
}
}
Aggregations