Browse Source

Merge pull request #1578 in BA/design from ~PAUL/design:master to master

* commit 'c27f2729ab2ab7e552b46eb2507e717b8e94e4cd':
  REPORT-6307 右侧面板设置动态参数注入,再次打开后设置丢失
  REPORT-6233 设计器源码的javadoc输出以及包说明
  无jira,打包失败
  REPORT-6186 设计器,单元格添加数据列,第一次点数据列下拉框,列表会自动收回,需要再次点击才能选择数据列选项
  REPORT-6186 设计器,单元格添加数据列,第一次点数据列下拉框,列表会自动收回,需要再次点击才能选择数据列选项
  无jira,去掉这段代码,其他地方改了
  REPORT-6245 设计器,悬浮元素,修改悬浮元素名称,点击确定,日志抛错 优化打开模板速度时回退了 REPORT-5084的pr,重新提交
  REPORT-5979 导入按钮另外单独提供
  REPORT-5979 多次导入excel
  MOBILE-7257 把控件顺序的代码还原回去,已经确认过没有以前的bug问题了。
  代码质量-开发工具配置规范
  REPORT-6123 取色框缩放问题
  REPORT-6095 9.0设计器远程设计无法通过设计器查看日志 REPORT-6123 取色框缩放问题 REPORT-6217 【9.0】本地切换目录后设计器没有日志信息打印
  CHART-1882   堆积和坐标轴界面bug
  CHART-1882   堆积和坐标轴界面bug
  CHART-1882   堆积和坐标轴界面bug
  REPORT-6160 设计器插件推荐页面无法显示
  REPORT-6096 TAB页中组件在复制粘贴后会位移 tab嵌套的情况
  REPORT-6133 [设计器]9.0富文本点开后取消富文本框,右侧的单元格元素中原本的编辑按钮异常
  REPORT-6048 [设计器]绝对画布块中的组件不跟随自适应
superman 7 years ago
parent
commit
2d8c5b68fe
  1. 2
      designer/src/com/fr/design/actions/edit/EditFloatElementNameAction.java
  2. 5
      designer/src/com/fr/design/actions/package.html
  3. 8
      designer/src/com/fr/design/cell/editor/package.html
  4. 5
      designer/src/com/fr/design/condition/package.html
  5. 18
      designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java
  6. 5
      designer/src/com/fr/design/dscolumn/package.html
  7. 5
      designer/src/com/fr/design/expand/package.html
  8. 6
      designer/src/com/fr/design/mainframe/ElementCasePane.java
  9. 2
      designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java
  10. 5
      designer/src/com/fr/design/report/package.html
  11. 87
      designer/src/com/fr/design/webattr/EditToolBar.java
  12. 16
      designer/src/com/fr/design/webattr/ReportWebWidgetConstants.java
  13. 2
      designer/src/com/fr/design/webattr/ToolBarDragPane.java
  14. 5
      designer/src/com/fr/design/webattr/package.html
  15. 2
      designer/src/com/fr/design/widget/WidgetEventPane.java
  16. 5
      designer/src/com/fr/design/widget/package.html
  17. 3
      designer/src/com/fr/grid/event/package.html
  18. 5
      designer/src/com/fr/grid/package.html
  19. 5
      designer/src/com/fr/grid/selection/package.html
  20. 5
      designer/src/com/fr/poly/package.html
  21. 5
      designer/src/com/fr/quickeditor/package.html
  22. 5
      designer_base/src/com/fr/common/inputevent/package.html
  23. 5
      designer_base/src/com/fr/design/bbs/package.html
  24. 5
      designer_base/src/com/fr/design/border/package.html
  25. 5
      designer_base/src/com/fr/design/bridge/package.html
  26. 5
      designer_base/src/com/fr/design/constants/package.html
  27. 5
      designer_base/src/com/fr/design/data/package.html
  28. 4
      designer_base/src/com/fr/design/dialog/package.html
  29. 5
      designer_base/src/com/fr/design/editor/package.html
  30. 5
      designer_base/src/com/fr/design/event/package.html
  31. 10
      designer_base/src/com/fr/design/extra/PluginTask.java
  32. 5
      designer_base/src/com/fr/design/extra/package.html
  33. 5
      designer_base/src/com/fr/design/file/package.html
  34. 5
      designer_base/src/com/fr/design/foldablepane/package.html
  35. 5
      designer_base/src/com/fr/design/formula/package.html
  36. 5
      designer_base/src/com/fr/design/fun/package.html
  37. 9
      designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java
  38. 5
      designer_base/src/com/fr/design/gui/package.html
  39. 5
      designer_base/src/com/fr/design/icon/package.html
  40. 5
      designer_base/src/com/fr/design/javascript/package.html
  41. 5
      designer_base/src/com/fr/design/layout/package.html
  42. 2
      designer_base/src/com/fr/design/mainframe/DesignerFrame.java
  43. 5
      designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java
  44. 5
      designer_base/src/com/fr/design/menu/package.html
  45. 5
      designer_base/src/com/fr/design/module/package.html
  46. 5
      designer_base/src/com/fr/design/object/package.html
  47. 5
      designer_base/src/com/fr/design/preview/package.html
  48. 5
      designer_base/src/com/fr/design/roleAuthority/package.html
  49. 5
      designer_base/src/com/fr/design/scrollruler/package.html
  50. 5
      designer_base/src/com/fr/design/selection/package.html
  51. 2
      designer_base/src/com/fr/design/style/color/ColorSelectDialog.java
  52. 5
      designer_base/src/com/fr/design/style/package.html
  53. 5
      designer_base/src/com/fr/design/utils/package.html
  54. 5
      designer_base/src/com/fr/design/web/package.html
  55. 3
      designer_base/src/com/fr/env/RemoteEnv.java
  56. 5
      designer_base/src/com/fr/env/package.html
  57. 5
      designer_base/src/com/fr/file/filter/package.html
  58. 5
      designer_base/src/com/fr/file/package.html
  59. 5
      designer_base/src/com/fr/start/package.html
  60. 5
      designer_chart/src/com/fr/design/chart/package.html
  61. 5
      designer_chart/src/com/fr/plugin/chart/package.html
  62. 10
      designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java
  63. 8
      designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java
  64. 5
      designer_form/src/com/fr/design/designer/creator/package.html
  65. 5
      designer_form/src/com/fr/design/designer/package.html
  66. 5
      designer_form/src/com/fr/design/designer/properties/package.html
  67. 5
      designer_form/src/com/fr/design/form/package.html
  68. 7
      designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java
  69. 21
      designer_form/src/com/fr/design/mainframe/MobileWidgetTable.java
  70. 5
      designer_form/src/com/fr/design/mainframe/package.html
  71. 5
      designer_form/src/com/fr/design/parameter/package.html
  72. 9
      designer_form/src/com/fr/design/widget/ui/designer/component/WidgetAbsoluteBoundPane.java
  73. 1
      designer_form/src/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java

