Browse Source

Merge pull request #1868 in DESIGN/design from release/10.0 to bugfix/10.0

* commit 'a8a8cf951b7d3f26d199fa85dd3ff0386e374b1d':
  REPORT-35692 国际化-页面设置-单位改为INCH,显示不全 方法替换
  REPORT-34878 && REPORT-34936  linux下条件属性和超链保存问题
  REPORT-35692 国际化-页面设置-单位改为INCH,显示不全 撤销一些代码
  REPORT-35692 国际化-页面设置-单位改为INCH,显示不全 调整格式
  REPORT-35692 国际化-页面设置-单位改为INCH,显示不全
  REPORT-34996 && REPORT-34636
  REPORT-34907 linux设计器-纸张背景-渐变色,右边的游标不能拖动
  无
  REPORT-35455  赶这一波发布
  REPORT-35699 国际化修改对报表下拉框产生影响 添加import
  REPORT-35699 国际化修改对报表下拉框产生影响
  REPORT-35699 国际化修改对报表下拉框产生影响 添加import
  REPORT-35699 国际化修改对报表下拉框产生影响
bugfix/10.0
superman 4 years ago
parent
commit
80e2c9bd16
  1. 8
      designer-base/src/main/java/com/fr/design/actions/UpdateAction.java
  2. 4
      designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java
  3. 4
      designer-base/src/main/java/com/fr/design/gui/controlpane/UIListControlPane.java
  4. 39
      designer-base/src/main/java/com/fr/design/os/impl/PopupDialogSaveAction.java
  5. 12
      designer-base/src/main/java/com/fr/design/os/impl/UpdateDialogAction.java
  6. 11
      designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java
  7. 55
      designer-base/src/main/java/com/fr/design/utils/gui/GUICoreUtils.java
  8. 7
      designer-realize/src/main/java/com/fr/design/report/UnitFieldPane.java
  9. 7
      designer-realize/src/main/java/com/fr/grid/GridMouseAdapter.java

8
designer-base/src/main/java/com/fr/design/actions/UpdateAction.java

@ -17,6 +17,7 @@ import com.fr.design.mainframe.toolbar.UpdateActionManager;
import com.fr.design.menu.ShortCut; import com.fr.design.menu.ShortCut;
import com.fr.design.selection.SelectionListener; import com.fr.design.selection.SelectionListener;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.pinyin.PinyinFormat; import com.fr.stable.pinyin.PinyinFormat;
import com.fr.stable.pinyin.PinyinHelper; import com.fr.stable.pinyin.PinyinHelper;
@ -562,7 +563,12 @@ public abstract class UpdateAction extends ShortCut implements Action {
for (int i = 0; i < component.getTabCount(); i++) { for (int i = 0; i < component.getTabCount(); i++) {
String title = component.getTitleAt(i); String title = component.getTitleAt(i);
handleSearchText(separator, text, pinyin, shortPinyin, title); handleSearchText(separator, text, pinyin, shortPinyin, title);
Component tabComponent = component.getComponentAt(i); Component tabComponent = null;
try {
tabComponent = component.getComponentAt(i);
} catch (Exception ignore) {
FineLoggerFactory.getLogger().info("AlphaFine index tabPane end");
}
if (tabComponent instanceof JPanel) { if (tabComponent instanceof JPanel) {
getComponentTexts((JPanel) tabComponent, separator, text, pinyin, shortPinyin); getComponentTexts((JPanel) tabComponent, separator, text, pinyin, shortPinyin);
} else if (tabComponent instanceof JTabbedPane) { } else if (tabComponent instanceof JTabbedPane) {

4
designer-base/src/main/java/com/fr/design/gui/controlpane/UIControlPane.java

@ -9,12 +9,14 @@ import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.menu.ShortCut; import com.fr.design.menu.ShortCut;
import com.fr.design.os.impl.PopupDialogSaveAction;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.widget.FRWidgetFactory; import com.fr.design.widget.FRWidgetFactory;
import com.fr.invoke.Reflect; import com.fr.invoke.Reflect;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.os.OperatingSystem; import com.fr.stable.os.OperatingSystem;
import com.fr.stable.os.support.OSSupportCenter;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.JComponent; import javax.swing.JComponent;
@ -273,6 +275,8 @@ abstract class UIControlPane extends JControlPane {
} }
saveSettings(); saveSettings();
setVisible(false); setVisible(false);
PopupDialogSaveAction saveAction = OSSupportCenter.getAction(PopupDialogSaveAction.class);
saveAction.unregister();
} }
private void initListener() { private void initListener() {

4
designer-base/src/main/java/com/fr/design/gui/controlpane/UIListControlPane.java

@ -7,9 +7,11 @@ import com.fr.design.gui.ilist.JNameEdList;
import com.fr.design.gui.ilist.ListModelElement; import com.fr.design.gui.ilist.ListModelElement;
import com.fr.design.gui.ilist.UINameEdList; import com.fr.design.gui.ilist.UINameEdList;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.os.impl.PopupDialogSaveAction;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.Nameable; import com.fr.stable.Nameable;
import com.fr.stable.os.support.OSSupportCenter;
import javax.swing.DefaultListModel; import javax.swing.DefaultListModel;
import javax.swing.JList; import javax.swing.JList;
@ -216,6 +218,8 @@ public abstract class UIListControlPane extends UIControlPane implements ListCon
((PopupEditDialog)popupEditDialog).setTitle(getSelectedName()); ((PopupEditDialog)popupEditDialog).setTitle(getSelectedName());
} }
popupEditDialog.setVisible(true); popupEditDialog.setVisible(true);
PopupDialogSaveAction osBasedAction = OSSupportCenter.getAction(PopupDialogSaveAction.class);
osBasedAction.execute(this, popupEditDialog);
} }
} }

