Browse Source

REPORT-100623 补充上竖直方向的偏移

newui
obo 2 years ago
parent
commit
47fcbc2031
  1. 22
      designer-form/src/main/java/com/fr/design/designer/creator/XEditorHolder.java
  2. 15
      designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java

22
designer-form/src/main/java/com/fr/design/designer/creator/XEditorHolder.java

@ -44,9 +44,7 @@ public class XEditorHolder extends XWidgetCreator {
ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this);
editingMouseListener.startEditing(this, adapter.getDesignerEditor(), adapter);
Rectangle rect = this.getBounds();
int min = rect.x + rect.width / 2 - editingMouseListener.getMinMoveSize();
int max = rect.x + rect.width / 2 + editingMouseListener.getMinMoveSize();
if (e.getX() + editingMouseListener.getDesigner().getHorizontalScaleValue() > min && e.getX() + editingMouseListener.getDesigner().getHorizontalScaleValue() < max) {
if (MouseEditRangeValid(e, rect, editingMouseListener)) {
ToolTipEditor.getInstance().showToolTip((XEditorHolder) this, e.getXOnScreen(),
e.getYOnScreen());
}
@ -54,6 +52,24 @@ public class XEditorHolder extends XWidgetCreator {
}
}
/**
* 判断当前鼠标事件是否在可编辑区域内
*
* @param e 鼠标事件
* @param rect 区域
* @param editingMouseListener 位置处理器
* @return 是否位于可编辑区
*/
private boolean MouseEditRangeValid(MouseEvent e, Rectangle rect, EditingMouseListener editingMouseListener) {
int minHorizontal = rect.x + rect.width / 2 - editingMouseListener.getMinMoveSize();
int maxHorizontal = rect.x + rect.width / 2 + editingMouseListener.getMinMoveSize();
int minVertical = rect.y + rect.height / 2 - editingMouseListener.getMinMoveSize();
int maxVertical = rect.y + rect.height / 2 + editingMouseListener.getMinMoveSize();
return e.getX() + editingMouseListener.getDesigner().getHorizontalScaleValue() > minHorizontal && e.getX() + editingMouseListener.getDesigner().getHorizontalScaleValue() < maxHorizontal
&& e.getY() + editingMouseListener.getDesigner().getVerticalScaleValue() > minVertical && e.getY() + editingMouseListener.getDesigner().getVerticalScaleValue() < maxVertical;
}
@Override
protected String getIconName() {
return "text_field_16.png";

15
designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java

@ -279,9 +279,7 @@ public class EditingMouseListener extends MouseInputAdapter {
if (component instanceof XEditorHolder) {
XEditorHolder xcreator = (XEditorHolder) component;
Rectangle rect = xcreator.getBounds();
int min = rect.x + rect.width / 2 - minMoveSize;
int max = rect.x + rect.width / 2 + minMoveSize;
if (e.getX() + designer.getHorizontalScaleValue() > min && e.getX() + designer.getHorizontalScaleValue() < max) {
if (creatorRangeValid(e, rect)) {
if (designer.getCursor().getType() != Cursor.HAND_CURSOR) {
designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
@ -747,4 +745,15 @@ public class EditingMouseListener extends MouseInputAdapter {
refreshTopXCreator(false);
}
/**
* 判断当前鼠标移动事件是否在Creator有效范围内
*/
private boolean creatorRangeValid(MouseEvent e, Rectangle rect) {
int minHorizontal = rect.x + rect.width / 2 - minMoveSize;
int maxHorizontal = rect.x + rect.width / 2 + minMoveSize;
int minVertical = rect.y + rect.height / 2 - minMoveSize;
int maxVertical = rect.y + rect.height / 2 + minMoveSize;
return e.getX() + designer.getHorizontalScaleValue() > minHorizontal && e.getX() + designer.getHorizontalScaleValue() < maxHorizontal
&& e.getY() + designer.getVerticalScaleValue() > minVertical && e.getY() + designer.getVerticalScaleValue() < maxVertical;
}
}

Loading…
Cancel
Save