2
designer/src/com/fr/design/actions/edit/EditFloatElementNameAction.java

@ -39,7 +39,7 @@ public class EditFloatElementNameAction extends FloatSelectionAction {
if (report.getFloatElement(name) == null) { if (report.getFloatElement(name) == null) {
selectedFloatElement.setName(name); selectedFloatElement.setName(name);
} }
reportPane.setSelection(new FloatSelection(name)); ((FloatSelection) reportPane.getSelection()).setFloatName(name);
} }
}); });
nameDialog.setVisible(true); nameDialog.setVisible(true);

5
designer/src/com/fr/design/actions/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
定义了响应各种事件的 Action
</body>
</html>

8
designer/src/com/fr/design/cell/editor/package.html

@ -1,13 +1,9 @@
<html> <html>
<body bgcolor="white"> <body bgcolor="white">
<!CN[这个包中定义了单元格编辑器.包括 这个包中定义了单元格编辑器.包括
单元格编辑器({@link com.fr.cell.editor.CellEditor CellEditor})接口, 单元格编辑器({@link com.fr.cell.editor.CellEditor CellEditor})接口,
抽象实现该接口的{@link com.fr.cell.editor.AbstractCellEditor AbstractCellEditor}类, 抽象实现该接口的{@link com.fr.cell.editor.AbstractCellEditor AbstractCellEditor}类,
继承这个类的数字单元格编辑器({@link com.fr.cell.editor.NumberCellEditor NumberCellEditor})类和 继承这个类的数字单元格编辑器({@link com.fr.cell.editor.NumberCellEditor NumberCellEditor})类和
文本单元格编辑器({@link com.fr.cell.editor.GeneralCellEditor GeneralCellEditor})类.]!> 文本单元格编辑器({@link com.fr.cell.editor.GeneralCellEditor GeneralCellEditor})类.
<!EN[This package defines cell element editor,including {@link com.fr.cell.editor.CellEditor CellEditor}
interface, abstract class {@link com.fr.cell.editor.AbstractCellEditor AbstractCellEditor},
and {@link com.fr.cell.editor.NumberCellEditor NumberCellEditor},
{@link com.fr.cell.editor.GeneralCellEditor GeneralCellEditor} implement the abstract class.]!>
</body> </body>
</html> </html>

5
designer/src/com/fr/design/condition/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
条件属性悬浮编辑框中的相关面板
</body>
</html>

18
designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java

@ -37,6 +37,8 @@ import java.awt.event.ItemEvent;
import java.awt.event.ItemListener; import java.awt.event.ItemListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** /**
@ -57,6 +59,7 @@ public class SelectedDataColumnPane extends BasicPane {
private UIButton paramButton; private UIButton paramButton;
private ElementCasePane casePane; private ElementCasePane casePane;
private CellElement cellElement; // 保存当前选中的 CE
public SelectedDataColumnPane() { public SelectedDataColumnPane() {
this(true, false, null); this(true, false, null);
@ -159,6 +162,7 @@ public class SelectedDataColumnPane extends BasicPane {
if (cellElement == null) { if (cellElement == null) {
return; return;
} }
this.cellElement = cellElement;
if (itemListener != null) { if (itemListener != null) {
removeListener(itemListener); removeListener(itemListener);
} }
@ -259,10 +263,20 @@ public class SelectedDataColumnPane extends BasicPane {
protected void initTableNameComboBox() { protected void initTableNameComboBox() {
tableNameComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource()); tableNameComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource());
final ExecutorService executorService = Executors.newSingleThreadExecutor();
tableNameComboBox.addItemListener(new ItemListener() { tableNameComboBox.addItemListener(new ItemListener() {
@Override @Override
public void itemStateChanged(ItemEvent e) { public void itemStateChanged(ItemEvent e) {
columnNameComboBox.setLoaded(false); if (e.getStateChange() == ItemEvent.SELECTED) {
executorService.execute(new Runnable() {
@Override
public void run() {
synchronized (columnNameComboBox) {
columnNameComboBox.loadInstant();
}
}
});
}
} }
}); });
tableNameComboBox.setPreferredSize(new Dimension(100, 20)); tableNameComboBox.setPreferredSize(new Dimension(100, 20));
@ -303,7 +317,7 @@ public class SelectedDataColumnPane extends BasicPane {
public void doOk() { public void doOk() {
List<ParameterProvider> parameterList = editorPane.update(); List<ParameterProvider> parameterList = editorPane.update();
ps = parameterList.toArray(new Parameter[parameterList.size()]); ps = parameterList.toArray(new Parameter[parameterList.size()]);
update(cellElement); update(SelectedDataColumnPane.this.cellElement);
casePane.fireTargetModified(); casePane.fireTargetModified();
} }
}); });

5
designer/src/com/fr/design/dscolumn/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
数据列相关面板
</body>
</html>

5
designer/src/com/fr/design/expand/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
"单元格属性"->"扩展"的界面
</body>
</html>

6
designer/src/com/fr/design/mainframe/ElementCasePane.java

@ -522,15 +522,15 @@ public abstract class ElementCasePane<T extends TemplateElementCase> extends Tar
* 因为这边判断selection是一个selection所以不会触发fireSelectionChanged * 因为这边判断selection是一个selection所以不会触发fireSelectionChanged
*/ */
public void setSelection(Selection selection) { public void setSelection(Selection selection) {
if (!ComparatorUtils.equals(this.selection, selection) ||
!ComparatorUtils.equals(EastRegionContainerPane.getInstance().getCellAttrPane(), CellElementPropertyPane.getInstance())) {
try { try {
//旧选中内容编辑器释放模板对象 //旧选中内容编辑器释放模板对象
this.getCurrentEditor().release(); this.getCurrentEditor().release();
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException e) {
FRLogger.getLogger().info("Nothing to release"); FRLogger.getLogger().info("Nothing to release");
} }
if (!ComparatorUtils.equals(this.selection, selection) ||
!ComparatorUtils.equals(EastRegionContainerPane.getInstance().getCellAttrPane(), CellElementPropertyPane.getInstance())) {
this.selection = selection; this.selection = selection;
fireSelectionChanged(); fireSelectionChanged();
} }

2
designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java

@ -75,9 +75,7 @@ public class ElementCasePaneDelegate extends ElementCasePane<WorkSheet> {
EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance()); EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance());
return; return;
} }
if (DesignerContext.getDesignerFrame().getSelectedJTemplate() != null) {
CellWidgetPropertyPane.getInstance().populate(ElementCasePaneDelegate.this); CellWidgetPropertyPane.getInstance().populate(ElementCasePaneDelegate.this);
}
CellElementPropertyPane.getInstance().populate(ElementCasePaneDelegate.this); CellElementPropertyPane.getInstance().populate(ElementCasePaneDelegate.this);
QuickEditorRegion.getInstance().populate(getCurrentEditor()); QuickEditorRegion.getInstance().populate(getCurrentEditor());
JTemplate editingTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); JTemplate editingTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();