39
designer-base/src/main/java/com/fr/design/os/impl/PopupDialogSaveAction.java

@ -0,0 +1,39 @@
package com.fr.design.os.impl;
import com.fr.design.gui.controlpane.UIListControlPane;
import com.fr.stable.os.OperatingSystem;
import com.fr.stable.os.support.OSBasedAction;
import java.awt.*;
/**
* linux下超链弹窗等保存问题
*
* @author hades
* @version 10.0
* Created by hades on 2020/7/21
*/
public class PopupDialogSaveAction implements OSBasedAction {
private UIListControlPane currentControlPane;
private Window popupDialog;
@Override
public void execute(Object... objects) {
boolean canSave = OperatingSystem.isLinux() && popupDialog != null && popupDialog.isVisible() && currentControlPane != null;
if (canSave) {
currentControlPane.saveSettings();
}
}
public void register(UIListControlPane currentControlPane, Window popupDialog) {
this.currentControlPane = currentControlPane;
this.popupDialog = popupDialog;
}
public void unregister() {
this.currentControlPane = null;
this.popupDialog = null;
}
}

12
designer-base/src/main/java/com/fr/design/os/impl/UpdateDialogAction.java

@ -2,8 +2,6 @@ package com.fr.design.os.impl;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.update.ui.dialog.UpdateMainDialog; import com.fr.design.update.ui.dialog.UpdateMainDialog;
import com.fr.design.utils.DesignUtils;
import com.fr.stable.os.OperatingSystem;
import com.fr.stable.os.support.OSBasedAction; import com.fr.stable.os.support.OSBasedAction;
/** /**
@ -12,14 +10,10 @@ import com.fr.stable.os.support.OSBasedAction;
* @date 2019/10/9 * @date 2019/10/9
*/ */
public class UpdateDialogAction implements OSBasedAction { public class UpdateDialogAction implements OSBasedAction {
private static String UPDATE_ROUTE = "#management/backup";
@Override @Override
public void execute(Object... objects) { public void execute(Object... objects) {
if(!OperatingSystem.isLinux()) { UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame());
UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame()); dialog.showDialog();
dialog.showDialog();
}else{
DesignUtils.visitEnvServerByParameters( UPDATE_ROUTE,null,null);
}
} }
} }

11
designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java

