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.5 KiB
75 lines
2.5 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 ReportComponentCompositeMouseWheelHandler implements MouseWheelListener { |
|
private final DesignerTranslateMouseWheelHandler translateMouseWheelHandler; |
|
private final DesignerScaleMouseWheelHandler scaleMouseWheelHandler; |
|
|
|
public ReportComponentCompositeMouseWheelHandler(ReportComponentComposite componentComposite) { |
|
translateMouseWheelHandler = new DesignerTranslateMouseWheelHandler(new ScrollPaneAdapter(componentComposite)); |
|
scaleMouseWheelHandler = new DesignerScaleMouseWheelHandler(new ScalePaneAdapter(componentComposite), ReportComponentComposite.DIR); |
|
} |
|
|
|
@Override |
|
public void mouseWheelMoved(MouseWheelEvent e) { |
|
if (InputEventBaseOnOS.isControlDown(e)) { |
|
scaleMouseWheelHandler.mouseWheelMoved(e); |
|
} else { |
|
translateMouseWheelHandler.mouseWheelMoved(e); |
|
} |
|
} |
|
|
|
private static class ScrollPaneAdapter implements DesignerTranslateMouseWheelHandler.ScrollPane { |
|
private final ReportComponentComposite componentComposite; |
|
private JViewport viewport; |
|
|
|
public ScrollPaneAdapter(ReportComponentComposite componentComposite) { |
|
this.componentComposite = componentComposite; |
|
this.viewport = new JViewport(); |
|
} |
|
|
|
@Override |
|
public boolean isWheelScrollingEnabled() { |
|
return true; |
|
} |
|
|
|
@Override |
|
public JScrollBar getVerticalScrollBar() { |
|
return componentComposite.getEditingReportComponent().getVerticalScrollBar(); |
|
} |
|
|
|
@Override |
|
public JScrollBar getHorizontalScrollBar() { |
|
return componentComposite.getEditingReportComponent().getHorizontalScrollBar(); |
|
} |
|
|
|
@Override |
|
public JViewport getViewport() { |
|
return viewport; |
|
} |
|
} |
|
|
|
private static class ScalePaneAdapter implements DesignerScaleMouseWheelHandler.ScalePane { |
|
private final ReportComponentComposite componentComposite; |
|
|
|
public ScalePaneAdapter(ReportComponentComposite componentComposite) { |
|
this.componentComposite = componentComposite; |
|
} |
|
|
|
@Override |
|
public JFormSliderPane getSlidePane() { |
|
return componentComposite.getjSliderContainer(); |
|
} |
|
} |
|
}
|
|
|