You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.3 KiB
75 lines
2.3 KiB
package com.fr.design.mainframe; |
|
|
|
import com.fr.common.inputevent.InputEventBaseOnOS; |
|
|
|
import javax.swing.JScrollBar; |
|
import javax.swing.JViewport; |
|
import java.awt.event.MouseWheelEvent; |
|
import java.awt.event.MouseWheelListener; |
|
|
|
/** |
|
* @author Starryi |
|
* @version 1.0 |
|
* Created by Starryi on 2021/9/24 |
|
*/ |
|
public class FormAreaMouseWheelHandler implements MouseWheelListener { |
|
private final DesignerTranslateMouseWheelHandler translateMouseWheelHandler; |
|
private final DesignerScaleMouseWheelHandler scaleMouseWheelHandler; |
|
|
|
public FormAreaMouseWheelHandler(FormArea formArea) { |
|
translateMouseWheelHandler = new DesignerTranslateMouseWheelHandler(new FormAreaScrollPaneAdapter(formArea)); |
|
scaleMouseWheelHandler = new DesignerScaleMouseWheelHandler(new FormAreaScalePaneAdapter(formArea), FormArea.SHOWVALMIN); |
|
} |
|
|
|
@Override |
|
public void mouseWheelMoved(MouseWheelEvent e) { |
|
if (InputEventBaseOnOS.isControlDown(e)) { |
|
scaleMouseWheelHandler.mouseWheelMoved(e); |
|
} else { |
|
translateMouseWheelHandler.mouseWheelMoved(e); |
|
} |
|
} |
|
|
|
private static class FormAreaScalePaneAdapter implements DesignerScaleMouseWheelHandler.ScalePane { |
|
private final FormArea formArea; |
|
|
|
public FormAreaScalePaneAdapter(FormArea formArea) { |
|
this.formArea = formArea; |
|
} |
|
|
|
@Override |
|
public JFormSliderPane getSlidePane() { |
|
return formArea.getSlidePane(); |
|
} |
|
} |
|
|
|
private static class FormAreaScrollPaneAdapter implements DesignerTranslateMouseWheelHandler.ScrollPane { |
|
private final FormArea formArea; |
|
private final JViewport viewport; |
|
|
|
public FormAreaScrollPaneAdapter(FormArea formArea) { |
|
this.formArea = formArea; |
|
this.viewport = new JViewport(); |
|
} |
|
|
|
@Override |
|
public boolean isWheelScrollingEnabled() { |
|
return true; |
|
} |
|
|
|
@Override |
|
public JScrollBar getVerticalScrollBar() { |
|
return formArea.getVerticalScrollBar(); |
|
} |
|
|
|
@Override |
|
public JScrollBar getHorizontalScrollBar() { |
|
return formArea.getHorizontalScrollBar(); |
|
} |
|
|
|
@Override |
|
public JViewport getViewport() { |
|
return this.viewport; |
|
} |
|
} |
|
}
|
|
|