private void drag(MouseEvent e) {
Node node = get();
if (isEnable() && pressedCorner != null && e.isConsumed() == false && node != null) {
double dx = e.getScreenX() - startX;
if (pressedCorner.horizontal == HorizontalDirection.RIGHT) {
width.set(MathUtil.toRange(startWidth + dx, minWidth.get(), maxWidth.get()));
} else if (pressedCorner.horizontal == HorizontalDirection.LEFT) {
width.set(MathUtil.toRange(startWidth - dx, minWidth.get(), maxWidth.get()));
node.setLayoutX(startWidth + startPosX - width.get());
}
double dy = e.getScreenY() - startY;
if (pressedCorner.vertical == VerticalDirection.DOWN) {
height.set(MathUtil.toRange(startHeight + dy, minHeight.get(), maxHeight.get()));
} else if (pressedCorner.vertical == VerticalDirection.UP) {
height.set(MathUtil.toRange(startHeight - dy, minHeight.get(), maxHeight.get()));
node.setLayoutY(startHeight + startPosY - height.get());
}
e.consume();
}
}
java类javafx.geometry.VerticalDirection的实例源码
ResizeSupport.java 文件源码
项目:JavaFX-EX
阅读 31
收藏 0
点赞 0
评论 0
GesturePaneTest.java 文件源码
项目:GestureFX
阅读 28
收藏 0
点赞 0
评论 0
@Test
public void testGestureDisabling() throws Exception {
pane.setGestureEnabled(false);
pane.zoomTo(2, pane.targetPointAtViewportCentre());
Transform expected = target.captureTransform();
FxRobot robot = new FxRobot();
robot.moveTo(pane)
.scroll(2, VerticalDirection.UP)
.scroll(2, VerticalDirection.DOWN)
.drag(MouseButton.PRIMARY).dropBy(100, 100);
assertThat(target.captureTransform()).isEqualToComparingOnlyGivenFields(expected,
"xx", "xy", "xz",
"yx", "yy", "yz",
"zx", "zy", "zz",
"xt", "yt", "zt");
}
GesturePaneTest.java 文件源码
项目:GestureFX
阅读 31
收藏 0
点赞 0
评论 0
@Test
public void testScaleByScroll() throws Exception {
pane.scrollModeProperty().set(ScrollMode.ZOOM);
pane.zoomTo(5, pane.targetPointAtViewportCentre());
FxRobot robot = new FxRobot();
assertThat(pane.getCurrentXScale()).isEqualTo(5d);
Thread.sleep(100);
robot.moveTo(pane);
robot.scroll(5, VerticalDirection.UP); // direction is platform dependent
Thread.sleep(100);
double expectedUp = 5 * Math.pow(1 + DEFAULT_SCROLL_FACTOR, 5);
double expectedDown = 5 * Math.pow(1 - DEFAULT_SCROLL_FACTOR, 5);
Condition<Double> eitherUpOrDown = new Condition<>(
v -> Math.abs(v - expectedUp) < 0.01 || Math.abs(v - expectedDown) < 0.01,
"either close to %s or %s",
expectedUp, expectedDown);
assertThat(pane.getCurrentXScale()).is(eitherUpOrDown);
Transform t = target.captureTransform();
assertThat(t.getMxx()).is(eitherUpOrDown);
assertThat(t.getMyy()).is(eitherUpOrDown);
}
ResizeSupport.java 文件源码
项目:JavaFX-EX
阅读 34
收藏 0
点赞 0
评论 0
private void drag(MouseEvent e) {
Node node = get();
if (isEnable() && pressedCorner != null && e.isConsumed() == false && node != null) {
double dx = e.getScreenX() - startX;
if (pressedCorner.horizontal == HorizontalDirection.RIGHT) {
width.set(MathUtil.toRange(startWidth + dx, minWidth.get(), maxWidth.get()));
} else if (pressedCorner.horizontal == HorizontalDirection.LEFT) {
width.set(MathUtil.toRange(startWidth - dx, minWidth.get(), maxWidth.get()));
node.setLayoutX(startWidth + startPosX - width.get());
}
double dy = e.getScreenY() - startY;
if (pressedCorner.vertical == VerticalDirection.DOWN) {
height.set(MathUtil.toRange(startHeight + dy, minHeight.get(), maxHeight.get()));
} else if (pressedCorner.vertical == VerticalDirection.UP) {
height.set(MathUtil.toRange(startHeight - dy, minHeight.get(), maxHeight.get()));
node.setLayoutY(startHeight + startPosY - height.get());
}
e.consume();
}
}
PhylogeneticViewTest.java 文件源码
项目:dnainator
阅读 21
收藏 0
点赞 0
评论 0
/**
* Test zooming in by scrolling the mouse.
*/
@Test
public void testOnScroll() {
double zoomPrevious;
zoomPrevious = view.scale.getMxx();
moveTo(view).scroll(VerticalDirection.UP).sleep(1, TimeUnit.SECONDS);
assertTrue(view.scale.getMxx() > zoomPrevious);
assertTrue(view.scale.getMyy() > zoomPrevious);
zoomPrevious = view.scale.getMxx();
moveTo(view).scroll(VerticalDirection.DOWN).sleep(1, TimeUnit.SECONDS);
assertTrue(view.scale.getMxx() < zoomPrevious);
assertTrue(view.scale.getMyy() < zoomPrevious);
}
TimePickerTest.java 文件源码
项目:timey
阅读 28
收藏 0
点赞 0
评论 0
/**
* Testet Wertänderung durch Scrollen innerhalb von Textfeldern.
*/
@Test
public final void testTextFieldScrolling() {
/*
* Zunächst vom Betriebssystem vorgegebene Scrollrichtung ermitteln.
* Kann z. B. unter Mac OS X frei festgelegt werden und ist standardmäßig umgekehrt, ergo verringert hochscrollen den Wert.
*/
click(hoursTextField);
scroll(VerticalDirection.UP);
final boolean scrollingUpIncreasesValue = hoursSlider.getValue() == 1.0;
if (scrollingUpIncreasesValue) {
// ursprünglichen Zustand wiederherstellen
scroll(VerticalDirection.DOWN);
}
// Scrollrichtungen entsprechend definieren
final VerticalDirection increaseValue = scrollingUpIncreasesValue ? VerticalDirection.UP : VerticalDirection.DOWN;
final VerticalDirection decreaseValue = scrollingUpIncreasesValue ? VerticalDirection.DOWN : VerticalDirection.UP;
// nun zum eigentlichen Test ...
final TextFieldScrollingData[] testCases = new TextFieldScrollingData[] {
new TextFieldScrollingData(minutesTextField, hoursTextField, hoursSlider),
new TextFieldScrollingData(secondsTextField, minutesTextField, minutesSlider),
new TextFieldScrollingData(hoursTextField, secondsTextField, secondsSlider),
};
for (final TextFieldScrollingData testCase : testCases) {
click(testCase.focusedTextField); // anderes Feld fokussieren
// Scrollen über Feld ohne Fokus hat keine Auswirkung
move(testCase.textField);
scroll(increaseValue);
assertEquals(0.0, testCase.slider.getValue(), 0.0);
click(testCase.textField); // richtiges Feld fokussieren
scroll(increaseValue);
assertEquals(1.0, testCase.slider.getValue(), 0.0);
scroll(decreaseValue);
assertEquals(0.0, testCase.slider.getValue(), 0.0);
}
}
ResizeSupport.java 文件源码
项目:JavaFX-EX
阅读 28
收藏 0
点赞 0
评论 0
private Corner(Cursor cursor, HorizontalDirection horizontal, VerticalDirection vertical) {
this.cursor = cursor;
this.horizontal = horizontal;
this.vertical = vertical;
}
ResizeSupport.java 文件源码
项目:JavaFX-EX
阅读 27
收藏 0
点赞 0
评论 0
private Corner(Cursor cursor, HorizontalDirection horizontal, VerticalDirection vertical) {
this.cursor = cursor;
this.horizontal = horizontal;
this.vertical = vertical;
}