5
designer/src/com/fr/design/report/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
包含制作模版过程中可能用到的各种面板(如页面设置、富文本编辑、Excel导出、移动端自适应等)
</body>
</html>

87
designer/src/com/fr/design/webattr/EditToolBar.java

@ -34,13 +34,12 @@ import com.fr.report.web.button.Export;
import com.fr.report.web.button.PDFPrint; import com.fr.report.web.button.PDFPrint;
import com.fr.report.web.button.Print; import com.fr.report.web.button.Print;
import com.fr.report.web.button.write.AppendColumnRow; import com.fr.report.web.button.write.AppendColumnRow;
import com.fr.report.web.button.write.ExcelImport;
import com.fr.report.web.button.write.Submit; import com.fr.report.web.button.write.Submit;
import com.fr.stable.ArrayUtils; import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import java.awt.*; import java.awt.*;
@ -295,6 +294,7 @@ public class EditToolBar extends BasicPane {
/** /**
* 动作 * 动作
*
* @param e 事件 * @param e 事件
*/ */
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -320,7 +320,8 @@ public class EditToolBar extends BasicPane {
private CardLayout card; private CardLayout card;
private JPanel centerPane; private JPanel centerPane;
private UICheckBox icon, text, pdf, excelP, excelO, excelS, image, word, private UICheckBox icon, text, pdf, excelP, excelO, excelS, image, word,
flashPrint, pdfPrint, appletPrint, serverPrint, isPopup, isVerify, failSubmit, isCurSheet; flashPrint, pdfPrint, appletPrint, serverPrint, isPopup, isVerify, failSubmit,
isCurSheet, excelImClean, excelImCover, excelImAppend, excelImCust;
private UIBasicSpinner count; private UIBasicSpinner count;
private Widget widget; private Widget widget;
private UITextField nameField; private UITextField nameField;
@ -381,6 +382,7 @@ public class EditToolBar extends BasicPane {
centerPane.setLayout(card); centerPane.setLayout(card);
centerPane.add("custom", getCustomPane()); centerPane.add("custom", getCustomPane());
centerPane.add("export", getExport()); centerPane.add("export", getExport());
centerPane.add("import", getImport());
centerPane.add("print", getPrint()); centerPane.add("print", getPrint());
centerPane.add("none", none); centerPane.add("none", none);
centerPane.add("pdfprint", getPdfPrintSetting()); centerPane.add("pdfprint", getPdfPrintSetting());
@ -427,7 +429,7 @@ public class EditToolBar extends BasicPane {
export.add(word); export.add(word);
export.add(Box.createVerticalStrut(2)); export.add(Box.createVerticalStrut(2));
export.add(image); export.add(image);
for(int i=0; i<ArrayUtils.getLength(exportToolBarProviders); i++){ for (int i = 0; i < ArrayUtils.getLength(exportToolBarProviders); i++) {
export = exportToolBarProviders[i].updateCenterPane(export); export = exportToolBarProviders[i].updateCenterPane(export);
} }
@ -435,6 +437,24 @@ public class EditToolBar extends BasicPane {
return export; return export;
} }
private JPanel getImport() {
JPanel excelImport = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane();
excelImClean = new UICheckBox(Inter.getLocText("FR-Engine_Excel_Import_Clean"));
excelImCover = new UICheckBox(Inter.getLocText("FR-Engine_Excel_Import_Cover"));
excelImAppend = new UICheckBox(Inter.getLocText("FR-Engine_Excel_Import_Append"));
excelImCust = new UICheckBox(Inter.getLocText("FR-Engine-Utils-Import_Excel_Data_Customized"));
excelImport.add(excelImCover);
excelImport.add(Box.createVerticalStrut(2));
excelImport.add(excelImClean);
excelImport.add(Box.createVerticalStrut(2));
excelImport.add(excelImAppend);
excelImport.add(Box.createVerticalStrut(2));
excelImport.add(excelImCust);
excelImport.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText(new String[]{"Form-Button", "Property", "Set"}), null));
return excelImport;
}
private JPanel getPrint() { private JPanel getPrint() {
JPanel print = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane(); JPanel print = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane();
// print.setLayout(new BoxLayout(print, BoxLayout.Y_AXIS)); // print.setLayout(new BoxLayout(print, BoxLayout.Y_AXIS));
@ -496,7 +516,7 @@ public class EditToolBar extends BasicPane {
if (!(widget instanceof CustomToolBarButton)) { if (!(widget instanceof CustomToolBarButton)) {
return; return;
} }
if (javaScriptPane == null || ((CustomToolBarButton)widget).getJSImpl() == null) { if (javaScriptPane == null || ((CustomToolBarButton) widget).getJSImpl() == null) {
javaScriptPane = JavaScriptActionPane.createDefault(); javaScriptPane = JavaScriptActionPane.createDefault();
} }
javaScriptPane.setPreferredSize(new Dimension(750, 500)); javaScriptPane.setPreferredSize(new Dimension(750, 500));
@ -513,6 +533,7 @@ public class EditToolBar extends BasicPane {
/** /**
* 更新 * 更新
*
* @param widget 对应组件 * @param widget 对应组件
*/ */
public void populate(Widget widget) { public void populate(Widget widget) {
@ -533,6 +554,8 @@ public class EditToolBar extends BasicPane {
populateSubmit(); populateSubmit();
} else if (widget instanceof CustomToolBarButton) { } else if (widget instanceof CustomToolBarButton) {
populateCustomToolBarButton(); populateCustomToolBarButton();
} else if (widget instanceof ExcelImport) {
populateImport();
} }
Set<ExtraButtonToolBarProvider> extraButtonSet = ExtraDesignClassManager.getInstance().getArray(ExtraButtonToolBarProvider.XML_TAG); Set<ExtraButtonToolBarProvider> extraButtonSet = ExtraDesignClassManager.getInstance().getArray(ExtraButtonToolBarProvider.XML_TAG);
@ -541,12 +564,12 @@ public class EditToolBar extends BasicPane {
} }
} }
private void populateAppendColumnRow(){ private void populateAppendColumnRow() {
card.show(centerPane, "appendcount"); card.show(centerPane, "appendcount");
count.setValue(((AppendColumnRow) widget).getCount()); count.setValue(((AppendColumnRow) widget).getCount());
} }
private void populateExport(){ private void populateExport() {
card.show(centerPane, "export"); card.show(centerPane, "export");
Export export = (Export) widget; Export export = (Export) widget;
this.pdf.setSelected(export.isPdfAvailable()); this.pdf.setSelected(export.isPdfAvailable());
@ -555,14 +578,24 @@ public class EditToolBar extends BasicPane {
this.excelS.setSelected(export.isExcelSAvailable()); this.excelS.setSelected(export.isExcelSAvailable());
this.word.setSelected(export.isWordAvailable()); this.word.setSelected(export.isWordAvailable());
this.image.setSelected(export.isImageAvailable()); this.image.setSelected(export.isImageAvailable());
if(exportToolBarProviders != null){ if (exportToolBarProviders != null) {
for(int i=0; i<exportToolBarProviders.length; i++){ for (int i = 0; i < exportToolBarProviders.length; i++) {
exportToolBarProviders[i].populate();; exportToolBarProviders[i].populate();
;
} }
} }
} }
private void populateCustomToolBarButton(){ private void populateImport() {
card.show(centerPane, "import");
ExcelImport export = (ExcelImport) widget;
this.excelImCover.setSelected(export.isExcelCoverAvailable());
this.excelImClean.setSelected(export.isExcelCleanAvailable());
this.excelImAppend.setSelected(export.isExcelAppendAvailable());
this.excelImCust.setSelected(export.isExcelCustAvailable());
}
private void populateCustomToolBarButton() {
card.show(centerPane, "custom"); card.show(centerPane, "custom");
CustomToolBarButton customToolBarButton = (CustomToolBarButton) widget; CustomToolBarButton customToolBarButton = (CustomToolBarButton) widget;
if (customToolBarButton.getJSImpl() != null) { if (customToolBarButton.getJSImpl() != null) {
@ -570,7 +603,7 @@ public class EditToolBar extends BasicPane {
} }
} }
private void populateSubmit(){ private void populateSubmit() {
card.show(centerPane, "submit"); card.show(centerPane, "submit");
Submit submit = ((Submit) widget); Submit submit = ((Submit) widget);
this.isVerify.setSelected(submit.isVerify()); this.isVerify.setSelected(submit.isVerify());
@ -581,13 +614,13 @@ public class EditToolBar extends BasicPane {
this.isCurSheet.setSelected(submit.isOnlySubmitSelect()); this.isCurSheet.setSelected(submit.isOnlySubmitSelect());
} }
private void populatePDFPrint(){ private void populatePDFPrint() {
card.show(centerPane, "pdfprint"); card.show(centerPane, "pdfprint");
PDFPrint pdfPrint = (PDFPrint) widget; PDFPrint pdfPrint = (PDFPrint) widget;
this.isPopup.setSelected(pdfPrint.isPopup()); this.isPopup.setSelected(pdfPrint.isPopup());
} }
private void populatePrint(){ private void populatePrint() {
card.show(centerPane, "print"); card.show(centerPane, "print");
Print print = (Print) widget; Print print = (Print) widget;
this.pdfPrint.setSelected(print.isPDFPrint()); this.pdfPrint.setSelected(print.isPDFPrint());
@ -596,7 +629,7 @@ public class EditToolBar extends BasicPane {
this.serverPrint.setSelected(print.isServerPrint()); this.serverPrint.setSelected(print.isServerPrint());
} }
private void populateDefault(){ private void populateDefault() {
Button button = (Button) widget; Button button = (Button) widget;
this.icon.setSelected(button.isShowIcon()); this.icon.setSelected(button.isShowIcon());
this.text.setSelected(button.isShowText()); this.text.setSelected(button.isShowText());
@ -623,6 +656,8 @@ public class EditToolBar extends BasicPane {
updateSubmit(); updateSubmit();
} else if (widget instanceof CustomToolBarButton) { } else if (widget instanceof CustomToolBarButton) {
((CustomToolBarButton) widget).setJSImpl(this.javaScriptPane.updateBean()); ((CustomToolBarButton) widget).setJSImpl(this.javaScriptPane.updateBean());
} else if (widget instanceof ExcelImport) {
updateImport();
} }
if (widget instanceof Button) { if (widget instanceof Button) {
updateDefault(); updateDefault();
@ -636,21 +671,21 @@ public class EditToolBar extends BasicPane {
return widget; return widget;
} }
private void updateDefault(){ private void updateDefault() {
((Button) widget).setShowIcon(this.icon.isSelected()); ((Button) widget).setShowIcon(this.icon.isSelected());
((Button) widget).setShowText(this.text.isSelected()); ((Button) widget).setShowText(this.text.isSelected());
((Button) widget).setText(this.nameField.getText()); ((Button) widget).setText(this.nameField.getText());
((Button) widget).setIconName(this.iconPane.update()); ((Button) widget).setIconName(this.iconPane.update());
} }
private void updateSubmit(){ private void updateSubmit() {
Submit submit = ((Submit) widget); Submit submit = ((Submit) widget);
submit.setVerify(this.isVerify.isSelected()); submit.setVerify(this.isVerify.isSelected());
submit.setFailVerifySubmit(this.failSubmit.isSelected()); submit.setFailVerifySubmit(this.failSubmit.isSelected());
submit.setOnlySubmitSelect(this.isCurSheet.isSelected()); submit.setOnlySubmitSelect(this.isCurSheet.isSelected());
} }
private void updatePrint(){ private void updatePrint() {
Print print = (Print) widget; Print print = (Print) widget;
print.setAppletPrint(this.appletPrint.isSelected()); print.setAppletPrint(this.appletPrint.isSelected());
print.setFlashPrint(this.flashPrint.isSelected()); print.setFlashPrint(this.flashPrint.isSelected());
@ -658,7 +693,7 @@ public class EditToolBar extends BasicPane {
print.setServerPrint(this.serverPrint.isSelected()); print.setServerPrint(this.serverPrint.isSelected());
} }
private void updateExport(){ private void updateExport() {
Export export = (Export) widget; Export export = (Export) widget;
export.setPdfAvailable(this.pdf.isSelected()); export.setPdfAvailable(this.pdf.isSelected());
export.setExcelPAvailable(this.excelP.isSelected()); export.setExcelPAvailable(this.excelP.isSelected());
@ -666,12 +701,20 @@ public class EditToolBar extends BasicPane {
export.setExcelSAvailable(this.excelS.isSelected()); export.setExcelSAvailable(this.excelS.isSelected());
export.setWordAvailable(this.word.isSelected()); export.setWordAvailable(this.word.isSelected());
export.setImageAvailable(this.image.isSelected()); export.setImageAvailable(this.image.isSelected());
if(exportToolBarProviders != null){ if (exportToolBarProviders != null) {
for(int i=0; i<exportToolBarProviders.length; i++){ for (int i = 0; i < exportToolBarProviders.length; i++) {
exportToolBarProviders[i].update();; exportToolBarProviders[i].update();
} }
} }
} }
private void updateImport() {
ExcelImport excelImport = (ExcelImport) widget;
excelImport.setExcelCleanAvailable(this.excelImClean.isSelected());
excelImport.setExcelCoverAvailable(this.excelImCover.isSelected());
excelImport.setExcelAppendAvailable(this.excelImAppend.isSelected());
excelImport.setExcelCustAvailable(this.excelImCust.isSelected());
}
} }
} }

16
designer/src/com/fr/design/webattr/ReportWebWidgetConstants.java

@ -32,7 +32,8 @@ public class ReportWebWidgetConstants {
public static WidgetOption[] getWriteToolBarInstance() { public static WidgetOption[] getWriteToolBarInstance() {
return new WidgetOption[]{SUBMIT, VERIFY, EMAIL, EXPORT, PDF, EXCELP, EXCELO, EXCELS, WORD, PRINT, FLASHPRINT, APPLETPRINT, PDFPRINT, IMPORTEXCELDATA, SHOWCELLVALUE, return new WidgetOption[]{SUBMIT, VERIFY, EMAIL, EXPORT, PDF, EXCELP, EXCELO, EXCELS, WORD, PRINT, FLASHPRINT, APPLETPRINT, PDFPRINT, IMPORTEXCELDATA, SHOWCELLVALUE,
APPENDCOLUMNROW, DELETECOLUMNROW, SETPRINTEROFFSET, WRITEOFFLINEHTML, CUSTOM_BUTTON, WRITESTASH, WRITESTASHCLEAR, IMPORTEXCELDATA_CUSTOMIZED}; APPENDCOLUMNROW, DELETECOLUMNROW, SETPRINTEROFFSET, WRITEOFFLINEHTML, CUSTOM_BUTTON, WRITESTASH, WRITESTASHCLEAR, IMPORTEXCELDATA_CUSTOMIZED,
IMPORTEXCEL, IMPORTEXCEL_COVER, IMPORTEXCEL_CLEAN, IMPORTEXCEL_APPEND};
} }
public static WidgetOption[] getFormToolBarInstance() { public static WidgetOption[] getFormToolBarInstance() {
@ -148,5 +149,16 @@ public class ReportWebWidgetConstants {
// 数据清空 // 数据清空
public static final WidgetOption WRITESTASHCLEAR = WidgetOptionFactory public static final WidgetOption WRITESTASHCLEAR = WidgetOptionFactory
.createByWidgetClass(Inter.getLocText("FR-Engine-Write_Clear"), BaseUtils.readIcon("/com/fr/web/images/edit/clearstash.png"), ClearStashedButton.class); .createByWidgetClass(Inter.getLocText("FR-Engine-Write_Clear"), BaseUtils.readIcon("/com/fr/web/images/edit/clearstash.png"), ClearStashedButton.class);
//Excel导入
public static final WidgetOption IMPORTEXCEL= WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_Excel_Import_Repeat"),
BaseUtils.readIcon("/com/fr/web/images/excel.png"), ExcelImport.class);
//Excel导入_覆盖
public static final WidgetOption IMPORTEXCEL_COVER= WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_Excel_Import_Cover"),
BaseUtils.readIcon("/com/fr/web/images/excel.png"), ImExcelCover.class);
//Excel导入_清空
public static final WidgetOption IMPORTEXCEL_CLEAN= WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_Excel_Import_Clean"),
BaseUtils.readIcon("/com/fr/web/images/excel.png"), ImExcelClean.class);
//Excel导入_增量
public static final WidgetOption IMPORTEXCEL_APPEND= WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_Excel_Import_Append"),
BaseUtils.readIcon("/com/fr/web/images/excel.png"), ImExcelAppend.class);
} }

2
designer/src/com/fr/design/webattr/ToolBarDragPane.java

@ -34,7 +34,7 @@ import java.awt.image.ImageObserver;
public class ToolBarDragPane extends WidgetToolBarPane { public class ToolBarDragPane extends WidgetToolBarPane {
private static final int COLUMN = 4; private static final int COLUMN = 4;
private int row = 6; private int row = 7;
private DefaultTableModel toolbarButtonTableModel; private DefaultTableModel toolbarButtonTableModel;
private JTable layoutTable; private JTable layoutTable;
private UICheckBox isUseToolBarCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Use_ToolBar") + ":"); // 是否使用工具栏 private UICheckBox isUseToolBarCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Use_ToolBar") + ":"); // 是否使用工具栏

5
designer/src/com/fr/design/webattr/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
模版web属性相关界面
</body>
</html>

2
designer/src/com/fr/design/widget/WidgetEventPane.java

@ -91,7 +91,7 @@ public class WidgetEventPane extends ObjectUIControlPane {
@Override @Override
protected DBManipulationPane createDBManipulationPane() { protected DBManipulationPane createDBManipulationPane() {
if(epane == null) { if(epane == null && DesignerContext.getDesignerFrame().getSelectedJTemplate() != null) {
return autoCreateDBManipulationInWidgetEventPane(); return autoCreateDBManipulationInWidgetEventPane();
} }

5
designer/src/com/fr/design/widget/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
控件设置相关面板
</body>
</html>

3
designer/src/com/fr/grid/event/package.html

@ -1,6 +1,5 @@
<html> <html>
<body bgcolor="white"> <body bgcolor="white">
<!CN[这个包中定义了监听单元格变化的接口和类.]!> 这个包中定义了监听单元格变化的接口和类.
<!EN[This package defines cell element listener classes and event classes.]!>
</body> </body>
</html> </html>

5
designer/src/com/fr/grid/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
表格相关
</body>
</html>

5
designer/src/com/fr/grid/selection/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
定义了表格的选择模型
</body>
</html>

5
designer/src/com/fr/poly/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
聚合报表的设计器、控件、事件处理等
</body>
</html>

5
designer/src/com/fr/quickeditor/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
这个包定义了各种单元格元素(如数据列、公式、富文本等)、图表块以及悬浮元素的编辑器
</body>
</html>

5
designer_base/src/com/fr/common/inputevent/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
处理输入事件的工具类
</body>
</html>

5
designer_base/src/com/fr/design/bbs/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
论坛相关的工具类
</body>
</html>

5
designer_base/src/com/fr/design/border/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
边框组件
</body>
</html>

5
designer_base/src/com/fr/design/bridge/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
沟通 designer 和 designer_form 的接口类
</body>
</html>

5
designer_base/src/com/fr/design/constants/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
全局常量
</body>
</html>

5
designer_base/src/com/fr/design/data/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
数据集相关的面板和组件
</body>
</html>

4
designer_base/src/com/fr/design/dialog/package.html

@ -1,8 +1,8 @@
<html> <html>
<body bgcolor="white"> <body bgcolor="white">
Defined some dialogs that can be used in your applications of applets, For example: 定义了一些对话框,使用示例:
PageSetupDialog({@link com.fr.dialog.PageSetupDialog PageSetupDialog}), PageSetupDialog({@link com.fr.dialog.PageSetupDialog PageSetupDialog}),
StyleDialog({@link com.fr.dialog.core.ColorSelectBox ColorSelectBox}), StyleDialog({@link com.fr.dialog.core.ColorSelectBox ColorSelectBox}),
CellBorderDialog({@link com.fr.dialog.CellBorderDialog CellBorderDialog}).]!> CellBorderDialog({@link com.fr.dialog.CellBorderDialog CellBorderDialog})>
</body> </body>
</html> </html>

5
designer_base/src/com/fr/design/editor/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
各种编辑器(文本、日期、数字等)组件
</body>
</html>

5
designer_base/src/com/fr/design/event/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
事件处理的工具类
</body>
</html>

10
designer_base/src/com/fr/design/extra/PluginTask.java

@ -74,6 +74,9 @@ public class PluginTask<T> extends Task<T> {
* 2.js字符串中的\n会导致js字符串变成多行,而js字符串不支持多行拼接 * 2.js字符串中的\n会导致js字符串变成多行,而js字符串不支持多行拼接
* 3.由JSONObject.toString()得到的字符串中html标签的属性会自动加上\造成替换难度加大 * 3.由JSONObject.toString()得到的字符串中html标签的属性会自动加上\造成替换难度加大
* 这边建议去除所有的html标签 * 这边建议去除所有的html标签
* 字符\在java中实际存储的是\\,替换字符串\\n, 需要用\\\\n;
* "\t""\n""\t" 转义成"";
* "\\"需要转换成"\\\";
* *
* @param old 原始字符串 * @param old 原始字符串
* @return 处理之后的字符串 * @return 处理之后的字符串
@ -81,7 +84,12 @@ public class PluginTask<T> extends Task<T> {
private String trimText(String old) { private String trimText(String old) {
if (StringUtils.isNotBlank(old)) { if (StringUtils.isNotBlank(old)) {
String b = filterHtmlTag(old); String b = filterHtmlTag(old);
return b.replaceAll("\\\\n", StringUtils.EMPTY).replaceAll("\\\\t", StringUtils.EMPTY).replaceAll("\"", "\\\\\"").replaceAll("\'", "\\\\\'").replaceAll("\\\\\\\\", "\\\\\\\\\\\\"); return b.replaceAll("\\\\n", StringUtils.EMPTY)
.replaceAll("\\\\r", StringUtils.EMPTY)
.replaceAll("\\\\t", StringUtils.EMPTY)
.replaceAll("\"", "\\\\\"")
.replaceAll("\'", "\\\\\'")
.replaceAll("\\\\\\\\", "\\\\\\\\\\\\");
} }
return StringUtils.EMPTY; return StringUtils.EMPTY;
} }

5
designer_base/src/com/fr/design/extra/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
用户登录、插件商城等功能
</body>
</html>

5
designer_base/src/com/fr/design/file/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
历史模版、新建模版、保存模版、模版tab、模版树等界面和功能
</body>
</html>

5
designer_base/src/com/fr/design/foldablepane/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
可折叠面板组件
</body>
</html>

5
designer_base/src/com/fr/design/formula/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
公式编辑相关面板
</body>
</html>

5
designer_base/src/com/fr/design/fun/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
提供一些 UI 接口
</body>
</html>

9
designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java

@ -59,14 +59,11 @@ public abstract class LazyComboBox extends UIComboBox implements PopupMenuListen
} }
/** /**
* 通过调用该方法在点击下拉框按钮之前就加载好数据 * 通过调用该方法在点击下拉框按钮之前就加载好数据,不需要出现loading了
*/ */
public void loadInstant() { public void loadInstant() {
if (loaded) { setLoaded(true);
return; loadList();
}
setModel(new DefaultComboBoxModel(load()));
loaded = true;
} }
@Override @Override

5
designer_base/src/com/fr/design/gui/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
包含一些 UI 组件
</body>
</html>

5
designer_base/src/com/fr/design/icon/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
定义一些 icon
</body>
</html>

5
designer_base/src/com/fr/design/javascript/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
javascript 编辑面板
</body>
</html>

5
designer_base/src/com/fr/design/layout/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
这个包定义了一些布局
</body>
</html>

2
designer_base/src/com/fr/design/mainframe/DesignerFrame.java

@ -944,8 +944,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta
} else { } else {
this.addAndActivateJTemplate(jt); this.addAndActivateJTemplate(jt);
} }
//REPORT-5084:激活后刷新一下右側面板
jt.refreshEastPropertiesPane();
} }
/** /**

5
designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java

@ -11,6 +11,7 @@ import com.fr.general.FRLogLevel;
import com.fr.general.FRLogger; import com.fr.general.FRLogger;
import com.fr.general.GeneralContext; import com.fr.general.GeneralContext;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.LogRecordTime;
import com.fr.log.LogHandler; import com.fr.log.LogHandler;
import com.fr.stable.EnvChangedListener; import com.fr.stable.EnvChangedListener;
import com.fr.stable.xml.LogRecordTimeProvider; import com.fr.stable.xml.LogRecordTimeProvider;
@ -159,6 +160,10 @@ public class DesignerLogHandler {
logHandlerArea.printStackTrace(message, level, date); logHandlerArea.printStackTrace(message, level, date);
} }
public void printRemoteLog(LogRecordTime logRecordTime) {
logHandlerArea.printStackTrace(logRecordTime);
}
private class LogHandlerArea extends JPanel { private class LogHandlerArea extends JPanel {
private static final long serialVersionUID = 8215630927304621660L; private static final long serialVersionUID = 8215630927304621660L;

5
designer_base/src/com/fr/design/menu/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
菜单组件
</body>
</html>

5
designer_base/src/com/fr/design/module/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
设计器模块相关
</body>
</html>

5
designer_base/src/com/fr/design/object/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
包含与对象有关的工具类
</body>
</html>

5
designer_base/src/com/fr/design/preview/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
模版预览方式
</body>
</html>

5
designer_base/src/com/fr/design/roleAuthority/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
权限编辑相关代码
</body>
</html>

5
designer_base/src/com/fr/design/scrollruler/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
标尺的实现类
</body>
</html>

5
designer_base/src/com/fr/design/selection/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
与选择模型有关的接口和抽象类
</body>
</html>

2
designer_base/src/com/fr/design/style/color/ColorSelectDialog.java

@ -84,7 +84,7 @@ public class ColorSelectDialog extends MiddleChartDialog{
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add(pane,BorderLayout.NORTH); this.add(pane,BorderLayout.NORTH);
this.setBasicDialogSize(545,500); this.setBasicDialogSize(545,500);
this.setResizable(false);
JPanel buttonPane = new JPanel(); JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));

5
designer_base/src/com/fr/design/style/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
与样式(颜色、边框、字体、对齐方式等)有关的面板和功能
</body>
</html>

5
designer_base/src/com/fr/design/utils/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
提供一些工具类
</body>
</html>

5
designer_base/src/com/fr/design/web/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
定义与web端展示有关的类
</body>
</html>

3
designer_base/src/com/fr/env/RemoteEnv.java vendored

@ -25,6 +25,7 @@ import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.fun.DesignerEnvProcessor; import com.fr.design.fun.DesignerEnvProcessor;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrameFileDealerPane; import com.fr.design.mainframe.DesignerFrameFileDealerPane;
import com.fr.design.mainframe.loghandler.DesignerLogHandler;
import com.fr.file.CacheManager; import com.fr.file.CacheManager;
import com.fr.file.DatasourceManager; import com.fr.file.DatasourceManager;
import com.fr.file.DatasourceManagerProvider; import com.fr.file.DatasourceManagerProvider;
@ -1838,7 +1839,7 @@ public class RemoteEnv extends AbstractEnv {
} }
LogRecordTime[] records = LogUtils.readXMLLogRecords(input); LogRecordTime[] records = LogUtils.readXMLLogRecords(input);
for (LogRecordTime logRecordTime : records) { for (LogRecordTime logRecordTime : records) {
//TODO DesignerLogHandler.getInstance().printRemoteLog(logRecordTime);
} }
} }

5
designer_base/src/com/fr/env/package.html vendored

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
报表工作环境相关(本地设计、远程设计)
</body>
</html>

5
designer_base/src/com/fr/file/filter/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
文件过滤器
</body>
</html>

5
designer_base/src/com/fr/file/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
与文件有关的工具类
</body>
</html>

5
designer_base/src/com/fr/start/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
包含启动设计器的相关类(其中 Designer 是整个设计器程序的入口)
</body>
</html>

5
designer_chart/src/com/fr/design/chart/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
图表相关的代码
</body>
</html>

5
designer_chart/src/com/fr/plugin/chart/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
图表(新特性)
</body>
</html>

10
designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java

@ -171,16 +171,14 @@ public class XWAbsoluteLayout extends XLayoutContainer {
tabLayout.updateBoundsWidget(); tabLayout.updateBoundsWidget();
} }
} }
BoundsWidget boundsWidget = (BoundsWidget) layout.getBoundsWidget(xCreator.toData());
Rectangle rectangle = dealWidgetBound(xCreator.getBounds());
} }
private Rectangle calculateBound(Rectangle rec, double pw, double ph) { private Rectangle calculateBound(Rectangle rec, double pw, double ph) {
Rectangle calRec = new Rectangle(0, 0, 0, 0); Rectangle calRec = new Rectangle(0, 0, 0, 0);
calRec.x = (int) (rec.x / pw); calRec.x = (int) Math.round(rec.x / pw);
calRec.y = (int) (rec.y / ph); calRec.y = (int) Math.round(rec.y / ph);
calRec.width = (int) (rec.width / pw); calRec.width = (int) Math.round(rec.width / pw);
calRec.height = (int) (rec.height / ph); calRec.height = (int) Math.round(rec.height / ph);
return calRec; return calRec;
} }

8
designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java

@ -17,7 +17,6 @@ import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget;
import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WBorderLayout;
import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget;
import com.fr.general.Inter; import com.fr.general.Inter;
import java.awt.*; import java.awt.*;
@ -274,4 +273,11 @@ public class XWCardMainBorderLayout extends XWBorderLayout{
return this; return this;
} }
} }
/**
* data属性改变触发其他操作
*
*/
public void firePropertyChange(){
}
} }

5
designer_form/src/com/fr/design/designer/creator/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
各种表单控件
</body>
</html>

5
designer_form/src/com/fr/design/designer/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
设计器
</body>
</html>

5
designer_form/src/com/fr/design/designer/properties/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
控件属性相关
</body>
</html>

5
designer_form/src/com/fr/design/form/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
表单特有的类和文件
</body>
</html>

7
designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java

@ -142,6 +142,13 @@ public class FormSelectionUtils {
} }
} }
} }
Component[] components = copiedCreator.getComponents();
for (Component component : components) {
try {
resetTabSub2RealSize((XCreator) component);
} catch (ClassCastException ignored) {
}
}
} }
/** /**

21
designer_form/src/com/fr/design/mainframe/MobileWidgetTable.java

@ -247,31 +247,30 @@ public class MobileWidgetTable extends JTable {
* @return String[][] 二维数组[0][0]widgetName * @return String[][] 二维数组[0][0]widgetName
*/ */
private String[][] getData() { private String[][] getData() {
List<String> mobileWidgetList = new ArrayList<String>();
if (designer.isFormParaDesigner()) { if (designer.isFormParaDesigner()) {
return new String[0][0]; return new String[0][0];
} }
WSortLayout body = (WSortLayout) designer.getRootComponent().toData(); //选择的控件
XCreator selectedCreator = designer.getSelectionModel().getSelection().getSelectedCreator();
Widget selectedModel = selectedCreator != null ? selectedCreator.toData() : null;
if (body == null) { if (selectedModel == null) {
return new String[0][0]; return new String[0][0];
} }
if (body.getWidgetCount() > 0 && body.getWidget(0).acceptType(WAbsoluteBodyLayout.class)) { // 选择的控件有两种类型,一种是WLayout,代表容器,一种是Widget,代表控件
WAbsoluteBodyLayout absoluteBodyLayout = (WAbsoluteBodyLayout) ((WAbsoluteLayout.BoundsWidget) body.getWidget(0)).getWidget(); if (selectedModel.acceptType(WSortLayout.class)) {
mobileWidgetList = absoluteBodyLayout.getOrderedMobileWidgetList(); List<String> mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList();
} else {
mobileWidgetList = body.getOrderedMobileWidgetList();
}
String[][] widgetName = new String[mobileWidgetList.size() + 1][1]; String[][] widgetName = new String[mobileWidgetList.size() + 1][1];
widgetName[0][0] = Inter.getLocText("FR-Designer_WidgetOrder"); widgetName[0][0] = Inter.getLocText("FR-Designer_WidgetOrder");
for (int i = 0; i < mobileWidgetList.size(); i++) { for (int i = 0; i < mobileWidgetList.size(); i++) {
widgetName[i + 1][0] = mobileWidgetList.get(i); widgetName[i + 1][0] = mobileWidgetList.get(i);
} }
return widgetName; return widgetName;
} else {
return new String[0][0];
}
} }
public boolean isCollapsed() { public boolean isCollapsed() {

5
designer_form/src/com/fr/design/mainframe/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
设计器整体框架
</body>
</html>

5
designer_form/src/com/fr/design/parameter/package.html

@ -0,0 +1,5 @@
<html>
<body bgcolor="white">
参数面板
</body>
</html>

9
designer_form/src/com/fr/design/widget/ui/designer/component/WidgetAbsoluteBoundPane.java

@ -1,7 +1,11 @@
package com.fr.design.widget.ui.designer.component; package com.fr.design.widget.ui.designer.component;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XWAbsoluteLayout;
import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.mainframe.FormDesigner;
import com.fr.design.mainframe.WidgetPropertyPane;
import com.fr.design.utils.gui.LayoutUtils;
import com.fr.design.widget.WidgetBoundsPaneFactory; import com.fr.design.widget.WidgetBoundsPaneFactory;
import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.WLayout;
import com.fr.general.Inter; import com.fr.general.Inter;
@ -35,6 +39,8 @@ public class WidgetAbsoluteBoundPane extends WidgetBoundPane {
@Override @Override
public void update() { public void update() {
FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner();
formDesigner.getSelectionModel().getSelection().backupBounds();
super.update(); super.update();
Rectangle bounds = new Rectangle(creator.getBounds()); Rectangle bounds = new Rectangle(creator.getBounds());
bounds.x = (int) x.getValue(); bounds.x = (int) x.getValue();
@ -45,6 +51,9 @@ public class WidgetAbsoluteBoundPane extends WidgetBoundPane {
WLayout wabs = parent.toData(); WLayout wabs = parent.toData();
wabs.setBounds(creator.toData(), bounds); wabs.setBounds(creator.toData(), bounds);
creator.setBounds(bounds); creator.setBounds(bounds);
LayoutUtils.layoutContainer(creator);
XWAbsoluteLayout layout = (XWAbsoluteLayout) parent;
layout.updateBoundsWidget(creator);
} }
@Override @Override

1
designer_form/src/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java

@ -81,6 +81,7 @@ public class WidgetBoundPane extends BasicPane {
public void fix() { public void fix() {
Rectangle bounds = new Rectangle(creator.getBounds()); Rectangle bounds = new Rectangle(creator.getBounds());
creator.setBackupBound(creator.getBounds());
int w = (int) width.getValue(); int w = (int) width.getValue();
int h = (int) height.getValue(); int h = (int) height.getValue();
Rectangle rec = ComponentUtils.getRelativeBounds(parent); Rectangle rec = ComponentUtils.getRelativeBounds(parent);

Loading…
Cancel
Save