@ -11,6 +11,7 @@ import com.fr.design.style.color.ColorSelectDialog;
import com.fr.design.style.color.ColorSelectable; import com.fr.design.style.color.ColorSelectable;
import com.fr.stable.AssistUtils; import com.fr.stable.AssistUtils;
import com.fr.stable.os.OperatingSystem;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
@ -124,14 +125,20 @@ public class GradientBar extends JComponent implements UIObserver, ColorSelectab
protected void addMouseDragListener() { protected void addMouseDragListener() {
this.addMouseMotionListener(new MouseAdapter() { this.addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e) { public void mouseDragged(MouseEvent e) {
int oldIndex = index;
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
if (list.get(i).contains(e.getX(), e.getY())) { if (list.get(i).contains(e.getX(), e.getY())) {
index = i; index = i;
break; break;
} }
} }
if(OperatingSystem.isLinux() && AssistUtils.equals(oldIndex,index)){
if(Math.abs(p1.getX() - e.getX()) > Math.abs(p2.getX() - e.getX())){
index = 1;
}else{
index = 0;
}
}
boolean x = e.getX() <= max && e.getX() >= min; boolean x = e.getX() <= max && e.getX() >= min;
if (x && e.getY() < MAX_VERTICAL) { if (x && e.getY() < MAX_VERTICAL) {
list.get(index).setX(e.getX()); list.get(index).setX(e.getX());

55
designer-base/src/main/java/com/fr/design/utils/gui/GUICoreUtils.java

@ -27,6 +27,7 @@ import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper; import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.style.color.ColorCell; import com.fr.design.style.color.ColorCell;
import com.fr.design.style.color.ColorFactory; import com.fr.design.style.color.ColorFactory;
import com.fr.design.style.color.ColorSelectBox; import com.fr.design.style.color.ColorSelectBox;
@ -387,31 +388,35 @@ public final class GUICoreUtils {
* @param y y坐标 * @param y y坐标
*/ */
public static void showPopupMenu(JPopupMenu popup, Component parentComponent, int x, int y) { public static void showPopupMenu(JPopupMenu popup, Component parentComponent, int x, int y) {
if (popup == null) {// check null. if (popup == null) {// check null.
return; return;
} }
Point point = new Point(x, y); Point point = new Point(x, y);
SwingUtilities.convertPointToScreen(point, parentComponent); SwingUtilities.convertPointToScreen(point, parentComponent);
Dimension size = popup.getPreferredSize(); Dimension size = popup.getPreferredSize();
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
screen.setSize(screen.getSize().width, screen.height - HEIGHT_GAP); screen.setSize(screen.getSize().width, screen.height - HEIGHT_GAP);
//父元素右边界的坐标
int showOnScreenX = Math.min(screen.width, parentComponent.getLocationOnScreen().x + parentComponent.getWidth()); int parentComponentRightBorderPosition = parentComponent.getLocationOnScreen().x + parentComponent.getWidth();
//设计器右边界的坐标
// peter:调整X的高度. Rectangle rectangle = DesignerContext.getDesignerFrame().getBounds();
if (point.x + size.width > showOnScreenX && size.width < showOnScreenX) { int designerRightBorderPosition = rectangle.x + rectangle.width;
x += (showOnScreenX - point.x - size.width); rectangle = SwingUtilities.getWindowAncestor(parentComponent).getBounds();
} designerRightBorderPosition = Math.max(designerRightBorderPosition, rectangle.x + rectangle.width);
// peter:调整X的高度.
// peter:调整y高度. if (point.x + size.width > designerRightBorderPosition && size.width < designerRightBorderPosition) {
if (point.y + size.height > screen.height && size.height < screen.height) { x += (parentComponentRightBorderPosition - point.x - size.width);
y -= size.height; }
}
// peter:调整y高度.
popup.show(parentComponent, x, y); if (point.y + size.height > screen.height && size.height < screen.height) {
} y -= size.height;
}
popup.show(parentComponent, x, y);
}
/** /**
* Set enabled.<br> * Set enabled.<br>

7
designer-realize/src/main/java/com/fr/design/report/UnitFieldPane.java

@ -8,6 +8,7 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UIBasicSpinner; import com.fr.design.gui.ispinner.UIBasicSpinner;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.stable.Constants; import com.fr.stable.Constants;
import com.fr.stable.GraphDrawHelper;
import com.fr.stable.OperatingSystem; import com.fr.stable.OperatingSystem;
import com.fr.stable.unit.CM; import com.fr.stable.unit.CM;
import com.fr.stable.unit.INCH; import com.fr.stable.unit.INCH;
@ -52,9 +53,9 @@ public class UnitFieldPane extends JPanel {
this.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_MM")); this.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_MM"));
} }
//ajust the heigt of unitLabel. //自适应label宽度
Dimension unitDimension = new Dimension(this.getPreferredSize().width, int width = GraphDrawHelper.getWidth(this.getText(), this.getFont());
preferredHeight); Dimension unitDimension = new Dimension(width, preferredHeight);
this.setMinimumSize(unitDimension); this.setMinimumSize(unitDimension);
this.setMinimumSize(unitDimension); this.setMinimumSize(unitDimension);
this.setSize(unitDimension); this.setSize(unitDimension);

7
designer-realize/src/main/java/com/fr/grid/GridMouseAdapter.java

@ -10,7 +10,7 @@ import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.mainframe.EastRegionContainerPane;
import com.fr.design.mainframe.ElementCasePane; import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.mainframe.JSliderPane; import com.fr.design.mainframe.JSliderPane;
import com.fr.design.present.CellWriteAttrPane; import com.fr.design.os.impl.PopupDialogSaveAction;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.CellSelection;
import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.FloatSelection;
@ -26,6 +26,7 @@ import com.fr.report.elementcase.TemplateElementCase;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.ColumnRow; import com.fr.stable.ColumnRow;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.os.support.OSSupportCenter;
import com.fr.stable.unit.FU; import com.fr.stable.unit.FU;
import javax.swing.*; import javax.swing.*;
@ -93,7 +94,9 @@ public class GridMouseAdapter implements MouseListener, MouseWheelListener, Mous
if (!grid.hasFocus() && grid.isRequestFocusEnabled()) { if (!grid.hasFocus() && grid.isRequestFocusEnabled()) {
grid.requestFocus(); grid.requestFocus();
} }
// linux下 点击单元格时 失焦之前立即触发保存
PopupDialogSaveAction saveAction = OSSupportCenter.getAction(PopupDialogSaveAction.class);
saveAction.execute();
if (SwingUtilities.isRightMouseButton(evt)) { if (SwingUtilities.isRightMouseButton(evt)) {
doWithRightButtonPressed(); doWithRightButtonPressed();
} else { } else {

Loading…
Cancel
Save