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.
76 lines
2.3 KiB
76 lines
2.3 KiB
4 years ago
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|