Skip to content

Commit d73944a

Browse files
Benjamin LipnikUrbanBobek
authored andcommitted
Ctrl-Arrow moves widgets by the grid size
1 parent 0ae9b16 commit d73944a

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

app/display/editor/src/main/java/org/csstudio/display/builder/editor/tracker/SelectedWidgetUITracker.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,15 @@ public Point2D snapConstrain(final double x, final double y)
230230
@Override
231231
protected void handleKeyEvent(final KeyEvent event)
232232
{
233+
// Update move value bigDelta to grid size
234+
{
235+
final DisplayModel model = getModel();
236+
if(model != null) {
237+
bigDeltaX = model.propGridStepX().getValue();
238+
bigDeltaY = model.propGridStepY().getValue();
239+
}
240+
}
241+
233242
super.handleKeyEvent(event);
234243
if (event.isConsumed())
235244
group_handler.hide();
@@ -448,8 +457,9 @@ private Boolean click(final List<Widget> widgets)
448457
private void passClickToWidgets(final MouseEvent event)
449458
{
450459
final DisplayModel model = getModel();
451-
if (model != null)
460+
if (model != null) {
452461
new ClickWidgets(event, model.getChildren()).compute();
462+
}
453463
}
454464

455465
@Override
@@ -566,6 +576,7 @@ private void updateTrackerFromWidgets()
566576
{
567577
if (updating)
568578
return;
579+
569580
final Rectangle2D rect = GeometryTools.getDisplayBounds(widgets);
570581
updating = true;
571582

core/ui/src/main/java/org/phoebus/ui/javafx/Tracker.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ public class Tracker extends Group
5757
/** Enable changes? */
5858
protected boolean enable_changes = true;
5959

60+
protected int bigDeltaX = 10;
61+
protected int bigDeltaY = 10;
62+
6063
/** Create tracker */
6164
public Tracker()
6265
{
@@ -342,38 +345,41 @@ protected void handleKeyEvent(final KeyEvent event)
342345
final KeyCode code = event.getCode();
343346
boolean notify = false;
344347

345-
int delta = 1;
346-
if (event.isShortcutDown())
347-
delta = 10;
348+
int delta_x = 1;
349+
int delta_y = 1;
350+
if (event.isShortcutDown()) {
351+
delta_x = this.bigDeltaX;
352+
delta_y = this.bigDeltaY;
353+
}
348354

349355
switch (code)
350356
{
351357
case UP:
352358
if (event.isShiftDown())
353-
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth(), tracker.getHeight() - delta);
359+
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth(), tracker.getHeight() - delta_y);
354360
else
355-
setPosition(tracker.getX(), tracker.getY() - delta, tracker.getWidth(), tracker.getHeight());
361+
setPosition(tracker.getX(), tracker.getY() - delta_y, tracker.getWidth(), tracker.getHeight());
356362
notify = true;
357363
break;
358364
case DOWN:
359365
if (event.isShiftDown())
360-
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth(), tracker.getHeight() + delta);
366+
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth(), tracker.getHeight() + delta_y);
361367
else
362-
setPosition(tracker.getX(), tracker.getY() + delta, tracker.getWidth(), tracker.getHeight());
368+
setPosition(tracker.getX(), tracker.getY() + delta_y, tracker.getWidth(), tracker.getHeight());
363369
notify = true;
364370
break;
365371
case LEFT:
366372
if (event.isShiftDown())
367-
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth() - delta, tracker.getHeight());
373+
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth() - delta_x, tracker.getHeight());
368374
else
369-
setPosition(tracker.getX() - delta, tracker.getY(), tracker.getWidth(), tracker.getHeight());
375+
setPosition(tracker.getX() - delta_x, tracker.getY(), tracker.getWidth(), tracker.getHeight());
370376
notify = true;
371377
break;
372378
case RIGHT:
373379
if (event.isShiftDown())
374-
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth() + delta, tracker.getHeight());
380+
setPosition(tracker.getX(), tracker.getY(), tracker.getWidth() + delta_x, tracker.getHeight());
375381
else
376-
setPosition(tracker.getX() + delta, tracker.getY(), tracker.getWidth(), tracker.getHeight());
382+
setPosition(tracker.getX() + delta_x, tracker.getY(), tracker.getWidth(), tracker.getHeight());
377383
notify = true;
378384
break;
379385
case ESCAPE:

0 commit comments

Comments
 (0)