Browse Source

REPORT-81307 A列列宽概率显示为B列列宽值

Destiny.Lin 2 years ago
parent
commit
82da81b335
  1. 38
      designer-realize/src/main/java/com/fr/grid/AbstractGridHeaderMouseHandler.java

38
designer-realize/src/main/java/com/fr/grid/AbstractGridHeaderMouseHandler.java

@ -38,6 +38,8 @@ import java.lang.reflect.Method;
*/ */
public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter { public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
protected static final int SEPARATOR_GAP = 5; protected static final int SEPARATOR_GAP = 5;
//只选中一个
private static final int ONLY_SELECT_ONE = 1;
private GridHeader gHeader; private GridHeader gHeader;
private int dragType = GridUtils.DRAG_NONE; private int dragType = GridUtils.DRAG_NONE;
@ -55,12 +57,12 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
public AbstractGridHeaderMouseHandler(GridHeader gHeader) { public AbstractGridHeaderMouseHandler(GridHeader gHeader) {
this.gHeader = gHeader; this.gHeader = gHeader;
if (gHeader instanceof GridColumn){ if (gHeader instanceof GridColumn) {
this.resolution = ((GridColumn)gHeader).getResolution(); this.resolution = ((GridColumn) gHeader).getResolution();
}else { } else {
this.resolution = ((GridRow)gHeader).getResolution(); this.resolution = ((GridRow) gHeader).getResolution();
}
} }
}
public void setStartMultiSelectIndex(int index) { public void setStartMultiSelectIndex(int index) {
this.startMultiSelectIndex = index; this.startMultiSelectIndex = index;
@ -113,7 +115,7 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
if (between(evt, tmpSize1, tmpSize2)) { if (between(evt, tmpSize1, tmpSize2)) {
if (index >= dragIndex) { if (index >= dragIndex) {
try { try {
if(method != null) { if (method != null) {
method.invoke(report, dragIndex, FU.valueOfPix(evtOffset(evt, oldEndValueSize), resolution)); method.invoke(report, dragIndex, FU.valueOfPix(evtOffset(evt, oldEndValueSize), resolution));
} }
} catch (Exception e) { } catch (Exception e) {
@ -122,7 +124,7 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
//sizeList.set(dragIndex, FU.valueOfPix(evtOffset(evt, oldEndValueSize), resolution)); //sizeList.set(dragIndex, FU.valueOfPix(evtOffset(evt, oldEndValueSize), resolution));
} else { } else {
try { try {
if(method != null) { if (method != null) {
method.invoke(report, index, FU.valueOfPix(evtOffset(evt, (int) tmpSize1), resolution)); method.invoke(report, index, FU.valueOfPix(evtOffset(evt, (int) tmpSize1), resolution));
} }
} catch (Exception e) { } catch (Exception e) {
@ -132,7 +134,7 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
// from all to do. // from all to do.
for (int h = (dragIndex - 1); h > index; h--) { for (int h = (dragIndex - 1); h > index; h--) {
try { try {
if(method != null) { if (method != null) {
method.invoke(report, h, UNIT.ZERO); method.invoke(report, h, UNIT.ZERO);
} }
} catch (Exception e) { } catch (Exception e) {
@ -223,7 +225,7 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
ePane.getGrid().stopEditing();// james 停止当前的所有编辑 ePane.getGrid().stopEditing();// james 停止当前的所有编辑
// peter:选中格子位置. // peter:选中格子位置.
ColumnRow selectedCellPoint = GridUtils.getAdjustEventColumnRow_withresolution(ePane, evt.getX(), evt.getY(),resolution); ColumnRow selectedCellPoint = GridUtils.getAdjustEventColumnRow_withresolution(ePane, evt.getX(), evt.getY(), resolution);
iterateScrollBar(ePane, evt, PRESS_ACTION); iterateScrollBar(ePane, evt, PRESS_ACTION);
@ -231,7 +233,7 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
if (SwingUtilities.isRightMouseButton(evt)) { if (SwingUtilities.isRightMouseButton(evt)) {
Selection cs = ePane.getSelection(); Selection cs = ePane.getSelection();
resetSelectionByRightButton(selectedCellPoint, cs, ePane); resetSelectionByRightButton(selectedCellPoint, cs, ePane);
checkEndMultiSelectIndex(cs);
UIPopupMenu popupMenu = createPopupMenu(ePane, evt, Math.max(dragIndex, Math.max(this.startMultiSelectIndex, this.endMultiSelectIndex))); UIPopupMenu popupMenu = createPopupMenu(ePane, evt, Math.max(dragIndex, Math.max(this.startMultiSelectIndex, this.endMultiSelectIndex)));
if (popupMenu != null) { if (popupMenu != null) {
GUICoreUtils.showPopupMenu(popupMenu, gHeader, evt.getX() + 1, evt.getY() + 1); GUICoreUtils.showPopupMenu(popupMenu, gHeader, evt.getX() + 1, evt.getY() + 1);
@ -250,6 +252,18 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
ePane.repaint(); ePane.repaint();
} }
/**
* 如果行列中有只选中一个的情况更新下endIndex防止列宽或行宽不匹配
*
* @param selection 与ElementCasePane绑定的选择对象
*/
private void checkEndMultiSelectIndex(Selection selection) {
if (selection.getSelectedColumns().length == ONLY_SELECT_ONE || selection.getSelectedRows().length == ONLY_SELECT_ONE) {
this.endMultiSelectIndex = this.startMultiSelectIndex;
}
}
protected abstract void resetSelectionByRightButton(ColumnRow mouseSelectedColumnRow, Selection cs, ElementCasePane ePane); protected abstract void resetSelectionByRightButton(ColumnRow mouseSelectedColumnRow, Selection cs, ElementCasePane ePane);
@ -310,8 +324,8 @@ public abstract class AbstractGridHeaderMouseHandler extends MouseInputAdapter {
sb.append(String.format("%.2f", new Double(len))) sb.append(String.format("%.2f", new Double(len)))
.append('/').append(String.format("%.2f", new Double(tlen))) .append('/').append(String.format("%.2f", new Double(tlen)))
.append(unit).append('(') .append(unit).append('(')
.append((int)(unitValue.toPixD(resolution))).append('/') .append((int) (unitValue.toPixD(resolution))).append('/')
.append((int)(totalUnitValue.toPixD(resolution))) .append((int) (totalUnitValue.toPixD(resolution)))
.append(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Px")) .append(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Px"))
.append(')'); .append(')');
return sb.toString(); return sb.toString();

Loading…
Cancel
Save