fr_shine 7 years ago
parent
commit
ad4f0398e2
  1. 5
      designer/src/com/fr/design/actions/CellSelectionAction.java
  2. 8
      designer/src/com/fr/design/actions/ElementCaseAction.java
  3. 5
      designer/src/com/fr/design/actions/SelectionListenerAction.java
  4. 9
      designer/src/com/fr/design/actions/columnrow/DSColumnConditionAction.java
  5. 4
      designer/src/com/fr/design/actions/insert/cell/AbstractCellAction.java
  6. 13
      designer/src/com/fr/design/actions/insert/cell/BiasCellAction.java
  7. 8
      designer/src/com/fr/design/actions/insert/cell/ChartCellAction.java
  8. 12
      designer/src/com/fr/design/actions/insert/cell/DSColumnCellAction.java
  9. 10
      designer/src/com/fr/design/actions/insert/cell/FormulaCellAction.java
  10. 10
      designer/src/com/fr/design/actions/insert/cell/GeneralCellAction.java
  11. 10
      designer/src/com/fr/design/actions/insert/cell/ImageCellAction.java
  12. 21
      designer/src/com/fr/design/actions/insert/cell/RichTextCellAction.java
  13. 21
      designer/src/com/fr/design/actions/insert/cell/SubReportCellAction.java
  14. 38
      designer/src/com/fr/design/dscolumn/DSColumnAdvancedEditorPane.java
  15. 84
      designer/src/com/fr/design/dscolumn/DSColumnBasicEditorPane.java
  16. 27
      designer/src/com/fr/design/dscolumn/DSColumnBasicPane.java
  17. 4
      designer/src/com/fr/design/dscolumn/DSColumnPane.java
  18. 58
      designer/src/com/fr/design/dscolumn/ResultSetGroupDockingPane.java
  19. 14
      designer/src/com/fr/design/dscolumn/SelectedConfirmedDataColumnPane.java
  20. 99
      designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java
  21. 3
      designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java
  22. 4
      designer/src/com/fr/design/mainframe/cell/CellEditorPane.java
  23. 8
      designer/src/com/fr/design/module/DesignerModule.java
  24. 2
      designer/src/com/fr/design/present/BarCodePane.java
  25. 4
      designer/src/com/fr/design/present/CurrencyLinePane.java
  26. 1
      designer/src/com/fr/design/widget/WidgetPane.java
  27. 1
      designer/src/com/fr/design/widget/ui/ButtonDefinePane.java
  28. 35
      designer/src/com/fr/design/widget/ui/ButtonGroupDictPane.java
  29. 32
      designer/src/com/fr/design/widget/ui/CheckBoxDefinePane.java
  30. 42
      designer/src/com/fr/design/widget/ui/CheckBoxDictPane.java
  31. 55
      designer/src/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java
  32. 23
      designer/src/com/fr/design/widget/ui/ComboBoxDefinePane.java
  33. 43
      designer/src/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java
  34. 65
      designer/src/com/fr/design/widget/ui/CustomWritableRepeatEditorPane.java
  35. 211
      designer/src/com/fr/design/widget/ui/DateEditorDefinePane.java
  36. 12
      designer/src/com/fr/design/widget/ui/DirectWriteEditorDefinePane.java
  37. 76
      designer/src/com/fr/design/widget/ui/IframeEditorDefinePane.java
  38. 24
      designer/src/com/fr/design/widget/ui/ListEditorDefinePane.java
  39. 64
      designer/src/com/fr/design/widget/ui/MultiFileEditorPane.java
  40. 61
      designer/src/com/fr/design/widget/ui/NumberEditorDefinePane.java
  41. 17
      designer/src/com/fr/design/widget/ui/RadioGroupDefinePane.java
  42. 6
      designer/src/com/fr/design/widget/ui/TreeEditorDefinePane.java
  43. 2
      designer/src/com/fr/design/widget/ui/WaterMarkDictPane.java
  44. 2
      designer/src/com/fr/design/widget/ui/WritableRepeatEditorPane.java
  45. 32
      designer/src/com/fr/design/widget/ui/WriteUnableRepeatEditorPane.java
  46. 7
      designer/src/com/fr/design/widget/ui/btn/AppendRowButtonDefinePane.java
  47. 9
      designer/src/com/fr/design/widget/ui/btn/DefineAppendColumnRowPane.java
  48. 25
      designer/src/com/fr/design/widget/ui/btn/DefineDeleteColumnRowPane.java
  49. 7
      designer/src/com/fr/design/widget/ui/btn/DeleteRowButtonDefinePane.java
  50. 20
      designer/src/com/fr/design/widget/ui/btn/FreeButtonDetailPane.java
  51. 227
      designer/src/com/fr/quickeditor/CellQuickEditor.java
  52. 2
      designer/src/com/fr/quickeditor/ChartQuickEditor.java
  53. 30
      designer/src/com/fr/quickeditor/cellquick/CellBiasTextPainterEditor.java
  54. 956
      designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java
  55. 206
      designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java
  56. 40
      designer/src/com/fr/quickeditor/cellquick/CellImageQuickEditor.java
  57. 48
      designer/src/com/fr/quickeditor/cellquick/CellRichTextEditor.java
  58. 65
      designer/src/com/fr/quickeditor/cellquick/CellStringQuickEditor.java
  59. 32
      designer/src/com/fr/quickeditor/cellquick/CellSubReportEditor.java
  60. 4
      designer_base/src/com/fr/design/actions/TemplateComponentAction.java
  61. 34
      designer_base/src/com/fr/design/actions/core/ActionFactory.java
  62. 12
      designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java
  63. 4
      designer_base/src/com/fr/design/border/UITitledBorder.java
  64. 8
      designer_base/src/com/fr/design/constants/UIConstants.java
  65. 0
      designer_base/src/com/fr/design/designer/properties/Decoder.java
  66. 0
      designer_base/src/com/fr/design/designer/properties/Encoder.java
  67. 6
      designer_base/src/com/fr/design/gui/controlpane/UIControlPane.java
  68. 16
      designer_base/src/com/fr/design/gui/frpane/RegPane.java
  69. 15
      designer_base/src/com/fr/design/gui/frpane/ReportletParameterViewPane.java
  70. 1
      designer_base/src/com/fr/design/gui/frpane/TreeSettingPane.java
  71. 3
      designer_base/src/com/fr/design/gui/ibutton/UIButtonGroup.java
  72. 20
      designer_base/src/com/fr/design/gui/itableeditorpane/UITableEditorPane.java
  73. 13
      designer_base/src/com/fr/design/gui/itextfield/UITextField.java
  74. 3
      designer_base/src/com/fr/design/gui/itextfield/UITextFieldUI.java
  75. 42
      designer_base/src/com/fr/design/gui/itree/refreshabletree/TreeRootPane.java
  76. 6
      designer_base/src/com/fr/design/gui/style/FRFontPane.java
  77. BIN
      designer_base/src/com/fr/design/images/arrow/arrow_down.png
  78. BIN
      designer_base/src/com/fr/design/images/arrow/arrow_up.png
  79. BIN
      designer_base/src/com/fr/design/images/buttonicon/add.png
  80. BIN
      designer_base/src/com/fr/design/images/buttonicon/add_press.png
  81. BIN
      designer_base/src/com/fr/design/images/buttonicon/addicon.png
  82. BIN
      designer_base/src/com/fr/design/images/buttonicon/cube.png
  83. BIN
      designer_base/src/com/fr/design/images/buttonicon/editp.png
  84. BIN
      designer_base/src/com/fr/design/images/buttonicon/hiden.png
  85. BIN
      designer_base/src/com/fr/design/images/buttonicon/hidep.png
  86. BIN
      designer_base/src/com/fr/design/images/buttonicon/minus.png
  87. BIN
      designer_base/src/com/fr/design/images/buttonicon/newcpts.png
  88. BIN
      designer_base/src/com/fr/design/images/buttonicon/open.png
  89. BIN
      designer_base/src/com/fr/design/images/buttonicon/pageb24.png
  90. BIN
      designer_base/src/com/fr/design/images/buttonicon/pages.png
  91. BIN
      designer_base/src/com/fr/design/images/buttonicon/plus.png
  92. BIN
      designer_base/src/com/fr/design/images/buttonicon/redo.png
  93. BIN
      designer_base/src/com/fr/design/images/buttonicon/refresh.png
  94. BIN
      designer_base/src/com/fr/design/images/buttonicon/run24.png
  95. BIN
      designer_base/src/com/fr/design/images/buttonicon/undo.png
  96. BIN
      designer_base/src/com/fr/design/images/buttonicon/writeb24.png
  97. BIN
      designer_base/src/com/fr/design/images/buttonicon/writes.png
  98. BIN
      designer_base/src/com/fr/design/images/chart/ChartStyle.png
  99. BIN
      designer_base/src/com/fr/design/images/chart/ChartType.png
  100. BIN
      designer_base/src/com/fr/design/images/chart/InterAttr.png
  101. Some files were not shown because too many files have changed in this diff Show More

5
designer/src/com/fr/design/actions/CellSelectionAction.java

@ -5,6 +5,9 @@ import com.fr.grid.selection.CellSelection;
import com.fr.grid.selection.Selection;
public abstract class CellSelectionAction extends ElementCaseAction {
protected CellSelectionAction() {
}
protected CellSelectionAction(ElementCasePane t) {
super(t);
}
@ -16,7 +19,7 @@ public abstract class CellSelectionAction extends ElementCaseAction {
// TODO ALEX_SEP instanceof i hate it
if (s instanceof CellSelection) {
return executeActionReturnUndoRecordNeededWithCellSelection((CellSelection)s);
return executeActionReturnUndoRecordNeededWithCellSelection((CellSelection) s);
}
return false;

8
designer/src/com/fr/design/actions/ElementCaseAction.java

@ -3,14 +3,12 @@ package com.fr.design.actions;
//ElementCaseAction应该有GridSelectionChangeListener,就从悬浮元素和单元格来讲,就必须有了,用来判断这些ElementCaseAction是否可以编辑,当然还可以做些其他事情
//
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.grid.selection.CellSelection;
import com.fr.grid.selection.Selection;
import com.fr.design.selection.SelectionEvent;
import com.fr.design.selection.SelectionListener;
public abstract class ElementCaseAction extends SelectionListenerAction {
protected ElementCaseAction() {
}
protected ElementCaseAction(ElementCasePane t) {
super(t);
t.addSelectionChangeListener(createSelectionListener());

5
designer/src/com/fr/design/actions/SelectionListenerAction.java

@ -12,11 +12,14 @@ import com.fr.grid.selection.Selection;
*/
public abstract class SelectionListenerAction extends TemplateComponentAction<ElementCasePane> {
protected SelectionListenerAction() {
}
protected SelectionListenerAction(ElementCasePane elementCasePane) {
super(elementCasePane);
}
protected SelectionListener createSelectionListener () {
protected SelectionListener createSelectionListener() {
return new SelectionListener() {
@Override

9
designer/src/com/fr/design/actions/columnrow/DSColumnConditionAction.java

@ -1,19 +1,16 @@
package com.fr.design.actions.columnrow;
import com.fr.base.BaseUtils;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.actions.cell.AbstractCellElementAction;
import com.fr.design.dscolumn.DSColumnConditionsPane;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.dialog.BasicPane;
import com.fr.general.Inter;
import com.fr.design.dscolumn.DSColumnConditionsPane;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.general.Inter;
import com.fr.report.cell.TemplateCellElement;
public class DSColumnConditionAction extends AbstractCellElementAction {
private boolean returnValue = false;
private TemplateCellElement editCellElement;
public DSColumnConditionAction(ElementCasePane t) {
super(t);

4
designer/src/com/fr/design/actions/insert/cell/AbstractCellAction.java

@ -13,6 +13,9 @@ import com.fr.report.elementcase.TemplateElementCase;
* Cell.
*/
public abstract class AbstractCellAction extends CellSelectionAction {
protected AbstractCellAction() {
}
protected AbstractCellAction(ElementCasePane t) {
super(t);
}
@ -42,6 +45,7 @@ public abstract class AbstractCellAction extends CellSelectionAction {
this.getCellValueClass(), false
);
}
@Override
public void update() {
super.update();

13
designer/src/com/fr/design/actions/insert/cell/BiasCellAction.java

@ -3,8 +3,6 @@
*/
package com.fr.design.actions.insert.cell;
import javax.swing.KeyStroke;
import com.fr.base.BaseUtils;
import com.fr.design.actions.core.WorkBookSupportable;
import com.fr.design.mainframe.ElementCasePane;
@ -12,12 +10,23 @@ import com.fr.design.menu.MenuKeySet;
import com.fr.general.Inter;
import com.fr.report.cell.painter.BiasTextPainter;
import javax.swing.KeyStroke;
/**
* Bias
*/
public class BiasCellAction extends AbstractCellAction implements WorkBookSupportable {
public BiasCellAction() {
initAction();
}
public BiasCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_SLOPE_LINE);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setMnemonic(getMenuKeySet().getMnemonic());

8
designer/src/com/fr/design/actions/insert/cell/ChartCellAction.java

@ -16,8 +16,16 @@ import javax.swing.*;
* .
*/
public class ChartCellAction extends AbstractCellAction implements WorkBookSupportable {
public ChartCellAction(){
initAction();
}
public ChartCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_CHART);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setMnemonic(getMenuKeySet().getMnemonic());

12
designer/src/com/fr/design/actions/insert/cell/DSColumnCellAction.java

@ -8,13 +8,21 @@ import com.fr.general.IOUtils;
import com.fr.report.cell.cellattr.core.group.DSColumn;
public class DSColumnCellAction extends AbstractCellAction implements WorkBookSupportable {
public DSColumnCellAction() {
initAction();
}
public DSColumnCellAction(ElementCasePane t) {
super(t);
initAction();
this.setSearchText(new DSColumnPane());
}
private void initAction() {
this.setMenuKeySet(KeySetUtils.INSERT_DATA_COLUMN);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/m_insert/bindColumn.png"));
this.setSearchText(new DSColumnPane());
}
@Override

10
designer/src/com/fr/design/actions/insert/cell/FormulaCellAction.java

@ -13,10 +13,18 @@ import com.fr.general.Inter;
import javax.swing.*;
public class FormulaCellAction extends AbstractCellAction implements WorkBookSupportable {
public FormulaCellAction() {
initAction();
}
public FormulaCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_FORMULA);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/formula.png"));
}

10
designer/src/com/fr/design/actions/insert/cell/GeneralCellAction.java

@ -15,10 +15,18 @@ import javax.swing.*;
*
*/
public class GeneralCellAction extends AbstractCellAction implements WorkBookSupportable {
public GeneralCellAction() {
initAction();
}
public GeneralCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_TEXT);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/text.png"));
}

10
designer/src/com/fr/design/actions/insert/cell/ImageCellAction.java

@ -16,10 +16,18 @@ import java.awt.*;
* Image
*/
public class ImageCellAction extends AbstractCellAction implements WorkBookSupportable {
public ImageCellAction() {
initAction();
}
public ImageCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_IMAGE);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/image.png"));
}

21
designer/src/com/fr/design/actions/insert/cell/RichTextCellAction.java

@ -1,7 +1,5 @@
package com.fr.design.actions.insert.cell;
import javax.swing.KeyStroke;
import com.fr.base.BaseUtils;
import com.fr.design.actions.core.WorkBookSupportable;
import com.fr.design.mainframe.ElementCasePane;
@ -10,12 +8,22 @@ import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
import com.fr.report.cell.cellattr.core.RichText;
import javax.swing.KeyStroke;
public class RichTextCellAction extends AbstractCellAction implements WorkBookSupportable {
public RichTextCellAction() {
initAction();
}
public RichTextCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_RICHTEXT);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon(
"/com/fr/design/images/m_insert/richtext.png"));
@ -28,19 +36,20 @@ public class RichTextCellAction extends AbstractCellAction implements WorkBookSu
/**
* equals 比较
*
* @param object
* @return true false
*/
@Override
public boolean equals(Object object) {
if (this == object){
if (this == object) {
return true;
}
if (!(object instanceof RichTextCellAction)){
if (!(object instanceof RichTextCellAction)) {
return false;
}
return ComparatorUtils.equals(this.getEditingComponent(),((RichTextCellAction)object).getEditingComponent());
return ComparatorUtils.equals(this.getEditingComponent(), ((RichTextCellAction) object).getEditingComponent());
}
private static final MenuKeySet INSERT_RICHTEXT = new MenuKeySet() {

21
designer/src/com/fr/design/actions/insert/cell/SubReportCellAction.java

@ -1,7 +1,5 @@
package com.fr.design.actions.insert.cell;
import javax.swing.KeyStroke;
import com.fr.base.BaseUtils;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.menu.MenuKeySet;
@ -9,12 +7,22 @@ import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
import com.fr.report.cell.cellattr.core.SubReport;
import javax.swing.KeyStroke;
public class SubReportCellAction extends AbstractCellAction {
public SubReportCellAction() {
initAction();
}
public SubReportCellAction(ElementCasePane t) {
super(t);
initAction();
}
private void initAction() {
this.setMenuKeySet(INSERT_SUB_REPORT);
this.setName(getMenuKeySet().getMenuKeySetName()+ "...");
this.setName(getMenuKeySet().getMenuKeySetName() + "...");
this.setMnemonic(getMenuKeySet().getMnemonic());
this.setSmallIcon(BaseUtils.readIcon(
"/com/fr/design/images/m_insert/subReport.png"));
@ -39,19 +47,20 @@ public class SubReportCellAction extends AbstractCellAction {
/**
* equals 比较
*
* @param object
* @return true false
*/
@Override
public boolean equals(Object object) {
if (this == object){
if (this == object) {
return true;
}
if (!(object instanceof SubReportCellAction)){
if (!(object instanceof SubReportCellAction)) {
return false;
}
return ComparatorUtils.equals(this.getEditingComponent(),((SubReportCellAction)object).getEditingComponent());
return ComparatorUtils.equals(this.getEditingComponent(), ((SubReportCellAction) object).getEditingComponent());
}
@Override

38
designer/src/com/fr/design/dscolumn/DSColumnAdvancedEditorPane.java

@ -1,38 +0,0 @@
package com.fr.design.dscolumn;
import com.fr.design.mainframe.cell.CellEditorPane;
import com.fr.report.cell.TemplateCellElement;
/**
* 单元格元素 数据列 基本设置内容面板
*
* @author yaoh.wu
* @version 2017年7月25日
* @since 9.0
*/
public class DSColumnAdvancedEditorPane extends CellEditorPane {
@Override
public String getIconPath() {
return "Advanced";
}
@Override
public String title4PopupWindow() {
return "Advanced";
}
@Override
public void update() {
}
@Override
public void populate(TemplateCellElement cellElement) {
}
}

84
designer/src/com/fr/design/dscolumn/DSColumnBasicEditorPane.java

@ -1,84 +0,0 @@
package com.fr.design.dscolumn;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.cell.CellEditorPane;
import com.fr.report.cell.TemplateCellElement;
import javax.swing.*;
import java.awt.*;
/**
* 单元格元素 数据列 高级设置内容面板
*
* @author yaoh.wu
* @version 2017年7月25日
* @since 9.0
*/
public class DSColumnBasicEditorPane extends CellEditorPane {
//数据集和数据列
private SelectedDataColumnPane dataPane;
//数据分组设置
private ResultSetGroupDockingPane groupPane;
//当前编辑的单元格
private TemplateCellElement cellElement;
//条件过滤按钮面板
private JPanel conditionPane;
public DSColumnBasicEditorPane(TemplateCellElement cellElement, SelectedDataColumnPane dataPane, ResultSetGroupDockingPane groupPane, JPanel conditionPane) {
this.setLayout(new BorderLayout());
this.cellElement = cellElement;
this.dataPane = dataPane;
this.groupPane = groupPane;
this.conditionPane = conditionPane;
this.add(this.createContentPane(), BorderLayout.CENTER);
}
@Override
public String getIconPath() {
return "Basic";
}
@Override
public String title4PopupWindow() {
return "Basic";
}
@Override
public void update() {
dataPane.update(this.cellElement);
groupPane.update();
}
@Override
public void populate(TemplateCellElement cellElement) {
this.cellElement = cellElement;
dataPane.populate(null, cellElement);
groupPane.populate(cellElement);
}
/**
* 创建有内容的面板显示信息
*
* @return content JPanel
*/
private JPanel createContentPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] rowSize = {p, p, p};
Component[][] components = new Component[][]{
//数据集列选择
new Component[]{this.dataPane},
//数据分组设置
new Component[]{this.groupPane},
//条件过滤
new Component[]{this.conditionPane}
};
return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
}
}

27
designer/src/com/fr/design/dscolumn/DSColumnBasicPane.java

@ -1,25 +1,23 @@
package com.fr.design.dscolumn;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import com.fr.data.TableDataSource;
import com.fr.design.dialog.BasicPane;
import com.fr.design.expand.ConditionParentPane;
import com.fr.design.expand.ExpandDirectionPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.dialog.BasicPane;
import com.fr.general.Inter;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.report.cell.CellElement;
import com.fr.report.cell.TemplateCellElement;
import com.fr.report.cell.cellattr.CellExpandAttr;
import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DSColumnBasicPane extends BasicPane {
@ -135,6 +133,7 @@ public class DSColumnBasicPane extends BasicPane {
}
resultSetGroupPane.update();
}
ActionListener summary_direction_ActionListener = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
@ -157,14 +156,16 @@ public class DSColumnBasicPane extends BasicPane {
selectDataColumnPane.update(cellElement);
}
};
public void putElementcase(ElementCasePane t){
public void putElementcase(ElementCasePane t) {
if (conditionParentPane != null) {
conditionParentPane.putElementcase(t);
}
}
public void putCellElement(TemplateCellElement tplEC2) {
public void putCellElement(TemplateCellElement tplCE) {
if (conditionParentPane != null) {
conditionParentPane.putCellElement(tplEC2);
conditionParentPane.putCellElement(tplCE);
}
}
}

4
designer/src/com/fr/design/dscolumn/DSColumnPane.java

@ -148,7 +148,7 @@ public class DSColumnPane extends BasicPane {
basicPane.putElementcase(t);
}
public void putCellElement(TemplateCellElement tplEC2) {
basicPane.putCellElement(tplEC2);
public void putCellElement(TemplateCellElement tplCE) {
basicPane.putCellElement(tplCE);
}
}

58
designer/src/com/fr/design/dscolumn/ResultSetGroupDockingPane.java

@ -1,35 +1,31 @@
package com.fr.design.dscolumn;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombobox.FunctionComboBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.report.cell.TemplateCellElement;
import com.fr.report.cell.cellattr.CellExpandAttr;
import com.fr.report.cell.cellattr.core.group.CustomGrouper;
import com.fr.report.cell.cellattr.core.group.DSColumn;
import com.fr.report.cell.cellattr.core.group.FunctionGrouper;
import com.fr.report.cell.cellattr.core.group.RecordGrouper;
import com.fr.report.cell.cellattr.core.group.SummaryGrouper;
import com.fr.report.cell.cellattr.core.group.*;
import com.fr.stable.Constants;
import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
/**
* 这个pane是选中数据列后在上方QuickRegion处显示的pane
*
* @author zhou
* @author zhou, yaoh.wu
* @version 2017年8月2日14点55分
* @since 8.0
*/
public class ResultSetGroupDockingPane extends ResultSetGroupPane {
private static final int BIND_GROUP = 0;
@ -42,7 +38,7 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
private CardLayout cardLayout;
private UIComboBox goBox;
ItemListener l;
private ItemListener listener;
public ResultSetGroupDockingPane(ElementCasePane ePane) {
super();
@ -58,15 +54,14 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
}
private JPanel layoutPane() {
double vs = 4;
double vg = 6;
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
UILabel dataSetLabel = new UILabel(Inter.getLocText("Data_Setting"));
dataSetLabel.setPreferredSize(new Dimension(60, 20));
Component[][] components = new Component[][]
{
new Component[]{new UILabel(Inter.getLocText("Data_Setting")), goBox},
new Component[]{cardPane, null}
new Component[]{dataSetLabel, goBox},
new Component[]{null, cardPane}
};
goBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ee) {
@ -74,10 +69,13 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
int i = goBox.getSelectedIndex();
if (i == BIND_GROUP) {
cardLayout.show(cardPane, "groupPane");
cardPane.setPreferredSize(new Dimension(155, 20));
} else if (i == BIND_SELECTED) {
cardLayout.show(cardPane, "listPane");
cardPane.setPreferredSize(new Dimension(0, 0));
} else if (i == BIND_SUMMARY) {
cardLayout.show(cardPane, "summaryPane");
cardPane.setPreferredSize(new Dimension(155, 20));
CellExpandAttr cellExpandAttr = cellElement.getCellExpandAttr();
cellExpandAttr.setDirection(Constants.NONE);
}
@ -86,7 +84,7 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
double[] columnSize = {p, f};
double[] rowSize = {p, p};
return TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize);
return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
}
private void initCardPane() {
@ -190,15 +188,15 @@ public class ResultSetGroupDockingPane extends ResultSetGroupPane {
}
}
public void addListener(ItemListener l) {
goBox.addItemListener(l);
groupComboBox.addItemListener(l);
functionComboBox.addItemListener(l);
this.l = l;
public void addListener(ItemListener listener) {
goBox.addItemListener(listener);
groupComboBox.addItemListener(listener);
functionComboBox.addItemListener(listener);
this.listener = listener;
}
void fireTargetChanged() {
l.itemStateChanged(null);
listener.itemStateChanged(null);
}
@Override

14
designer/src/com/fr/design/dscolumn/SelectedConfirmedDataColumnPane.java

@ -1,19 +1,19 @@
package com.fr.design.dscolumn;
import java.awt.Dimension;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Iterator;
import com.fr.data.TableDataSource;
import com.fr.design.data.datapane.TableDataComboBox;
import com.fr.design.data.tabledata.wrapper.TemplateTableDataWrapper;
import com.fr.main.impl.WorkBook;
import com.fr.report.cell.TemplateCellElement;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Iterator;
public class SelectedConfirmedDataColumnPane extends SelectedDataColumnPane {
public SelectedConfirmedDataColumnPane () {
public SelectedConfirmedDataColumnPane() {
super(false);
}
@ -35,7 +35,7 @@ public class SelectedConfirmedDataColumnPane extends SelectedDataColumnPane {
super.populate(source, cell);
try {
Iterator it = source.getTableDataNameIterator();
String name = (String)it.next();
String name = (String) it.next();
TemplateTableDataWrapper wrapper = new TemplateTableDataWrapper(source.getTableData(name), name);
tableNameComboBox.setSelectedItem(wrapper);
tableNameComboBox.getModel().setSelectedItem(wrapper);

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

@ -17,6 +17,7 @@ import com.fr.design.gui.itableeditorpane.UITableEditorPane;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.general.Inter;
import com.fr.general.data.TableDataColumn;
import com.fr.report.cell.CellElement;
@ -39,8 +40,8 @@ import java.util.regex.Pattern;
* 数据集列动态参数设置组件
*
* @author yaoh.wu
* @version 2017年7月26
* 9.0设计器更新修改动态参数注入按钮部分,使其显示动态参数按钮时能在右侧边栏正常显示
* @version 2017年8月3
* 复用对话框代码保留对话框原始布局
* @since 8.0
*/
public class SelectedDataColumnPane extends BasicPane {
@ -54,12 +55,21 @@ public class SelectedDataColumnPane extends BasicPane {
private UIButton paramButton;
public SelectedDataColumnPane() {
this(true);
this(true, false, null, null);
}
SelectedDataColumnPane(boolean showParameterButton) {
public SelectedDataColumnPane(boolean showParameterButton) {
this(showParameterButton, false, null, null);
}
public SelectedDataColumnPane(boolean showParameterButton, boolean verticalLayout, ElementCasePane casePane, TemplateCellElement cellElement) {
if (verticalLayout) {
initComponentVerticalLayout(casePane, cellElement);
} else {
initComponent(showParameterButton);
}
}
/**
* 初始化组件
@ -72,33 +82,32 @@ public class SelectedDataColumnPane extends BasicPane {
initWithParameterButton();
}
columnNameComboBox = new LazyComboBox() {
@Override
public Object[] load() {
List<String> l = calculateColumnNameList();
return l.toArray(new String[l.size()]);
}
};
columnNameComboBox.setEditable(true);
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
UILabel label1 = new UILabel(Inter.getLocText("TableData"));
UILabel label3 = new UILabel(Inter.getLocText("DataColumn"));
UILabel dsLabel = new UILabel(Inter.getLocText("TableData") + ":");
UILabel dcLabel = new UILabel(Inter.getLocText("DataColumn") + ":");
if (showParameterButton) {
//todo 国际化
UILabel label2 = new UILabel("param");
Component[][] components = {
{label1, tableNameComboBox},
{label2, paramButton},
{label3, columnNameComboBox}
};
this.setLayout(new BorderLayout());
this.add(TableLayoutHelper.createTableLayoutPane(components, new double[]{p, p, p}, new double[]{p, f}));
dsLabel.setPreferredSize(new Dimension(200, 25));
dcLabel.setPreferredSize(new Dimension(200, 25));
}
if (showParameterButton) {
Component[][] comps = {{dsLabel, null, dcLabel}, {tableNameComboBox, paramButton, columnNameComboBox}};
this.add(TableLayoutHelper.createTableLayoutPane(comps, new double[]{p, p}, new double[]{p, p, p}));
} else {
double f = TableLayout.FILL;
double[] columnSize = {p, f};
double[] rowSize = {p, p};
Component[][] components = new Component[][]{
new Component[]{label1, tableNameComboBox},
new Component[]{label3, columnNameComboBox}
new Component[]{dsLabel, tableNameComboBox},
new Component[]{dcLabel, columnNameComboBox}
};
JPanel jPanel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
this.setLayout(new BorderLayout());
@ -107,6 +116,39 @@ public class SelectedDataColumnPane extends BasicPane {
}
/**
* 初始化竖直布局的组件
*/
public void initComponentVerticalLayout(ElementCasePane casePane, TemplateCellElement cellElement) {
initTableNameComboBox();
initWithParameterButton(casePane, cellElement);
columnNameComboBox = new LazyComboBox() {
@Override
public Object[] load() {
List<String> l = calculateColumnNameList();
return l.toArray(new String[l.size()]);
}
};
columnNameComboBox.setEditable(true);
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
UILabel dsLabel = new UILabel(Inter.getLocText("TableData"));
UILabel dpLabel = new UILabel(Inter.getLocText("FR-Designer_Dynamic_Parameter"));
UILabel dcLabel = new UILabel(Inter.getLocText("DataColumn"));
dsLabel.setPreferredSize(new Dimension(60, 20));
dpLabel.setPreferredSize(new Dimension(60, 20));
dcLabel.setPreferredSize(new Dimension(60, 20));
Component[][] components = {
{dsLabel, tableNameComboBox},
{dpLabel, paramButton},
{dcLabel, columnNameComboBox}
};
this.setLayout(new BorderLayout());
this.add(TableLayoutHelper.createTableLayoutPane(components, new double[]{p, p, p}, new double[]{p, f}));
}
public void populate(TableDataSource source, TemplateCellElement cellElement) {
if (cellElement == null) {
return;
@ -237,6 +279,27 @@ public class SelectedDataColumnPane extends BasicPane {
});
}
private void initWithParameterButton(final ElementCasePane casePane, final TemplateCellElement cellElement) {
final SelectedDataColumnPane that = this;
editorPane = new UITableEditorPane<ParameterProvider>(new ParameterTableModel());
paramButton = new UIButton(Inter.getLocText("TableData_Dynamic_Parameter_Setting"));
paramButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
BasicDialog paramDialog = editorPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
List<ParameterProvider> parameterList = editorPane.update();
ps = parameterList.toArray(new Parameter[parameterList.size()]);
that.update(cellElement);
casePane.fireTargetModified();
}
});
editorPane.populate(ps == null ? new Parameter[0] : ps);
paramDialog.setVisible(true);
}
});
}
private boolean isColumnName(String columnExp) {
return StringUtils.isNotBlank(columnExp) && (columnExp.length() > 0 && columnExp.charAt(0) == '#') && !columnExp.endsWith("#");

3
designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java

@ -69,9 +69,6 @@ public class CellWidgetPropertyPane extends BasicPane {
Widget cellWidget = cellElement.getWidget();
if(cellWidget == null){
return;
}
// 这里进行克隆的原因是为了保留原始的Widget以便和新的Widget做比较来判断是否发生了改变
if (cellWidget != null) {

4
designer/src/com/fr/design/mainframe/cell/CellEditorPane.java

@ -1,7 +1,6 @@
package com.fr.design.mainframe.cell;
import com.fr.design.dialog.BasicPane;
import com.fr.report.cell.TemplateCellElement;
/**
* 右侧单元格元素面板抽象类
@ -24,7 +23,6 @@ public abstract class CellEditorPane extends BasicPane {
/**
* 更新面板数据
*
* @param cellElement 单元格
*/
public abstract void populate(TemplateCellElement cellElement);
public abstract void populate();
}

8
designer/src/com/fr/design/module/DesignerModule.java

@ -111,7 +111,7 @@ public class DesignerModule extends DesignModule {
private void registerCellEditor() {
ActionFactory.registerCellEditor(String.class, CellStringQuickEditor.class);
ActionFactory.registerCellEditor(Number.class, CellStringQuickEditor.class);
ActionFactory.registerCellEditor(Formula.class, CellStringQuickEditor.class);
ActionFactory.registerCellEditor(Formula.class, CellFormulaQuickEditor.class);
ActionFactory.registerCellEditor(SubReport.class, CellSubReportEditor.class);
ActionFactory.registerCellEditor(RichText.class, CellRichTextEditor.class);
ActionFactory.registerCellEditor(DSColumn.class, CellDSColumnEditor.class);
@ -169,7 +169,7 @@ public class DesignerModule extends DesignModule {
}
@Override
/**
/*
* 针对不同的对象在读取Object对象的xml的时候需要使用不同的对象生成器
* @return 返回对象生成器
*/
@ -242,7 +242,7 @@ public class DesignerModule extends DesignModule {
}
@Override
/**
/*
* 返回设计器能打开的模板类型的一个数组列表
* @return 可以打开的模板类型的数组
*/
@ -385,7 +385,7 @@ public class DesignerModule extends DesignModule {
}
public Class<?>[] actionsForInsertCellElement() {
return (Class<?>[])ArrayUtils.addAll(new Class<?>[]{
return (Class<?>[]) ArrayUtils.addAll(new Class<?>[]{
DSColumnCellAction.class,
GeneralCellAction.class,
RichTextCellAction.class,

2
designer/src/com/fr/design/present/BarCodePane.java

@ -85,7 +85,7 @@ public class BarCodePane extends FurtherBasicBeanPane<BarcodePresent> {
RCodesizespinner = new UIBasicSpinner(new SpinnerNumberModel(2, 1, 6, 1));
RCodeVersionComboBox = new UIComboBox();
RCodeErrorCorrectComboBox = new UIComboBox();
typeSetLabel = new UILabel(Inter.getLocText("Type_Set") + ":", UILabel.RIGHT);
typeSetLabel = new UILabel(Inter.getLocText("Type_Set"), UILabel.RIGHT);
initVersionComboBox();
initErrorCorrectComboBox();

4
designer/src/com/fr/design/present/CurrencyLinePane.java

@ -72,11 +72,11 @@ public class CurrencyLinePane extends FurtherBasicBeanPane<CurrencyLinePresent>
protected void initComponents() {
// 整数位选择
intPartSpinner = new UIBasicSpinner(new SpinnerNumberModel(9, 1, 20, 1));
intPartSpinner.setPreferredSize(new Dimension(135, 20));
intPartSpinner.setPreferredSize(new Dimension(158, 20));
// 小数位选择
deciPartSpinner = new UIBasicSpinner(new SpinnerNumberModel(2, 1, 10, 1));
deciPartSpinner.setPreferredSize(new Dimension(135, 20));
deciPartSpinner.setPreferredSize(new Dimension(158, 20));
// 预览区域
textField = new UITextField(10);

1
designer/src/com/fr/design/widget/WidgetPane.java

@ -120,6 +120,7 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener
public void populate(Widget widget) {
if (widget == null) {
editorTypeComboBox.setSelectedIndex(-1);
return;
}

1
designer/src/com/fr/design/widget/ui/ButtonDefinePane.java

@ -20,7 +20,6 @@ public class ButtonDefinePane extends AbstractDataModify<Button> {
private void initComponent() {
setLayout(FRGUIPaneFactory.createBorderLayout());
setBorder(BorderFactory.createEmptyBorder(0, 8, 0, 8));
}
@Override

35
designer/src/com/fr/design/widget/ui/ButtonGroupDictPane.java

@ -1,16 +1,22 @@
package com.fr.design.widget.ui;
import java.awt.*;
import java.awt.event.ActionEvent;
import com.fr.data.Dictionary;
import com.fr.design.gui.ispinner.UIBasicSpinner;
import java.awt.event.ActionListener;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import javax.swing.SpinnerNumberModel;
import javax.swing.*;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.widget.accessibles.AccessibleDictionaryEditor;
import com.fr.form.ui.ButtonGroup;
import com.fr.general.Inter;
@ -19,6 +25,8 @@ public class ButtonGroupDictPane extends JPanel {
private UIBasicSpinner columnSpinner;
private UICheckBox adaptiveCheckbox;
private UILabel columnLabel;
private AccessibleDictionaryEditor dictPane;
public ButtonGroupDictPane() {
this.initComponents();
@ -28,7 +36,8 @@ public class ButtonGroupDictPane extends JPanel {
*
*/
public void initComponents() {
this.setLayout(FRGUIPaneFactory.createLabelFlowLayout());
dictPane = new AccessibleDictionaryEditor();
this.setLayout(FRGUIPaneFactory.createBorderLayout());
adaptiveCheckbox = new UICheckBox(Inter.getLocText("Adaptive"), true);
adaptiveCheckbox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
@ -36,15 +45,26 @@ public class ButtonGroupDictPane extends JPanel {
columnLabel.setVisible(!adaptiveCheckbox.isSelected());
}
});
this.add(adaptiveCheckbox);
this.columnLabel = new UILabel(Inter.getLocText("Button-Group-Display-Columns") + ":");
this.add(columnLabel);
columnSpinner = new UIBasicSpinner(new SpinnerNumberModel(0, 0, Integer.MAX_VALUE, 1));
this.add(columnSpinner);
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
double rowSize[] = {p, p};
double columnSize[] = {p, p, f};
Component[][] n_components = {
{new UILabel(Inter.getLocText("FR-Designer_DS-Dictionary")), dictPane, null},
{adaptiveCheckbox, columnLabel, columnSpinner}
};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(n_components, rowSize, columnSize, 16, 8);
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
this.add(panel);
}
public void populate(ButtonGroup buttonGroup) {
dictPane.setValue(buttonGroup.getDictionary());
adaptiveCheckbox.setSelected(buttonGroup.isAdaptive());
columnSpinner.setVisible(!adaptiveCheckbox.isSelected());
columnLabel.setVisible(!adaptiveCheckbox.isSelected());
@ -52,6 +72,7 @@ public class ButtonGroupDictPane extends JPanel {
}
public void update(ButtonGroup buttonGroup) {
buttonGroup.setDictionary((Dictionary) this.dictPane.getValue());
buttonGroup.setAdaptive(adaptiveCheckbox.isSelected());
buttonGroup.setColumnsInRow((Integer)(columnSpinner.getValue()));
}

32
designer/src/com/fr/design/widget/ui/CheckBoxDefinePane.java

@ -1,15 +1,18 @@
package com.fr.design.widget.ui;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.*;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.CheckBox;
import com.fr.general.Inter;
import javax.swing.*;
import java.awt.*;
public class CheckBoxDefinePane extends AbstractDataModify<CheckBox> {
private UITextField text;
@ -19,13 +22,24 @@ public class CheckBoxDefinePane extends AbstractDataModify<CheckBox> {
private void iniComoponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(0, 8, 0, 8));
JPanel textPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
textPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
UIExpandablePane uiExpandablePane = new UIExpandablePane(Inter.getLocText("FR-Designer_Advanced"), 280, 20, textPane);
textPane.add(new UILabel(Inter.getLocText("Text") + ":"));
text = new UITextField(8);
textPane.add(text);
JPanel panel = new JPanel(new BorderLayout());
panel.add(text, BorderLayout.CENTER);
panel.setBorder(BorderFactory.createEmptyBorder(0, 35, 0, 0));
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{new UILabel(Inter.getLocText("FR-Designer_Text")), panel},
};
double[] rowSize = {p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1}};
JPanel pane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_LARGE);
UIExpandablePane uiExpandablePane = new UIExpandablePane(Inter.getLocText("FR-Designer_Advanced"), 280, 24, pane);
pane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 15));
this.add(uiExpandablePane);
}

42
designer/src/com/fr/design/widget/ui/CheckBoxDictPane.java

@ -1,9 +1,10 @@
package com.fr.design.widget.ui;
import java.awt.BorderLayout;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.fr.design.gui.ibutton.UIHeadGroup;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
@ -11,6 +12,7 @@ import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombobox.DictionaryComboBox;
import com.fr.design.gui.icombobox.DictionaryConstants;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.CheckBoxGroup;
import com.fr.form.ui.ComboCheckBox;
import com.fr.general.Inter;
@ -18,7 +20,7 @@ import com.fr.general.Inter;
public class CheckBoxDictPane extends JPanel {
private DictionaryComboBox delimiterComboBox;
private UIComboBox returnTypeComboBox;
private UIHeadGroup returnTypeComboBox;
private DictionaryComboBox startComboBox;
private DictionaryComboBox endComboBox;
@ -27,42 +29,38 @@ public class CheckBoxDictPane extends JPanel {
private JPanel endPane;
public CheckBoxDictPane() {
JPanel returnTypePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
returnTypePane.add(new UILabel(Inter.getLocText("Widget-Date_Selector_Return_Type") + ":"), BorderLayout.WEST);
returnTypeComboBox = new UIComboBox(new String[]{Inter.getLocText("Widget-Array"), Inter.getLocText("String")});
returnTypePane.add(returnTypeComboBox, BorderLayout.CENTER);
this.add(returnTypePane);
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel returnTypePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
delimiterPane =FRGUIPaneFactory.createBorderLayout_S_Pane();
UILabel label = new UILabel(Inter.getLocText("Form-Delimiter") + ":");
delimiterPane.add(label, BorderLayout.WEST);
delimiterPane.add(delimiterComboBox = new DictionaryComboBox(DictionaryConstants.delimiters, DictionaryConstants.delimiterDisplays), BorderLayout.CENTER);
delimiterComboBox.setEditable(true);
this.add(delimiterPane);
startPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
startPane.add(new UILabel(Inter.getLocText("ComboCheckBox-Start_Symbol") + ":"), BorderLayout.WEST);
startPane.add(startComboBox = new DictionaryComboBox(DictionaryConstants.symbols, DictionaryConstants.symbolDisplays), BorderLayout.CENTER);
startComboBox.setEditable(true);
this.add(startPane);
endPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
endPane.add(new UILabel(Inter.getLocText("ComboCheckBox-End_Symbol") + ":"), BorderLayout.WEST);
endPane.add(endComboBox = new DictionaryComboBox(DictionaryConstants.symbols, DictionaryConstants.symbolDisplays), BorderLayout.CENTER);
endComboBox.setEditable(true);
this.add(endPane);
returnTypeComboBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
checkVisible();
returnTypeComboBox = new UIHeadGroup(new String[]{Inter.getLocText("Widget-Array"), Inter.getLocText("String")}){
protected void tabChanged(int newSelectedIndex) {
// checkVisible(newSelectedIndex);
//todo
}
});
};
returnTypePane.add(returnTypeComboBox, BorderLayout.CENTER);
JPanel jPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("Widget-Date_Selector_Return_Type") + ":"), returnTypePane}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7);
this.add(jPanel);
}
private void checkVisible(){
delimiterPane.setVisible(returnTypeComboBox.getSelectedIndex() == 1);
startPane.setVisible(returnTypeComboBox.getSelectedIndex() == 1);
endPane.setVisible(returnTypeComboBox.getSelectedIndex() == 1);
private void checkVisible(int selectIndex){
delimiterPane.setVisible(selectIndex == 1);
startPane.setVisible(selectIndex == 1);
endPane.setVisible(selectIndex == 1);
}
public void populate(ComboCheckBox comboCheckBox) {
@ -70,7 +68,7 @@ public class CheckBoxDictPane extends JPanel {
this.returnTypeComboBox.setSelectedIndex(comboCheckBox.isReturnString() ? 1 : 0);
this.startComboBox.setSelectedItem(comboCheckBox.getStartSymbol());
this.endComboBox.setSelectedItem(comboCheckBox.getEndSymbol());
checkVisible();
checkVisible(this.returnTypeComboBox.getSelectedIndex());
}
public void update(ComboCheckBox comboCheckBox) {
comboCheckBox.setDelimiter((String)this.delimiterComboBox.getSelectedItem());
@ -83,7 +81,7 @@ public class CheckBoxDictPane extends JPanel {
this.returnTypeComboBox.setSelectedIndex(checkBoxGroup.isReturnString() ? 1 : 0);
this.startComboBox.setSelectedItem(checkBoxGroup.getStartSymbol());
this.endComboBox.setSelectedItem(checkBoxGroup.getEndSymbol());
checkVisible();
checkVisible(this.returnTypeComboBox.getSelectedIndex());
}
public void update(CheckBoxGroup checkBoxGroup) {
checkBoxGroup.setDelimiter((String)this.delimiterComboBox.getSelectedItem());

55
designer/src/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java

@ -1,20 +1,25 @@
package com.fr.design.widget.ui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.*;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import com.fr.data.Dictionary;
import com.fr.design.data.DataCreatorUI;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.widget.accessibles.AccessibleDictionaryEditor;
import com.fr.design.present.dict.DictionaryPane;
import com.fr.design.widget.ui.designer.component.FormWidgetValuePane;
import com.fr.form.ui.CheckBoxGroup;
import com.fr.general.Inter;
public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup> {
private DictionaryPane dictPane;
private AccessibleDictionaryEditor dictPane;
CheckBoxDictPane checkBoxDictPane;
@ -29,7 +34,6 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
protected void initComponents() {
super.initComponents();
dictPane = new DictionaryPane();
}
@Override
@ -39,32 +43,33 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
@Override
protected JPanel setFirstContentPane() {
JPanel attrPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
attrPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
checkBoxDictPane = new CheckBoxDictPane();
checkBoxDictPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0));
northPane.add(checkBoxDictPane, BorderLayout.NORTH);
JPanel chooseAllPane = new JPanel();
JPanel advancePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
dictPane = new AccessibleDictionaryEditor();
checkbox = new UICheckBox(Inter.getLocText(new String[]{"Provide", "Choose_All"}));
chooseAllPane.add(checkbox);
chooseAllPane.setLayout(new FlowLayout(FlowLayout.LEFT, 8, 0));
northPane.add(chooseAllPane, BorderLayout.CENTER);
attrPane.add(northPane, BorderLayout.NORTH);
JPanel centerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
buttonGroupDictPane = new ButtonGroupDictPane();
buttonGroupDictPane.setLayout(new FlowLayout(FlowLayout.LEFT, 3, 0));
centerPane.add(buttonGroupDictPane);
attrPane.add(centerPane, BorderLayout.CENTER);
checkBoxDictPane = new CheckBoxDictPane();
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{buttonGroupDictPane, null },
new Component[]{checkbox, null },
new Component[]{new UILabel(Inter.getLocText("FR-Designer_DS-Dictionary")), dictPane },
new Component[]{checkBoxDictPane, null },
};
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1},{1, 1},{1,1},{1,1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 10, 7);
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0));
advancePane.add(panel);
return advancePane;
return attrPane;
}
@Override
protected void populateSubFieldEditorBean(CheckBoxGroup ob) {
this.dictPane.populateBean(ob.getDictionary());
this.dictPane.setValue(ob.getDictionary());
checkBoxDictPane.populate(ob);
checkbox.setSelected(ob.isChooseAll());
this.buttonGroupDictPane.populate(ob);
@ -74,7 +79,7 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
protected CheckBoxGroup updateSubFieldEditorBean() {
CheckBoxGroup ob = new CheckBoxGroup();
ob.setDictionary(this.dictPane.updateBean());
ob.setDictionary((Dictionary) this.dictPane.getValue());
checkBoxDictPane.update(ob);
ob.setChooseAll(checkbox.isSelected());
this.buttonGroupDictPane.update(ob);
@ -83,6 +88,6 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
@Override
public DataCreatorUI dataUI() {
return dictPane;
return null;
}
}

23
designer/src/com/fr/design/widget/ui/ComboBoxDefinePane.java

@ -1,13 +1,20 @@
package com.fr.design.widget.ui;
import javax.swing.JPanel;
import javax.swing.*;
import com.fr.data.Dictionary;
import com.fr.design.data.DataCreatorUI;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.widget.accessibles.AccessibleDictionaryEditor;
import com.fr.design.present.dict.DictionaryPane;
import com.fr.form.ui.ComboBox;
import com.fr.general.Inter;
import java.awt.*;
public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane<ComboBox> {
protected DictionaryPane dictPane;
protected AccessibleDictionaryEditor dictPane;
public ComboBoxDefinePane() {
this.initComponents();
@ -16,20 +23,22 @@ public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane<ComboBox>
@Override
protected void initComponents() {
super.initComponents();
dictPane = new DictionaryPane();
}
protected JPanel setForthContentPane () {
return null;
dictPane = new AccessibleDictionaryEditor();
JPanel jPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_DS-Dictionary")), dictPane}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7);
jPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0));
return jPanel;
}
protected void populateSubCustomWritableRepeatEditorBean(ComboBox e) {
this.dictPane.populateBean(e.getDictionary());
this.dictPane.setValue(e.getDictionary());
}
protected ComboBox updateSubCustomWritableRepeatEditorBean() {
ComboBox combo = new ComboBox();
combo.setDictionary(this.dictPane.updateBean());
combo.setDictionary((Dictionary) this.dictPane.getValue());
return combo;
}
@ -41,6 +50,6 @@ public class ComboBoxDefinePane extends CustomWritableRepeatEditorPane<ComboBox>
@Override
public DataCreatorUI dataUI() {
return dictPane;
return null;
}
}

43
designer/src/com/fr/design/widget/ui/ComboCheckBoxDefinePane.java

@ -1,47 +1,56 @@
package com.fr.design.widget.ui;
import com.fr.data.Dictionary;
import com.fr.design.data.DataCreatorUI;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.widget.accessibles.AccessibleDictionaryEditor;
import com.fr.design.present.dict.DictionaryPane;
import com.fr.form.ui.ComboCheckBox;
import com.fr.general.Inter;
import com.fr.third.fr.pdf.layout.border.Border;
import javax.swing.*;
import java.awt.*;
public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane<ComboCheckBox> {
private CheckBoxDictPane checkBoxDictPane;
private DictionaryPane dictPane;
private AccessibleDictionaryEditor dictPane;
private UICheckBox supportTagCheckBox;
public ComboCheckBoxDefinePane() {
super.initComponents();
dictPane = new DictionaryPane();
}
@Override
protected JPanel setForthContentPane() {
JPanel attrPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane();
attrPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
JPanel contenter = FRGUIPaneFactory.createBorderLayout_L_Pane();
contenter.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
dictPane = new AccessibleDictionaryEditor();
checkBoxDictPane = new CheckBoxDictPane();
attrPane.add(contenter);
//是否以标签形式显示
JPanel tagPane = FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane();
supportTagCheckBox = new UICheckBox(Inter.getLocText("Form-SupportTag"), true);
tagPane.add(supportTagCheckBox);
contenter.add(tagPane, BorderLayout.NORTH);
JPanel advancePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{supportTagCheckBox, null },
new Component[]{new UILabel(Inter.getLocText("FR-Designer_DS-Dictionary")), dictPane },
new Component[]{checkBoxDictPane, null },
contenter.add(checkBoxDictPane, BorderLayout.WEST);
return attrPane;
};
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1},{1, 1},{1,1},{1,1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 10, 7);
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
advancePane.add(panel);
return advancePane;
}
@Override
protected void populateSubCustomWritableRepeatEditorBean(ComboCheckBox e) {
this.dictPane.populateBean(e.getDictionary());
this.dictPane.setValue(e.getDictionary());
this.checkBoxDictPane.populate(e);
this.supportTagCheckBox.setSelected(e.isSupportTag());
}
@ -50,14 +59,14 @@ public class ComboCheckBoxDefinePane extends CustomWritableRepeatEditorPane<Comb
protected ComboCheckBox updateSubCustomWritableRepeatEditorBean() {
ComboCheckBox combo = new ComboCheckBox();
combo.setSupportTag(this.supportTagCheckBox.isSelected());
combo.setDictionary(this.dictPane.updateBean());
combo.setDictionary((Dictionary) this.dictPane.getValue());
checkBoxDictPane.update(combo);
return combo;
}
@Override
public DataCreatorUI dataUI() {
return dictPane;
return null;
}
@Override

65
designer/src/com/fr/design/widget/ui/CustomWritableRepeatEditorPane.java

@ -1 +1,64 @@
package com.fr.design.widget.ui; import com.fr.base.GraphHelper; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.form.ui.CustomWriteAbleRepeatEditor; import com.fr.general.Inter; import javax.swing.*; import java.awt.*; /** * Author : Shockway * Date: 13-9-18 * Time: 下午2:17 */ public abstract class CustomWritableRepeatEditorPane<T extends CustomWriteAbleRepeatEditor> extends WritableRepeatEditorPane<T> { private UICheckBox customDataCheckBox; private static final int CUSTOM_DATA_CHECK_BOX_WIDTH = GraphHelper.getLocTextWidth("Form-Allow_CustomData") + 30; private static final int CUSTOM_DATA_CHECK_BOX_HEIGHT = 30; public CustomWritableRepeatEditorPane() { this.initComponents(); } @Override protected JPanel setThirdContentPane() { JPanel contentPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); this.customDataCheckBox = new UICheckBox(Inter.getLocText("Form-Allow_CustomData"), false); this.customDataCheckBox.setPreferredSize( new Dimension(CUSTOM_DATA_CHECK_BOX_WIDTH, CUSTOM_DATA_CHECK_BOX_HEIGHT)); JPanel otherContentPane = this.setForthContentPane(); if (otherContentPane != null) { contentPane.add(otherContentPane,BorderLayout.CENTER); } return contentPane; } public JPanel setValidatePane(){ JPanel otherContentPane = super.setValidatePane(); otherContentPane.add(GUICoreUtils.createFlowPane(new JComponent[]{customDataCheckBox}, FlowLayout.LEFT, 5)); return otherContentPane; } protected abstract JPanel setForthContentPane(); protected void populateSubWritableRepeatEditorBean(T e) { this.customDataCheckBox.setSelected(e.isCustomData()); populateSubCustomWritableRepeatEditorBean(e); } protected abstract void populateSubCustomWritableRepeatEditorBean(T e); protected T updateSubWritableRepeatEditorBean() { T e = updateSubCustomWritableRepeatEditorBean(); e.setCustomData(this.customDataCheckBox.isSelected()); return e; } protected abstract T updateSubCustomWritableRepeatEditorBean(); }
package com.fr.design.widget.ui;
import com.fr.base.GraphHelper;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.form.ui.CustomWriteAbleRepeatEditor;
import com.fr.general.Inter;
import javax.swing.*;
import java.awt.*;
/**
* Author : Shockway
* Date: 13-9-18
* Time: 下午2:17
*/
public abstract class CustomWritableRepeatEditorPane<T extends CustomWriteAbleRepeatEditor> extends WritableRepeatEditorPane<T> {
private UICheckBox customDataCheckBox;
private static final int CUSTOM_DATA_CHECK_BOX_WIDTH = GraphHelper.getLocTextWidth("Form-Allow_CustomData") + 30;
private static final int CUSTOM_DATA_CHECK_BOX_HEIGHT = 30;
public CustomWritableRepeatEditorPane() {
this.initComponents();
}
@Override
protected JPanel setThirdContentPane() {
JPanel contentPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
this.customDataCheckBox = new UICheckBox(Inter.getLocText("Form-Allow_CustomData"), false);
this.customDataCheckBox.setPreferredSize(
new Dimension(CUSTOM_DATA_CHECK_BOX_WIDTH, CUSTOM_DATA_CHECK_BOX_HEIGHT));
JPanel otherContentPane = this.setForthContentPane();
return otherContentPane;
}
public JPanel setValidatePane(){
JPanel otherContentPane = super.setValidatePane();
otherContentPane.add(GUICoreUtils.createFlowPane(new JComponent[]{customDataCheckBox}, FlowLayout.LEFT, 5));
return otherContentPane;
}
protected abstract JPanel setForthContentPane();
protected void populateSubWritableRepeatEditorBean(T e) {
this.customDataCheckBox.setSelected(e.isCustomData());
populateSubCustomWritableRepeatEditorBean(e);
}
protected abstract void populateSubCustomWritableRepeatEditorBean(T e);
protected T updateSubWritableRepeatEditorBean() {
T e = updateSubCustomWritableRepeatEditorBean();
e.setCustomData(this.customDataCheckBox.isSelected());
return e;
}
protected abstract T updateSubCustomWritableRepeatEditorBean();
}

211
designer/src/com/fr/design/widget/ui/DateEditorDefinePane.java

@ -3,21 +3,19 @@ package com.fr.design.widget.ui;
import com.fr.base.FRContext;
import com.fr.base.Formula;
import com.fr.data.core.FormatField;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.gui.ibutton.UIHeadGroup;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.editor.ValueEditorPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.design.mainframe.CellWidgetPropertyPane;
import com.fr.design.widget.component.DateValuePane;
import com.fr.form.ui.DateEditor;
import com.fr.general.DateUtils;
import com.fr.general.Inter;
import com.fr.script.Calculator;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.UtilEvalError;
import javax.swing.*;
@ -28,19 +26,18 @@ import java.text.SimpleDateFormat;
import java.util.Date;
public class DateEditorDefinePane extends DirectWriteEditorDefinePane<DateEditor> {
private UIComboBox returnTypeComboBox;
private UILabel sampleLabel;// preview
// content
private UIComboBox dateFormatComboBox;
private ValueEditorPane startDv;
private ValueEditorPane endDv;
private UIHeadGroup returnTypeComboBox;
private DateValuePane startDv;
private DateValuePane endDv;
private UIComboBox currentFormatComboBox;
private UILabel currentSamplelabel;
private UIHeadGroup fomatHeadGroup;
public DateEditorDefinePane() {
this.initComponets();
}
private void initComponets() {
super.initComponents();
public DateEditorDefinePane() {
}
@Override
@ -50,71 +47,98 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane<DateEditor
@Override
protected JPanel setSecondContentPane() {
JPanel returnTypePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
returnTypePane.add(new UILabel(Inter.getLocText("Widget-Date_Selector_Return_Type") + ":"), BorderLayout.WEST);
returnTypeComboBox = new UIComboBox(new String[] { Inter.getLocText("String"), Inter.getLocText("Date") });
returnTypeComboBox.setPreferredSize(new Dimension(70, 20));
// sample pane
sampleLabel = new UILabel("");
sampleLabel.setBorder(BorderFactory.createEmptyBorder(2, 4, 4, 4));
sampleLabel.setHorizontalAlignment(SwingConstants.CENTER);
sampleLabel.setFont(FRContext.getDefaultValues().getFRFont());
// content pane
String[] arr = getDateFormateArray();
dateFormatComboBox = new UIComboBox(arr);
dateFormatComboBox.setPreferredSize(new Dimension(150,20));
dateFormatComboBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
refreshPreviewLabel();
returnTypeComboBox = new UIHeadGroup(new String[] {Inter.getLocText("Date") , Inter.getLocText("String")}){
protected void tabChanged(int newSelectedIndex) {
//todo
}
};
});
JPanel secondPanel = GUICoreUtils.createFlowPane(new JComponent[]{new UILabel(Inter.getLocText("FR-Engine_Format") + ":"),dateFormatComboBox,sampleLabel}, FlowLayout.LEFT, 5);
secondPanel.setPreferredSize(new Dimension(220,30));
startDv = ValueEditorPaneFactory.createDateValueEditorPane(null, null);
endDv = ValueEditorPaneFactory.createDateValueEditorPane(null, null);
JPanel formatHead = createFormatHead();
startDv = new DateValuePane();
endDv = new DateValuePane();
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{new UILabel(Inter.getLocText("Widget-Date_Selector_Return_Type") + ":"), returnTypeComboBox },
new Component[]{new UILabel(Inter.getLocText("FR-Engine_Format") + ":"), dateFormatComboBox},
new Component[]{null, sampleLabel},
new Component[]{new UILabel(Inter.getLocText("FR-Engine_Format") + ":"), formatHead},
new Component[]{new UILabel(Inter.getLocText("FS_Start_Date") + ":"), startDv},
new Component[]{new UILabel(Inter.getLocText("FS_End_Date") + ":"), endDv},
new Component[]{waterMarkDictPane, null},
new Component[]{new UILabel(Inter.getLocText("Widget-Date_Selector_Return_Type") + ":"), returnTypeComboBox }
};
double[] rowSize = {p, p,p,p,p};
double[] columnSize = {p,f};
int[][] rowCount = {{1, 1},{1, 1},{1, 1},{1, 1},{1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_SMALL, 1);
double[] rowSize = {p, p, p, p, p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 3},{1, 1},{1, 1},{1, 1},{1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 10, 7);
panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
return panel;
}
private String[] getDateFormateArray() {
return FormatField.getInstance().getDateFormatArray();
private JPanel createFormatPane(UIComboBox formatComboBox, UILabel sampleLabel){
JPanel previewPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Base_StyleFormat_Sample"));
previewPane.add(sampleLabel);
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
jPanel.add(previewPane, BorderLayout.NORTH);
jPanel.add(formatComboBox, BorderLayout.CENTER);
return jPanel;
}
protected JPanel initStartEndDatePane() {
JPanel rangePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
rangePane.add(new UILabel(Inter.getLocText("FS_Start_Date") + ":"));
startDv = ValueEditorPaneFactory.createDateValueEditorPane(null, null);
rangePane.add(startDv);
rangePane.add(new UILabel(Inter.getLocText("FS_End_Date") + ":"));
endDv = ValueEditorPaneFactory.createDateValueEditorPane(null, null);
rangePane.add(endDv);
return rangePane;
private UILabel createSamplePane(){
UILabel sampleLabel = new UILabel("");
sampleLabel.setHorizontalAlignment(SwingConstants.CENTER);
sampleLabel.setFont(FRContext.getDefaultValues().getFRFont());
return sampleLabel;
}
private JPanel createFormatHead(){
String[] dateArray = FormatField.getInstance().getFormatArray(FormatField.FormatContents.DATE);
String[] timeArray = FormatField.getInstance().getFormatArray(FormatField.FormatContents.TIME);
final UIComboBox dateFormatComboBox = new UIComboBox(dateArray);
final UIComboBox timeFormatComboBox = new UIComboBox(timeArray);
dateFormatComboBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
refreshPreviewLabel();
}
});
timeFormatComboBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
refreshPreviewLabel();
}
});
final UILabel dateSampleLabel = createSamplePane();
final UILabel timeSampleLabel = createSamplePane();
JPanel fomatHeadPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
final CardLayout cardLayout = new CardLayout();
final JPanel customPane = new JPanel(cardLayout);
JPanel dateFormatPane = createFormatPane(dateFormatComboBox, dateSampleLabel);
JPanel timeFormatPane = createFormatPane(timeFormatComboBox, timeSampleLabel);
customPane.add(dateFormatPane, Inter.getLocText("StyleFormat-Date"));
customPane.add(timeFormatPane, Inter.getLocText("StyleFormat-Time"));
final String[] tabTitles = new String[]{Inter.getLocText("StyleFormat-Date"), Inter.getLocText("StyleFormat-Time")};
fomatHeadGroup = new UIHeadGroup(new String[]{Inter.getLocText("StyleFormat-Date"), Inter.getLocText("StyleFormat-Time")}){
protected void tabChanged(int newSelectedIndex) {
cardLayout.show(customPane, tabTitles[newSelectedIndex]);
if(newSelectedIndex == 0){
currentFormatComboBox = dateFormatComboBox;
currentSamplelabel = dateSampleLabel;
}else{
currentFormatComboBox = timeFormatComboBox;
currentSamplelabel = timeSampleLabel;
}
refreshPreviewLabel();
CellWidgetPropertyPane.getInstance().update();
}
};
fomatHeadPane.add(fomatHeadGroup, BorderLayout.NORTH);
fomatHeadPane.add(customPane, BorderLayout.CENTER);
return fomatHeadPane;
}
private void refreshPreviewLabel() {
String text = (String) dateFormatComboBox.getSelectedItem();
String text = (String) currentFormatComboBox.getSelectedItem();
if (text != null && text.length() > 0) {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(text);
@ -124,66 +148,57 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane<DateEditor
sample += " " + Inter.getLocText("DateFormat-Custom_Warning");
c = Color.red;
}
this.sampleLabel.setText(sample);
this.sampleLabel.setForeground(c);
currentSamplelabel.setText(sample);
currentSamplelabel.setForeground(c);
} catch (Exception exp) {
this.sampleLabel.setForeground(Color.red);
this.sampleLabel.setText(exp.getMessage());
currentSamplelabel.setForeground(Color.red);
currentSamplelabel.setText(exp.getMessage());
}
} else {
this.sampleLabel.setText(new Date().toString());
currentSamplelabel.setText(new Date().toString());
}
}
private int getDateType(DateEditor e){
String[] timeArray = FormatField.getInstance().getFormatArray(FormatField.FormatContents.TIME);
if(e == null){
return 0;
}
String formatText = e.getFormatText();
if(ArrayUtils.contains(timeArray, formatText)){
return 1;
}
return 0;
}
@Override
protected void populateSubDirectWriteEditorBean(DateEditor e) {
String formatText = e.getFormatText();
dateFormatComboBox.setSelectedItem(formatText);
returnTypeComboBox.setSelectedIndex(e.isReturnDate() ? 1 : 0);
fomatHeadGroup.setSelectedIndex(getDateType(e));
currentFormatComboBox.setSelectedItem(formatText);
populateStartEnd(e);
returnTypeComboBox.setSelectedIndex(e.isReturnDate() ? 0 : 1);
startDv.populate(e.getStartDate());
endDv.populate(e.getEndDate());
}
@Override
protected DateEditor updateSubDirectWriteEditorBean() {
DateEditor ob = new DateEditor();
ob.setFormatText(this.getSimpleDateFormat().toPattern());
ob.setReturnDate(returnTypeComboBox.getSelectedIndex() == 1);
updateStartEnd(ob);
ob.setReturnDate(returnTypeComboBox.getSelectedIndex() == 0);
ob.setStartDate(startDv.update());
ob.setEndDate(endDv.update());
return ob;
}
/**
* 初始起止日期
* @param dateWidgetEditor 日期控件
*/
public void populateStartEnd(DateEditor dateWidgetEditor) {
Formula startFM = dateWidgetEditor.getStartDateFM();
Formula endFM = dateWidgetEditor.getEndDateFM();
if (startFM != null) {
startDv.populate(startFM);
} else {
String startStr = dateWidgetEditor.getStartText();
startDv.populate(StringUtils.isEmpty(startStr) ? null : DateUtils.string2Date(startStr, true));
}
if (endFM != null) {
endDv.populate(endFM);
} else {
String endStr = dateWidgetEditor.getEndText();
endDv.populate(StringUtils.isEmpty(endStr) ? null : DateUtils.string2Date(endStr, true));
}
}
/**
* 更新日期控件的起止日期
* @param dateWidgetEditor 日期控件
*/
public void updateStartEnd(DateEditor dateWidgetEditor) {
Object startObject = startDv.update();
Object startObject = "";
Object endObject = endDv.update();
// wei : 对公式的处理
Calculator cal = null;
@ -226,12 +241,12 @@ public class DateEditorDefinePane extends DirectWriteEditorDefinePane<DateEditor
}
private SimpleDateFormat getSimpleDateFormat() {
String text = (String) dateFormatComboBox.getSelectedItem();
String text = (String) currentFormatComboBox.getSelectedItem();
SimpleDateFormat simpleDateFormat;
if (text != null && text.length() > 0) {
try {
simpleDateFormat = new SimpleDateFormat(text);
this.sampleLabel.setText(simpleDateFormat.format(new Date()));
this.currentSamplelabel.setText(simpleDateFormat.format(new Date()));
} catch (Exception exp) {
simpleDateFormat = new SimpleDateFormat("");
}

12
designer/src/com/fr/design/widget/ui/DirectWriteEditorDefinePane.java

@ -1,7 +1,10 @@
package com.fr.design.widget.ui;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.form.ui.DirectWriteEditor;
import com.fr.general.Inter;
@ -12,7 +15,7 @@ import java.awt.*;
//richer:需要提供能否直接编辑的控件设置面板——下拉框、复选框、时间、日期、下拉树
public abstract class DirectWriteEditorDefinePane<T extends DirectWriteEditor> extends FieldEditorDefinePane<T> {
public UICheckBox directWriteCheckBox;
private WaterMarkDictPane waterMarkDictPane;
protected WaterMarkDictPane waterMarkDictPane;
public DirectWriteEditorDefinePane() {
this.initComponents();
@ -21,16 +24,17 @@ public abstract class DirectWriteEditorDefinePane<T extends DirectWriteEditor> e
@Override
protected JPanel setFirstContentPane() {
JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane();
JPanel contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
contentPane.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0));
directWriteCheckBox = new UICheckBox(Inter.getLocText("Form-Allow_Edit"), false);
directWriteCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
directWriteCheckBox.setPreferredSize(new Dimension(100, 30));
waterMarkDictPane = new WaterMarkDictPane();
contentPane.add(waterMarkDictPane);
contentPane.add(waterMarkDictPane, BorderLayout.NORTH);
JPanel otherContentPane = this.setSecondContentPane();
if (otherContentPane != null) {
contentPane.add(otherContentPane);
contentPane.add(otherContentPane, BorderLayout.CENTER);
}
return contentPane;
}

76
designer/src/com/fr/design/widget/ui/IframeEditorDefinePane.java

@ -1,17 +1,13 @@
package com.fr.design.widget.ui;
import java.awt.*;
import java.util.List;
import javax.swing.BorderFactory;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.dialog.DialogActionListener;
import com.fr.design.dialog.UIDialog;
import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import com.fr.design.gui.frpane.ReportletParameterViewPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
@ -20,11 +16,24 @@ import com.fr.form.ui.IframeEditor;
import com.fr.general.Inter;
import com.fr.stable.ParameterProvider;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
public class IframeEditorDefinePane extends AbstractDataModify<IframeEditor> {
private static final int P_W = 610;
private static final int P_H = 580;
private UITextField srcTextField;
private ReportletParameterViewPane parameterViewPane;
private UICheckBox horizontalCheck;
private UICheckBox verticalCheck;
private UIButton parameterViewPaneButton;
private List<ParameterProvider> list;
public IframeEditorDefinePane() {
this.initComponents();
@ -41,25 +50,58 @@ public class IframeEditorDefinePane extends AbstractDataModify<IframeEditor> {
contentPane.add(attr);
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] rowSize = { p, p, p, p };
double[] columnSize = { p, f };
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, f};
parameterViewPaneButton = new UIButton(Inter.getLocText("FR-Designer_Edit"));
parameterViewPaneButton.addActionListener(parameterListener);
parameterViewPane = new ReportletParameterViewPane();
java.awt.Component[][] coms = {
{ horizontalCheck, null },
{ verticalCheck, null },
{ new UILabel(Inter.getLocText("Form-Url") + ":"), srcTextField = new UITextField() },
{ new UILabel(Inter.getLocText("Parameter") + ":"), parameterViewPane = new ReportletParameterViewPane() } };
int[][] rowCount = {{1, 1},{1, 1},{1, 1}, {1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(coms, rowSize, columnSize, rowCount, LayoutConstants.VGAP_SMALL, 5);
{horizontalCheck, null},
{verticalCheck, null},
{new UILabel(Inter.getLocText("Form-Url")), srcTextField = new UITextField()},
{new UILabel(Inter.getLocText("FR-Designer_Parameters")), parameterViewPaneButton}};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(coms, rowSize, columnSize, rowCount, 45, LayoutConstants.VGAP_LARGE);
contentPane.add(panel);
UIExpandablePane uiExpandablePane = new UIExpandablePane(Inter.getLocText("FR-Designer_Advanced"), 280, 20, contentPane);
UIExpandablePane uiExpandablePane = new UIExpandablePane(Inter.getLocText("FR-Designer_Advanced"), 280, 24, contentPane);
this.add(uiExpandablePane, BorderLayout.NORTH);
}
ActionListener parameterListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
List<ParameterProvider> paraList = parameterViewPane.update();
list = new ArrayList<ParameterProvider>();
ParameterProvider pr = null;
for (ParameterProvider parameterProvider : paraList) {
try {
pr = (ParameterProvider) parameterProvider.clone();
} catch (CloneNotSupportedException e1) {
e1.printStackTrace();
}
list.add(pr);
}
UIDialog dialog = parameterViewPane.showUnsizedWindow(SwingUtilities.getWindowAncestor(new JPanel()), new DialogActionListener() {
@Override
public void doOk() {
}
@Override
public void doCancel() {
parameterViewPane.update(list);
}
});
dialog.setSize(P_W, P_H);
dialog.setVisible(true);
}
};
@Override
protected String title4PopupWindow() {

24
designer/src/com/fr/design/widget/ui/ListEditorDefinePane.java

@ -2,16 +2,21 @@ package com.fr.design.widget.ui;
import javax.swing.JPanel;
import com.fr.data.Dictionary;
import com.fr.design.data.DataCreatorUI;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.widget.accessibles.AccessibleDictionaryEditor;
import com.fr.design.present.dict.DictionaryPane;
import com.fr.form.ui.ListEditor;
import com.fr.general.Inter;
import java.awt.*;
public class ListEditorDefinePane extends WriteUnableRepeatEditorPane<ListEditor> {
private UICheckBox needHeadCheckBox;
private DictionaryPane dictPane;
private AccessibleDictionaryEditor dictPane;
public ListEditorDefinePane() {
this.initComponents();
@ -20,13 +25,18 @@ public class ListEditorDefinePane extends WriteUnableRepeatEditorPane<ListEditor
@Override
protected void initComponents() {
super.initComponents();
dictPane = new DictionaryPane();
}
protected Component[] createDicPane(){
dictPane = new AccessibleDictionaryEditor();
return new Component[]{new UILabel(Inter.getLocText("FR-Designer_DS-Dictionary")), dictPane};
}
@Override
protected JPanel setThirdContentPane() {
JPanel contenter = FRGUIPaneFactory.createBorderLayout_S_Pane();
JPanel centerPane = FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane();
JPanel contenter = FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane_First0();
JPanel centerPane = FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane_First0();
centerPane.add(needHeadCheckBox = new UICheckBox(Inter.getLocText("List-Need_Head")));
contenter.add(centerPane);
return contenter;
@ -40,7 +50,7 @@ public class ListEditorDefinePane extends WriteUnableRepeatEditorPane<ListEditor
@Override
protected void populateSubWriteUnableRepeatBean(ListEditor e) {
needHeadCheckBox.setSelected(e.isNeedHead());
this.dictPane.populateBean(e.getDictionary());
this.dictPane.setValue(e.getDictionary());
}
@Override
@ -48,13 +58,13 @@ public class ListEditorDefinePane extends WriteUnableRepeatEditorPane<ListEditor
ListEditor ob = new ListEditor();
ob.setNeedHead(needHeadCheckBox.isSelected());
ob.setDictionary(this.dictPane.updateBean());
ob.setDictionary((Dictionary) this.dictPane.getValue());
return ob;
}
@Override
public DataCreatorUI dataUI() {
return dictPane;
return null;
}
}

64
designer/src/com/fr/design/widget/ui/MultiFileEditorPane.java

@ -1,26 +1,22 @@
package com.fr.design.widget.ui;
import java.awt.*;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.*;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.DictionaryComboBox;
import com.fr.design.gui.icombobox.DictionaryConstants;
import com.fr.design.gui.itextfield.UINumberField;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.MultiFileEditor;
import com.fr.general.Inter;
import javax.swing.*;
import java.awt.*;
public class MultiFileEditorPane extends FieldEditorDefinePane<MultiFileEditor> {
private DictionaryComboBox acceptType;
private UICheckBox singleFileCheckBox;
private UINumberField fileSizeField;
private UISpinner fileSizeField;
public MultiFileEditorPane() {
this.initComponents();
@ -34,42 +30,36 @@ public class MultiFileEditorPane extends FieldEditorDefinePane<MultiFileEditor>
@Override
protected JPanel setFirstContentPane() {
acceptType = new DictionaryComboBox(DictionaryConstants.acceptTypes, DictionaryConstants.fileTypeDisplays);
acceptType.setPreferredSize(new Dimension(200, 18));
singleFileCheckBox = new UICheckBox(Inter.getLocText("SINGLE_FILE_UPLOAD"));
fileSizeField = new UINumberField();
fileSizeField.setPreferredSize(new Dimension(80, 18));
JPanel contenter = new JPanel(new BorderLayout());
singleFileCheckBox = new UICheckBox(Inter.getLocText("SINGLE_FILE_UPLOAD"));
acceptType = new DictionaryComboBox(DictionaryConstants.acceptTypes, DictionaryConstants.fileTypeDisplays);
// acceptType.setPreferredSize(new Dimension(100, 20));
fileSizeField = new UISpinner(0, Integer.MAX_VALUE, 1, -1);
fileSizeField.setPreferredSize(new Dimension(140, 20));
JPanel singleFilePane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane();
singleFilePane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
singleFilePane.add(singleFileCheckBox);
JPanel allowTypePane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane();
allowTypePane.setLayout(FRGUIPaneFactory.createLabelFlowLayout());
allowTypePane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
allowTypePane.add(new UILabel(" " + Inter.getLocText("File-Allow_Upload_Files") + ":"));
allowTypePane.add(acceptType);
JPanel fileSizePane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane();
fileSizePane.add(new UILabel(" " + Inter.getLocText("File-File_Size_Limit") + ":"));
fileSizePane.add(fileSizeField);
fileSizePane.add(new UILabel(" KB"));
JPanel fileSizePane = new JPanel(new BorderLayout());
UILabel fileTypeLabel = new UILabel(Inter.getLocText("Utils-File_type"));
UILabel fileSizeLabel = new UILabel(Inter.getLocText("FR-Designer_Size_Limit"));
fileSizePane.add(fileSizeField, BorderLayout.CENTER);
fileSizePane.add(new UILabel(" KB"), BorderLayout.EAST);
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{singleFileCheckBox, null },
new Component[]{new UILabel(" " + Inter.getLocText("File-Allow_Upload_Files") + ":"), acceptType},
new Component[]{new UILabel(" " + Inter.getLocText("File-File_Size_Limit") + ":"), fileSizeField},
new Component[]{singleFileCheckBox, null},
new Component[]{fileTypeLabel, acceptType},
new Component[]{fileSizeLabel, fileSizePane},
};
double[] rowSize = {p, p,p};
double[] columnSize = {p,f};
int[][] rowCount = {{1, 1},{1, 1},{1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_SMALL, 5);
double[] rowSize = {p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 22, 10);
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 00));
contenter.add(panel, BorderLayout.CENTER);
return panel;
return contenter;
}
@Override

61
designer/src/com/fr/design/widget/ui/NumberEditorDefinePane.java

@ -3,11 +3,15 @@ package com.fr.design.widget.ui;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
@ -26,7 +30,7 @@ import com.fr.general.Inter;
public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor> {
/**
*
* FieldEditorDefinePane
*/
private static final long serialVersionUID = 8011242951911686805L;
private UICheckBox allowDecimalsCheckBox;
@ -37,7 +41,7 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
private SpinnerNumberModel maxValueModel;
private UIBasicSpinner minValueSpinner;
private SpinnerNumberModel minValueModel;
private com.fr.design.editor.editor.IntegerEditor decimalLength;
private UIBasicSpinner decimalLength;
private JPanel limitNumberPane;
private WaterMarkDictPane waterMarkDictPane;
@ -78,7 +82,7 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
};
private ActionListener actionListener3 = new ActionListener() {
public ActionListener actionListener3 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (setMaxValueCheckBox.isSelected()) {
maxValueSpinner.setVisible(true);
@ -142,7 +146,8 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
};
public NumberEditorDefinePane() {
super();
// super();
this.initComponents();
}
@ -166,46 +171,60 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
public JPanel setValidatePane() {
this.allowDecimalsCheckBox = new UICheckBox(Inter.getLocText("Allow_Decimals"));
this.decimalLength = new com.fr.design.editor.editor.IntegerEditor();
this.decimalLength.setColumns(4);
this.allowDecimalsCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Allow_Decimals"));
this.decimalLength = new UIBasicSpinner(new SpinnerNumberModel(16, 0, Integer.MAX_VALUE, 1));
this.decimalLength.setPreferredSize(new Dimension(155, 20));
this.allowDecimalsCheckBox.addActionListener(actionListener1);
this.allowNegativeCheckBox = new UICheckBox(Inter.getLocText("Allow_Negative"));
this.allowNegativeCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Allow_Negative"));
this.allowNegativeCheckBox.addActionListener(actionListener2);
this.setMaxValueCheckBox = new UICheckBox(Inter.getLocText("Need_Max_Value"), false);
this.setMaxValueCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Max_Value"), false);
this.maxValueSpinner = new UIBasicSpinner(maxValueModel = new SpinnerNumberModel(0D, -Double.MAX_VALUE, Double.MAX_VALUE, 1D));
maxValueSpinner.setPreferredSize(new Dimension(120, 20));
maxValueSpinner.setPreferredSize(new Dimension(155, 20));
setNotAllowsInvalid(this.maxValueSpinner);
this.maxValueSpinner.setVisible(false);
this.setMaxValueCheckBox.addActionListener(actionListener3);
this.maxValueSpinner.addChangeListener(changeListener1);
this.setMinValueCheckBox = new UICheckBox(Inter.getLocText("Need_Min_Value"), false);
this.setMinValueCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Min_Value"), false);
this.minValueSpinner = new UIBasicSpinner(minValueModel = new SpinnerNumberModel(0D, -Double.MAX_VALUE, Double.MAX_VALUE, 1D));
minValueSpinner.setPreferredSize(new Dimension(120, 20));
minValueSpinner.setPreferredSize(new Dimension(155, 20));
setNotAllowsInvalid(this.minValueSpinner);
this.minValueSpinner.setVisible(false);
this.setMinValueCheckBox.addActionListener(actionListener4);
this.minValueSpinner.addChangeListener(changeListener2);
UILabel numberLabel = new UILabel(Inter.getLocText(new String[]{"FR-Designer_Double", "Numbers"}));
numberLabel.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0));
JPanel decimalPane = new JPanel(new BorderLayout());
decimalPane.add(decimalLength, BorderLayout.CENTER);
decimalPane.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0));
JPanel maxValueSpinnerPane = new JPanel(new BorderLayout());
maxValueSpinnerPane.add(maxValueSpinner, BorderLayout.CENTER);
maxValueSpinnerPane.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0));
JPanel minValueSpinnerPane = new JPanel(new BorderLayout());
minValueSpinnerPane.add(minValueSpinner, BorderLayout.CENTER);
minValueSpinnerPane.setBorder(BorderFactory.createEmptyBorder(0, 12, 0, 0));
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{allowDecimalsCheckBox, null },
new Component[]{new UILabel(Inter.getLocText(new String[]{"Double", "Numbers"})), decimalLength },
new Component[]{allowDecimalsCheckBox, null},
new Component[]{numberLabel, decimalPane},
new Component[]{allowNegativeCheckBox, null},
new Component[]{setMaxValueCheckBox, maxValueSpinner},
new Component[]{setMinValueCheckBox, minValueSpinner},
new Component[]{setMaxValueCheckBox, maxValueSpinnerPane},
new Component[]{setMinValueCheckBox, minValueSpinnerPane},
};
double[] rowSize = {p, p, p, p, p};
double[] columnSize = {p,f};
int[][] rowCount = {{1, 1},{1, 1},{1, 1},{1, 1},{1, 1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 10, 1);
return panel;
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}};
JPanel pane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM);
pane.setBorder(BorderFactory.createEmptyBorder(0, 1, 0, 0));
return pane;
}
@ -250,7 +269,7 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
NumberEditor ob = new NumberEditor();
ob.setAllowDecimals(allowDecimalsCheckBox.isSelected());
if (allowDecimalsCheckBox.isSelected()) {
ob.setMaxDecimalLength(this.decimalLength.getValue());
ob.setMaxDecimalLength((Integer) this.decimalLength.getValue());
}
ob.setAllowNegative(allowNegativeCheckBox.isSelected());

17
designer/src/com/fr/design/widget/ui/RadioGroupDefinePane.java

@ -1,16 +1,10 @@
package com.fr.design.widget.ui;
import java.awt.FlowLayout;
import javax.swing.JPanel;
import com.fr.design.data.DataCreatorUI;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.present.dict.DictionaryPane;
import com.fr.form.ui.RadioGroup;
public class RadioGroupDefinePane extends FieldEditorDefinePane<RadioGroup> {
private DictionaryPane dictPane;
private ButtonGroupDictPane buttonGroupDictPane;
@ -22,24 +16,18 @@ public class RadioGroupDefinePane extends FieldEditorDefinePane<RadioGroup> {
protected void initComponents() {
super.initComponents();
dictPane = new DictionaryPane();
}
@Override
protected JPanel setFirstContentPane() {
JPanel centerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
buttonGroupDictPane = new ButtonGroupDictPane();
buttonGroupDictPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0));
centerPane.add(buttonGroupDictPane);
return centerPane;
return buttonGroupDictPane;
}
@Override
protected RadioGroup updateSubFieldEditorBean() {
RadioGroup ob = new RadioGroup();
ob.setDictionary(this.dictPane.updateBean());
this.buttonGroupDictPane.update(ob);
return ob;
@ -52,12 +40,11 @@ public class RadioGroupDefinePane extends FieldEditorDefinePane<RadioGroup> {
@Override
protected void populateSubFieldEditorBean(RadioGroup ob) {
this.dictPane.populateBean(ob.getDictionary());
this.buttonGroupDictPane.populate(ob);
}
@Override
public DataCreatorUI dataUI() {
return dictPane;
return null;
}
}

6
designer/src/com/fr/design/widget/ui/TreeEditorDefinePane.java

@ -5,6 +5,9 @@ import com.fr.design.gui.frpane.TreeSettingPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.itree.refreshabletree.TreeRootPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.FRLeftFlowLayout;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.TreeEditor;
import com.fr.general.Inter;
@ -52,7 +55,8 @@ public class TreeEditorDefinePane extends FieldEditorDefinePane<TreeEditor> {
protected JPanel setSecondContentPane() {
JPanel contentPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
JPanel contenter = FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane();
JPanel contenter = FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane_First0();
contentPane.add(contenter,BorderLayout.NORTH);
removeRepeatCheckBox = new UICheckBox(Inter.getLocText("Form-Remove_Repeat_Data"), false);
contenter.add(removeRepeatCheckBox);

2
designer/src/com/fr/design/widget/ui/WaterMarkDictPane.java

@ -39,7 +39,7 @@ public class WaterMarkDictPane extends JPanel {
int[][] rowCount = {{1, 1}};
JPanel panel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
// JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM);
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0));
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
this.add(panel, BorderLayout.CENTER);
}

2
designer/src/com/fr/design/widget/ui/WritableRepeatEditorPane.java

@ -15,7 +15,7 @@ public abstract class WritableRepeatEditorPane<E extends WriteAbleRepeatEditor>
@Override
protected JPanel setSecondContentPane() {
JPanel contentPane = FRGUIPaneFactory.createBorderLayout_L_Pane();
JPanel contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
JPanel otherContentPane = this.setThirdContentPane();
if (otherContentPane != null) {

32
designer/src/com/fr/design/widget/ui/WriteUnableRepeatEditorPane.java

@ -1,12 +1,15 @@
package com.fr.design.widget.ui;
import java.awt.BorderLayout;
import java.awt.*;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.WriteUnableRepeatEditor;
import com.fr.general.Inter;
@ -20,17 +23,34 @@ public abstract class WriteUnableRepeatEditorPane<E extends WriteUnableRepeatEdi
@Override
protected JPanel setFirstContentPane() {
JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane();
contentPane.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0));
JPanel contenter=FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane();
JPanel contentPane = FRGUIPaneFactory.createYBoxEmptyBorderPane();
removeRepeatCheckBox = new UICheckBox(Inter.getLocText("Form-Remove_Repeat_Data"), false);
contentPane.add(contenter);
contenter.add(removeRepeatCheckBox);
Component[] dicPane = createDicPane();
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
dicPane,
new Component[]{removeRepeatCheckBox, null},
};
double[] rowSize = {p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1,1},{1,1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 10, 7);
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
contentPane.add(panel);
JPanel otherContentPane = this.setThirdContentPane();
if (otherContentPane != null)
contentPane.add(otherContentPane,BorderLayout.CENTER);
return contentPane;
}
protected Component[] createDicPane(){
return new Component[]{null, null};
}
protected abstract JPanel setThirdContentPane();
@Override
protected void populateSubFieldEditorBean(WriteUnableRepeatEditor e) {

7
designer/src/com/fr/design/widget/ui/btn/AppendRowButtonDefinePane.java

@ -38,11 +38,10 @@ public class AppendRowButtonDefinePane<T extends AppendRowButton> extends Button
}
@Override
public void populate(com.fr.form.ui.Button btn) {
public void populate(AppendRowButton btn) {
super.populate(btn);
if (btn instanceof AppendRowButton) {
defineColumnRowPane.populate((AppendRowButton) btn);
}
defineColumnRowPane.populate(btn);
}
@Override

9
designer/src/com/fr/design/widget/ui/btn/DefineAppendColumnRowPane.java

@ -6,6 +6,7 @@ import javax.swing.BorderFactory;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
@ -20,7 +21,7 @@ import com.fr.report.web.button.write.AppendRowButton;
*/
public class DefineAppendColumnRowPane extends BasicPane {
private ColumnRowEditor crEditor;
private com.fr.design.editor.editor.IntegerEditor jNumberEditor;
private UISpinner jNumberEditor;
private UILabel rowCountLable;
public DefineAppendColumnRowPane() {
@ -35,7 +36,7 @@ public class DefineAppendColumnRowPane extends BasicPane {
double columnSize[] = { p, f};
crEditor = new ColumnRowEditor();
jNumberEditor = new com.fr.design.editor.editor.IntegerEditor();
jNumberEditor = new UISpinner(0, 100 , 1, 0);
rowCountLable = new UILabel(Inter.getLocText("Edit-Row_Count") + ":");
JPanel lpane = FRGUIPaneFactory.createBorderLayout_S_Pane();
@ -56,11 +57,11 @@ public class DefineAppendColumnRowPane extends BasicPane {
public void populate(AppendRowButton btn) {
crEditor.setValue(btn.getFixCell());
jNumberEditor.setValue(new Integer(btn.getCount()));
jNumberEditor.setValue(btn.getCount());
}
public void update(AppendRowButton btn) {
btn.setFixCell(crEditor.getValue());
btn.setCount(jNumberEditor.getValue().intValue());
btn.setCount((int)jNumberEditor.getValue());
}
}

25
designer/src/com/fr/design/widget/ui/btn/DefineDeleteColumnRowPane.java

@ -1,14 +1,19 @@
package com.fr.design.widget.ui.btn;
import javax.swing.BorderFactory;
import javax.swing.*;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.dialog.BasicPane;
import com.fr.design.editor.editor.ColumnRowEditor;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
import com.fr.report.web.button.write.DeleteRowButton;
import java.awt.*;
/**
* Created by IntelliJ IDEA. Author : Richer Version: 6.5.6 Date : 11-11-16 Time
* : 上午10:56
@ -23,12 +28,20 @@ public class DefineDeleteColumnRowPane extends BasicPane {
}
private void initComponents() {
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
double rowSize[] = { p, p};
double columnSize[] = { p, f};
crEditor = new ColumnRowEditor();
setLayout(FRGUIPaneFactory.createL_FlowLayout());
setBorder(BorderFactory.createEmptyBorder(0, BORDER_LEFT, 0, 0));
add(new UILabel(Inter.getLocText(new String[]{"Specify", "Cell"}) + ":"));
add(crEditor);
add(new UILabel(Inter.getLocText("Append_Delete_Row_Message")));
Component[][] components = {
{ new UILabel(Inter.getLocText(new String[]{"Specify", "Cell"}) + ":"), crEditor },
{new UILabel(Inter.getLocText("Append_Delete_Row_Message")),null}};
JPanel contentPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
setLayout(FRGUIPaneFactory.createBorderLayout());
add(contentPane);
}
@Override

7
designer/src/com/fr/design/widget/ui/btn/DeleteRowButtonDefinePane.java

@ -36,11 +36,10 @@ public class DeleteRowButtonDefinePane<T extends DeleteRowButton> extends Button
}
@Override
public void populate(com.fr.form.ui.Button btn) {
public void populate(DeleteRowButton btn) {
super.populate(btn);
if (btn instanceof DeleteRowButton) {
ddcp.populate((DeleteRowButton) btn);
}
ddcp.populate(btn);
}
@Override

20
designer/src/com/fr/design/widget/ui/btn/FreeButtonDetailPane.java

@ -2,16 +2,20 @@ package com.fr.design.widget.ui.btn;
import java.awt.Component;
import com.fr.form.ui.Button;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.widget.component.ButtonBackgroundPane;
import com.fr.form.ui.FreeButton;
import com.fr.design.widget.btn.ButtonWithHotkeysDetailPane;
import com.fr.general.Inter;
public class FreeButtonDetailPane extends ButtonWithHotkeysDetailPane<FreeButton> {
private ButtonSytleDefinedPane stylePane;
private ButtonBackgroundPane backgroundCompPane;
@Override
protected Component createCenterPane() {
return stylePane = new ButtonSytleDefinedPane();
backgroundCompPane = new ButtonBackgroundPane();
return TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background") + ":"), backgroundCompPane}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7);
}
@Override
@ -19,18 +23,16 @@ public class FreeButtonDetailPane extends ButtonWithHotkeysDetailPane<FreeButton
return new FreeButton();
}
@Override
public void populate(Button button) {
public void populate(FreeButton button) {
super.populate(button);
if(button instanceof FreeButton) {
stylePane.populate((FreeButton) button);
}
backgroundCompPane.populate(button);
}
@Override
public FreeButton update() {
FreeButton button = super.update();
return stylePane.update(button);
backgroundCompPane.update(button);
return button;
}
@Override

227
designer/src/com/fr/quickeditor/CellQuickEditor.java

@ -1,70 +1,186 @@
package com.fr.quickeditor;
import com.fr.base.BaseUtils;
import com.fr.design.actions.utils.DeprecatedActionManager;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.actions.UpdateAction;
import com.fr.design.actions.core.ActionFactory;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.iscrollbar.UIScrollBar;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.CellElementPropertyPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.menu.MenuKeySet;
import com.fr.design.menu.ShortCut;
import com.fr.design.selection.QuickEditor;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.grid.selection.CellSelection;
import com.fr.report.cell.TemplateCellElement;
import com.fr.stable.ColumnRow;
import javax.swing.*;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.*;
import java.util.ArrayList;
/**
* @author zhou
* @since 2012-7-23下午5:16:53
* @author zhou, yaoh.wu
* @version 2017年8月7日16点54分
* @since 1.0
*/
public abstract class CellQuickEditor extends QuickEditor<ElementCasePane> {
/*滚动条相关配置*/
private static final int MAXVALUE = 100;
private static final int TITLE_HEIGHT = 50;
private static final int MOUSE_WHEEL_SPEED = 5;
private static final int CONTENT_PANE_WIDTH_GAP = 4;
private static final int SCROLLBAR_WIDTH = 8;
private int maxHeight = 280;
/*面板配置*/
protected UITextField columnRowTextField;
private UIButton cellElementEditButton;
protected TemplateCellElement cellElement;
private UIComboBox comboBox;
private UpdateAction[] cellInsertActions;
private int selectedIndex;
private JPanel leftContentPane;
private UIScrollBar scrollBar;
/*占位label*/
protected static UILabel emptyLabel = new UILabel();
static {
emptyLabel.setPreferredSize(new Dimension(60, 20));
}
public CellQuickEditor() {
scrollBar = new UIScrollBar(UIScrollBar.VERTICAL) {
@Override
public int getVisibleAmount() {
int preferredHeight = leftContentPane.getPreferredSize().height;
int e = MAXVALUE * (maxHeight) / preferredHeight;
setVisibleAmount(e);
return e;
}
@Override
public int getMaximum() {
return MAXVALUE;
}
};
scrollBar.addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
doLayout();
}
});
this.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
int value = scrollBar.getValue();
value += MOUSE_WHEEL_SPEED * e.getWheelRotation();
scrollBar.setValue(value);
doLayout();
}
});
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {p, f};
double[] rowSize = {p, p};
JComponent centerBody = createCenterBody();
centerBody.setBorder(BorderFactory.createMatteBorder(0, 10, 0, 0, this.getBackground()));
Component[][] components = new Component[][]{
new Component[]{initTopContent(), null},
new Component[]{centerBody, null}
};
leftContentPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
this.setLayout(new BarLayout());
this.add(scrollBar);
this.add(leftContentPane);
}
private JPanel initTopContent() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {p, f};
double[] rowSize = {p, p, p};
double[] rowSize = {p, p};
UILabel cellLabel = new UILabel(Inter.getLocText("Cell"));
cellLabel.setPreferredSize(new Dimension(60, 20));
UILabel insertContentLabel = new UILabel(Inter.getLocText("HF-Insert_Content"));
insertContentLabel.setPreferredSize(new Dimension(60, 20));
UIComboBox cellElementEditButton = initCellElementEditComboBox();
Component[][] components = new Component[][]{
new Component[]{new UILabel(" " + Inter.getLocText("Cell")), columnRowTextField = initColumnRowTextField()},
new Component[]{new UILabel(Inter.getLocText("HF-Insert_Content") + " "), cellElementEditButton = initCellElementEditButton()},
new Component[]{createCenterBody(), null}
new Component[]{cellLabel, columnRowTextField = initColumnRowTextField()},
new Component[]{insertContentLabel, cellElementEditButton},
};
JPanel panel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
this.setLayout(new BorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
this.add(panel, BorderLayout.CENTER);
JPanel topContent = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize);
topContent.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));
return topContent;
}
/**
* 初始化添加按钮
* TODO 9.0 换成下拉菜单后原来的快捷键不好处理先跳过
*
* @return UIButton
*/
private UIButton initCellElementEditButton() {
final UIButton cellElementEditButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/add.png"));
cellElementEditButton.addMouseListener(new MouseAdapter() {
private UIComboBox initCellElementEditComboBox() {
final String[] items = getDefaultComboBoxItems();
comboBox = new UIComboBox(items);
final Object comboBoxSelected = getComboBoxSelected();
if (comboBoxSelected != null) {
comboBox.setSelectedItem(((ShortCut) comboBoxSelected).getMenuKeySet().getMenuKeySetName());
} else {
comboBox.setSelectedIndex(1);
}
comboBox.addPopupMenuListener(new PopupMenuListener() {
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
if (cellInsertActions == null) {
cellInsertActions = ActionFactory.createCellInsertAction(ElementCasePane.class, tc);
}
// 这边重新获取是因为要根据JTemplate做一个过滤
ArrayList<String> arrayList = new ArrayList<String>();
for (UpdateAction action : cellInsertActions) {
arrayList.add(action.getMenuKeySet().getMenuKeySetName());
}
comboBox.setModel(new DefaultComboBoxModel<>(arrayList.toArray(new String[arrayList.size()])));
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
}
@Override
public void mousePressed(MouseEvent evt) {
GUICoreUtils.showPopMenuWithParentWidth(DeprecatedActionManager.getCellMenu(tc).createJPopupMenu(), cellElementEditButton, 0, cellElementEditButton.getY() - 6);
public void popupMenuCanceled(PopupMenuEvent e) {
}
});
return cellElementEditButton;
comboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selectedIndex = comboBox.getSelectedIndex();
cellInsertActions[selectedIndex].actionPerformed(e);
}
});
return comboBox;
}
private String[] getDefaultComboBoxItems() {
MenuKeySet[] cellInsertActionNames = ActionFactory.createCellInsertActionName();
ArrayList<String> names = new ArrayList<>();
for (MenuKeySet cellInsertActionName : cellInsertActionNames) {
names.add(cellInsertActionName.getMenuKeySetName());
}
return names.toArray(new String[names.size()]);
}
/**
@ -110,6 +226,14 @@ public abstract class CellQuickEditor extends QuickEditor<ElementCasePane> {
*/
public abstract JComponent createCenterBody();
/**
* 初始化下拉框中的类型
*
* @return JComponent 待显示的详细信息面板
*/
public abstract Object getComboBoxSelected();
/**
* 刷新
*/
@ -126,4 +250,55 @@ public abstract class CellQuickEditor extends QuickEditor<ElementCasePane> {
* 刷新详细信息
*/
protected abstract void refreshDetails();
/**
* 属性面板的滚动条和内容区域的布局管理类
* yaoh.wu 由于这边不能继承{@link com.fr.design.mainframe.AbstractAttrPane.BarLayout}所以冗余了一份滚动条代码进来
*
* @see com.fr.design.mainframe.AbstractAttrPane.BarLayout
*/
protected class BarLayout implements LayoutManager {
@Override
public void addLayoutComponent(String name, Component comp) {
}
@Override
public void removeLayoutComponent(Component comp) {
}
@Override
public Dimension preferredLayoutSize(Container parent) {
return leftContentPane.getPreferredSize();
}
@Override
public Dimension minimumLayoutSize(Container parent) {
return leftContentPane.getMinimumSize();
}
@Override
public void layoutContainer(Container parent) {
maxHeight = CellElementPropertyPane.getInstance().getHeight() - TITLE_HEIGHT;
int beginY;
if ((MAXVALUE - scrollBar.getVisibleAmount()) == 0) {
beginY = 0;
} else {
int preferredHeight = leftContentPane.getPreferredSize().height;
int value = scrollBar.getValue();
beginY = value * (preferredHeight - maxHeight) / (MAXVALUE - scrollBar.getVisibleAmount());
}
int width = parent.getWidth();
int height = parent.getHeight();
if (leftContentPane.getPreferredSize().height > maxHeight) {
leftContentPane.setBounds(0, -beginY, width - scrollBar.getWidth() - CONTENT_PANE_WIDTH_GAP, height + beginY);
scrollBar.setBounds(width - scrollBar.getWidth() - 1, 0, scrollBar.getWidth(), height);
} else {
leftContentPane.setBounds(0, 0, width - SCROLLBAR_WIDTH - CONTENT_PANE_WIDTH_GAP, height);
}
leftContentPane.validate();
}
}
}

2
designer/src/com/fr/quickeditor/ChartQuickEditor.java

@ -1,7 +1,7 @@
package com.fr.quickeditor;
import com.fr.base.chart.BaseChartCollection;
import com.fr.chart.chartattr.ChartCollection;
//import com.fr.chart.chartattr.ChartCollection;
import com.fr.design.designer.TargetComponent;
import com.fr.design.gui.chart.BaseChartPropertyPane;
import com.fr.design.mainframe.ElementCasePane;

30
designer/src/com/fr/quickeditor/cellquick/CellBiasTextPainterEditor.java

@ -1,9 +1,12 @@
package com.fr.quickeditor.cellquick;
import com.fr.base.BaseUtils;
import com.fr.design.actions.core.ActionFactory;
import com.fr.design.actions.insert.cell.BiasCellAction;
import com.fr.design.cell.editor.BiasTextPainterCellEditor.BiasTextPainterPane;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
@ -11,29 +14,36 @@ import com.fr.quickeditor.CellQuickEditor;
import com.fr.report.cell.painter.BiasTextPainter;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* 单元格元素斜线编辑器
* TODO 9.0 大体没有改动
*/
public class CellBiasTextPainterEditor extends CellQuickEditor {
@Override
public JComponent createCenterBody() {
UIButton editbutton = new UIButton(Inter.getLocText("Edit"), BaseUtils.readIcon("/com/fr/design/images/m_insert/bias.png"));
editbutton.addActionListener(new ActionListener() {
JPanel content = new JPanel(new BorderLayout());
UIButton editButton = new UIButton(Inter.getLocText("Edit"));
editButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showEditingDialog();
}
});
editbutton.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0));
editbutton.setMargin(null);
editbutton.setOpaque(false);
return editbutton;
editButton.setOpaque(false);
content.add(TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{emptyLabel, editButton}},
new double[]{TableLayout.PREFERRED},
new double[]{TableLayout.PREFERRED, TableLayout.FILL}), BorderLayout.CENTER);
return content;
}
@Override
public Object getComboBoxSelected() {
return ActionFactory.createAction(BiasCellAction.class);
}
private void showEditingDialog() {
@ -56,8 +66,6 @@ public class CellBiasTextPainterEditor extends CellQuickEditor {
@Override
protected void refreshDetails() {
// TODO Auto-generated method stub
}
}

956
designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

File diff suppressed because it is too large Load Diff

206
designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java

@ -0,0 +1,206 @@
package com.fr.quickeditor.cellquick;
import com.fr.base.Formula;
import com.fr.base.Style;
import com.fr.base.TextFormat;
import com.fr.design.actions.core.ActionFactory;
import com.fr.design.actions.insert.cell.FormulaCellAction;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.formula.FormulaFactory;
import com.fr.design.formula.UIFormula;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.grid.selection.CellSelection;
import com.fr.quickeditor.CellQuickEditor;
import com.fr.report.ReportHelper;
import com.fr.report.cell.DefaultTemplateCellElement;
import com.fr.stable.ColumnRow;
import com.fr.stable.StringUtils;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
/**
* 公式快速编辑面板同文本数字编辑拆分
*
* @author yaoh.wu
* @version 2017年8月7日10点44分
* @since 9.0
*/
public class CellFormulaQuickEditor extends CellQuickEditor {
//文本域
private UITextField formulaTextField;
//编辑状态
private boolean isEditing = false;
//编辑的是公式,要保留公式里的这些属性,不然在公式和字符串转化时,就会丢失这些属性设置。
private boolean reserveInResult = false;
private boolean reserveOnWriteOrAnaly = true;
//默认值
private static final String DEFAULT_FORMULA = "=";
private DocumentListener documentListener = new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
changeReportPaneCell(formulaTextField.getText().trim());
}
@Override
public void removeUpdate(DocumentEvent e) {
changeReportPaneCell(formulaTextField.getText().trim());
}
@Override
public void changedUpdate(DocumentEvent e) {
changeReportPaneCell(formulaTextField.getText().trim());
}
};
private CellFormulaQuickEditor() {
super();
}
/**
* 详细信息面板
*/
@Override
public JComponent createCenterBody() {
JPanel content = new JPanel(new BorderLayout());
formulaTextField = new UITextField();
formulaTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if (tc != null) {
tc.getGrid().dispatchEvent(e);
}
}
});
JPanel textFieldPane = new JPanel(new BorderLayout());
textFieldPane.add(formulaTextField, BorderLayout.CENTER);
textFieldPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
UIButton formulaButton = new UIButton(IOUtils.readIcon("/com/fr/design/images/m_insert/formula.png"));
formulaButton.setToolTipText(Inter.getLocText("Formula") + "...");
formulaButton.setPreferredSize(new Dimension(20, formulaTextField.getPreferredSize().height));
formulaButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
String text = formulaTextField.getText();
final UIFormula formulaPane = FormulaFactory.createFormulaPane();
formulaPane.populate(new Formula(text));
formulaPane.showLargeWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
Formula fm = formulaPane.update();
if (fm.getContent().length() <= 1) {
formulaTextField.setText(DEFAULT_FORMULA);
} else {
formulaTextField.setText(fm.getContent());
}
}
}).setVisible(true);
}
});
JPanel pane = new JPanel(new BorderLayout());
pane.add(textFieldPane, BorderLayout.CENTER);
pane.add(formulaButton, BorderLayout.EAST);
content.add(pane, BorderLayout.NORTH);
return TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{emptyLabel, content}},
new double[]{TableLayout.PREFERRED},
new double[]{TableLayout.PREFERRED, TableLayout.FILL});
}
@Override
public Object getComboBoxSelected() {
return ActionFactory.createAction(FormulaCellAction.class);
}
private void changeReportPaneCell(String tmpText) {
isEditing = true;
//refresh一下,如果单元格内有新添加的控件,此时并不知道
CellSelection cs1 = (CellSelection) tc.getSelection();
ColumnRow columnRow = ColumnRow.valueOf(cs1.getColumn(), cs1.getRow());
columnRowTextField.setText(columnRow.toString());
cellElement = tc.getEditingElementCase().getTemplateCellElement(cs1.getColumn(), cs1.getRow());
if (cellElement == null) {
CellSelection cs = (CellSelection) tc.getSelection();
cellElement = new DefaultTemplateCellElement(cs.getColumn(), cs.getRow());
tc.getEditingElementCase().addCellElement(cellElement, false);
}
if (tmpText != null && (tmpText.length() > 0 && tmpText.charAt(0) == '=')) {
Formula textFormula = new Formula(tmpText);
textFormula.setReserveInResult(reserveInResult);
textFormula.setReserveOnWriteOrAnaly(reserveOnWriteOrAnaly);
cellElement.setValue(textFormula);
} else {
Style style = cellElement.getStyle();
if (style != null && style.getFormat() != null && style.getFormat() == TextFormat.getInstance()) {
cellElement.setValue(tmpText);
} else {
cellElement.setValue(ReportHelper.convertGeneralStringAccordingToExcel(tmpText));
}
}
fireTargetModified();
formulaTextField.requestFocus();
isEditing = false;
}
/**
* 刷新详细内容
*/
@Override
protected void refreshDetails() {
String str;
if (cellElement == null) {
str = StringUtils.EMPTY;
} else {
Object value = cellElement.getValue();
if (value == null) {
str = StringUtils.EMPTY;
} else if (value instanceof Formula) {
Formula formula = (Formula) value;
str = formula.getContent();
reserveInResult = formula.isReserveInResult();
reserveOnWriteOrAnaly = formula.isReserveOnWriteOrAnaly();
} else {
str = value.toString();
}
}
showText(str);
formulaTextField.setEditable(tc.isSelectedOneCell());
}
/**
* 显示文本
*
* @param str 文本
*/
public void showText(String str) {
// 正在编辑时不处理
if (isEditing) {
return;
}
formulaTextField.getDocument().removeDocumentListener(documentListener);
formulaTextField.setText(str);
formulaTextField.getDocument().addDocumentListener(documentListener);
}
}

40
designer/src/com/fr/quickeditor/cellquick/CellImageQuickEditor.java

@ -1,9 +1,12 @@
package com.fr.quickeditor.cellquick;
import com.fr.base.BaseUtils;
import com.fr.base.Style;
import com.fr.design.actions.core.ActionFactory;
import com.fr.design.actions.insert.cell.ImageCellAction;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.report.SelectImagePane;
import com.fr.general.ComparatorUtils;
@ -12,22 +15,17 @@ import com.fr.quickeditor.CellQuickEditor;
import com.fr.report.cell.cellattr.CellImage;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* 单元格元素图片编辑器
* TODO 9.0大体上没有改动
*
* @author yaoh.wu
* @version 2017年8月7日10点53分
*/
public class CellImageQuickEditor extends CellQuickEditor {
private static CellImageQuickEditor THIS;
public static final CellImageQuickEditor getInstance() {
if (THIS == null) {
THIS = new CellImageQuickEditor();
}
return THIS;
}
private CellImageQuickEditor() {
super();
@ -35,18 +33,20 @@ public class CellImageQuickEditor extends CellQuickEditor {
@Override
public JComponent createCenterBody() {
UIButton editbutton = new UIButton(Inter.getLocText("Edit"), BaseUtils.readIcon("/com/fr/design/images/m_insert/image.png"));
editbutton.addActionListener(new ActionListener() {
JPanel content = new JPanel(new BorderLayout());
UIButton editButton = new UIButton(Inter.getLocText("Edit"));
editButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showEditingDialog();
}
});
editbutton.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0));
editbutton.setMargin(null);
editbutton.setOpaque(false);
return editbutton;
editButton.setOpaque(false);
content.add(TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{emptyLabel, editButton}},
new double[]{TableLayout.PREFERRED},
new double[]{TableLayout.PREFERRED, TableLayout.FILL}), BorderLayout.CENTER);
return content;
}
private void showEditingDialog() {
@ -55,7 +55,6 @@ public class CellImageQuickEditor extends CellQuickEditor {
final Object oldValue = cellElement.getValue();
final Style oldStyle = cellElement.getStyle();
imageEditorPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
CellImage cellImage = imageEditorPane.update();
@ -65,7 +64,6 @@ public class CellImageQuickEditor extends CellQuickEditor {
fireTargetModified();
}
}
}).setVisible(true);
}
@ -74,4 +72,8 @@ public class CellImageQuickEditor extends CellQuickEditor {
}
@Override
public Object getComboBoxSelected() {
return ActionFactory.createAction(ImageCellAction.class);
}
}

48
designer/src/com/fr/quickeditor/cellquick/CellRichTextEditor.java

@ -1,50 +1,52 @@
package com.fr.quickeditor.cellquick;
import com.fr.design.actions.core.ActionFactory;
import com.fr.design.actions.insert.cell.RichTextCellAction;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
import com.fr.quickeditor.CellQuickEditor;
import javax.swing.*;
import java.awt.*;
/**
* 单元格元素富文本编辑器
* TODO 9.0 大体上没有改动
*
* @author yaoh.wu
* @version 2017年8月7日10点53分
*/
public class CellRichTextEditor extends CellQuickEditor {
private UIButton subReportButton;
private static CellRichTextEditor THIS;
public static final CellRichTextEditor getInstance() {
if (THIS == null) {
THIS = new CellRichTextEditor();
}
return THIS;
}
private UIButton richTextButton;
private CellRichTextEditor() {
super();
}
/**
* 创建界面上中间的部分
*
* @return 界面元素
* @date 2014-12-7-下午9:41:52
*/
@Override
public JComponent createCenterBody() {
subReportButton = new UIButton();
subReportButton.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0));
subReportButton.setMargin(null);
subReportButton.setOpaque(false);
return subReportButton;
JPanel content = new JPanel(new BorderLayout());
richTextButton = new UIButton();
richTextButton.setOpaque(false);
content.add(TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{emptyLabel, richTextButton}},
new double[]{TableLayout.PREFERRED},
new double[]{TableLayout.PREFERRED, TableLayout.FILL}), BorderLayout.CENTER);
return content;
}
@Override
public Object getComboBoxSelected() {
return ActionFactory.createAction(RichTextCellAction.class);
}
@Override
protected void refreshDetails() {
RichTextCellAction subReportCellAction = new RichTextCellAction(tc);
subReportCellAction.setName(Inter.getLocText("FR-Designer_RichTextEditor"));
subReportButton.setAction(subReportCellAction);
subReportCellAction.setName(Inter.getLocText("Edit"));
subReportCellAction.setSmallIcon(null);
richTextButton.setAction(subReportCellAction);
}
}

65
designer/src/com/fr/quickeditor/cellquick/CellStringQuickEditor.java

@ -3,7 +3,8 @@ package com.fr.quickeditor.cellquick;
import com.fr.base.Formula;
import com.fr.base.Style;
import com.fr.base.TextFormat;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.itextarea.UITextArea;
import com.fr.grid.GridKeyListener;
import com.fr.grid.selection.CellSelection;
import com.fr.quickeditor.CellQuickEditor;
import com.fr.report.ReportHelper;
@ -14,6 +15,7 @@ import com.fr.stable.StringUtils;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
@ -21,21 +23,11 @@ import java.awt.event.KeyEvent;
*
*/
public class CellStringQuickEditor extends CellQuickEditor {
//instance
private static CellStringQuickEditor THIS;
//文本域
//TODO 9.0 文本域要根据具体文本数量自适应大小,比较难搞,先跳过。
private UITextField stringTextField;
//文本域 直接可以自适应大小
private UITextArea stringTextArea;
//编辑状态
private boolean isEditing = false;
public static CellStringQuickEditor getInstance() {
if (THIS == null) {
THIS = new CellStringQuickEditor();
}
return THIS;
}
//august:如果是原来编辑的是公式,要保留公式里的这些属性,不然在公式和字符串转化时,就会丢失这些属性设置。
private boolean reserveInResult = false;
private boolean reserveOnWriteOrAnaly = true;
@ -43,17 +35,17 @@ public class CellStringQuickEditor extends CellQuickEditor {
private DocumentListener documentListener = new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
changeReportPaneCell(stringTextField.getText().trim());
changeReportPaneCell(stringTextArea.getText().trim());
}
@Override
public void removeUpdate(DocumentEvent e) {
changeReportPaneCell(stringTextField.getText().trim());
changeReportPaneCell(stringTextArea.getText().trim());
}
@Override
public void changedUpdate(DocumentEvent e) {
changeReportPaneCell(stringTextField.getText().trim());
changeReportPaneCell(stringTextArea.getText().trim());
}
};
@ -64,20 +56,38 @@ public class CellStringQuickEditor extends CellQuickEditor {
/**
* 详细信息面板
* todo 文本框可自适应大小公式编辑也是在这边如果是公式那么要加一个公式编辑器的触发按钮
*/
@Override
public JComponent createCenterBody() {
stringTextField = new UITextField();
stringTextField.addKeyListener(new KeyAdapter() {
JPanel content = new JPanel(new BorderLayout());
stringTextArea = new UITextArea();
stringTextArea.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (tc == null) {
return;
}
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
//todo 按enter键换至下一个单元格 yaoh.wu虽然模仿选中单元格按enter这种场景可以做到,但是原理没有弄清楚。
GridKeyListener dispatchListener = new GridKeyListener(tc.getGrid());
dispatchListener.keyPressed(e);
dispatchListener.keyTyped(e);
}
}
@Override
public void keyReleased(KeyEvent e) {
if (tc != null) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
return;
}
tc.getGrid().dispatchEvent(e);
}
}
});
return stringTextField;
content.add(stringTextArea, BorderLayout.CENTER);
return content;
}
@ -108,7 +118,7 @@ public class CellStringQuickEditor extends CellQuickEditor {
}
}
fireTargetModified();
stringTextField.requestFocus();
stringTextArea.requestFocus();
isEditing = false;
}
@ -134,7 +144,7 @@ public class CellStringQuickEditor extends CellQuickEditor {
}
}
showText(str);
stringTextField.setEditable(tc.isSelectedOneCell());
stringTextArea.setEditable(tc.isSelectedOneCell());
}
/**
@ -147,9 +157,14 @@ public class CellStringQuickEditor extends CellQuickEditor {
if (isEditing) {
return;
}
stringTextField.getDocument().removeDocumentListener(documentListener);
stringTextField.setText(str);
stringTextField.getDocument().addDocumentListener(documentListener);
stringTextArea.getDocument().removeDocumentListener(documentListener);
stringTextArea.setText(str);
stringTextArea.getDocument().addDocumentListener(documentListener);
}
@Override
public Object getComboBoxSelected() {
return null;
}
}

32
designer/src/com/fr/quickeditor/cellquick/CellSubReportEditor.java

@ -1,26 +1,25 @@
package com.fr.quickeditor.cellquick;
import com.fr.design.actions.core.ActionFactory;
import com.fr.design.actions.insert.cell.SubReportCellAction;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.general.Inter;
import com.fr.quickeditor.CellQuickEditor;
import javax.swing.*;
import java.awt.*;
/**
* 单元格元素子报表编辑器
* TODO 9.0大体上没有改动
*
* @author yaoh.wu
* @version 2017年8月7日10点53分
*/
public class CellSubReportEditor extends CellQuickEditor {
private UIButton subReportButton;
private static CellSubReportEditor THIS;
public static final CellSubReportEditor getInstance() {
if (THIS == null) {
THIS = new CellSubReportEditor();
}
return THIS;
}
private CellSubReportEditor() {
super();
@ -28,18 +27,27 @@ public class CellSubReportEditor extends CellQuickEditor {
@Override
public JComponent createCenterBody() {
JPanel content = new JPanel(new BorderLayout());
subReportButton = new UIButton();
subReportButton.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0));
subReportButton.setMargin(null);
subReportButton.setOpaque(false);
return subReportButton;
content.add(TableLayoutHelper.createTableLayoutPane(new Component[][]{
new Component[]{emptyLabel, subReportButton}},
new double[]{TableLayout.PREFERRED},
new double[]{TableLayout.PREFERRED, TableLayout.FILL}), BorderLayout.CENTER);
return content;
}
@Override
protected void refreshDetails() {
SubReportCellAction subReportCellAction = new SubReportCellAction(tc);
subReportCellAction.setName(Inter.getLocText(new String[]{"Edit", "Sub_Report"}));
subReportCellAction.setName(Inter.getLocText("Edit"));
subReportCellAction.setSmallIcon(null);
subReportButton.setAction(subReportCellAction);
}
@Override
public Object getComboBoxSelected() {
return ActionFactory.createAction(SubReportCellAction.class);
}
}

4
designer_base/src/com/fr/design/actions/TemplateComponentAction.java

@ -5,6 +5,10 @@ import com.fr.design.designer.TargetComponent;
public abstract class TemplateComponentAction<T extends TargetComponent> extends UndoableAction implements TemplateComponentActionInterface<T> {
private T t;
protected TemplateComponentAction() {
}
protected TemplateComponentAction(T t) {
this.t = t;
}

34
designer_base/src/com/fr/design/actions/core/ActionFactory.java

@ -5,6 +5,7 @@ import com.fr.base.Utils;
import com.fr.design.actions.UpdateAction;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.MenuKeySet;
import com.fr.design.selection.QuickEditor;
import javax.swing.*;
@ -132,6 +133,17 @@ public class ActionFactory {
return createEditor(clazz, cellEditor);
}
public static UpdateAction createAction(Class clazz) {
try {
Constructor<? extends UpdateAction> c = clazz.getDeclaredConstructor();
c.setAccessible(true);
return c.newInstance();
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
}
return null;
}
/**
* peter:从Action来产生ToolTipText.
*
@ -190,7 +202,7 @@ public class ActionFactory {
}
if (jTemplate.acceptToolbarItem(clazz)) {
try {
Constructor<? extends UpdateAction> c = (Constructor<? extends UpdateAction>)clazz.getConstructor(cls);
Constructor<? extends UpdateAction> c = (Constructor<? extends UpdateAction>) clazz.getConstructor(cls);
actions.add(c.newInstance(obj));
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
@ -200,6 +212,24 @@ public class ActionFactory {
return actions.toArray(new UpdateAction[actions.size()]);
}
public static MenuKeySet[] createCellInsertActionName() {
List<MenuKeySet> actionNames = new ArrayList<>();
for (Class<?> clazz : actionClasses) {
if (clazz == null) {
continue;
}
try {
Constructor<? extends UpdateAction> c = (Constructor<? extends UpdateAction>) clazz.getConstructor();
actionNames.add(c.newInstance().getMenuKeySet());
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);
}
}
return actionNames.toArray(new MenuKeySet[actionNames.size()]);
}
/**
* 登记悬浮元素插入类型
*
@ -225,7 +255,7 @@ public class ActionFactory {
continue;
}
try {
Constructor<? extends UpdateAction> c = (Constructor<? extends UpdateAction>)clazz.getConstructor(cls);
Constructor<? extends UpdateAction> c = (Constructor<? extends UpdateAction>) clazz.getConstructor(cls);
actions.add(c.newInstance(obj));
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage(), e);

12
designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java

@ -3,11 +3,13 @@ package com.fr.design.actions.file;
import com.fr.base.BaseUtils;
import com.fr.base.Env;
import com.fr.base.FRContext;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.base.FRCoreContext;
import com.fr.dav.LocalEnv;
import com.fr.design.DesignerEnvManager;
import com.fr.design.actions.UpdateAction;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.design.dialog.InformationWarnPane;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
@ -15,16 +17,14 @@ import com.fr.design.mainframe.TemplatePane;
import com.fr.design.menu.KeySetUtils;
import com.fr.design.menu.MenuDef;
import com.fr.design.menu.SeparatorDef;
import com.fr.design.dialog.InformationWarnPane;
import com.fr.env.RemoteEnv;
import com.fr.env.SignIn;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.Inter;
import com.fr.stable.LicUtils;
import com.fr.stable.ProductConstants;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.ProductConstants;
import com.fr.stable.StringUtils;
import javax.swing.*;
@ -118,7 +118,7 @@ public class SwitchExistEnv extends MenuDef {
return;
}
SignIn.signIn(selectedEnv);
LicUtils.resetBytes();
FRCoreContext.resetBytes();
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
fireDSChanged();
} catch (Exception em) {

4
designer_base/src/com/fr/design/border/UITitledBorder.java

@ -1,5 +1,7 @@
package com.fr.design.border;
import com.fr.design.constants.UIConstants;
import java.awt.Color;
import javax.swing.BorderFactory;
@ -19,7 +21,7 @@ public class UITitledBorder extends TitledBorder {
}
private void init(String title){
UIRoundedBorder roundedborder = new UIRoundedBorder(new Color(204, 204, 204), 1, 10);
UIRoundedBorder roundedborder = new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, 10);
this.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 5, 0), roundedborder));
this.setTitle(title);

8
designer_base/src/com/fr/design/constants/UIConstants.java

@ -88,8 +88,8 @@ public interface UIConstants {
public static final Color AUTHORITY_SHEET_UNSELECTED = new Color(146, 192, 225);
public static final Color ATTRIBUTE_PRESS = new Color(0x419BF9);
public static final Color NORMAL_BLUE = new Color(0x419BF9);
public static final Color ATTRIBUTE_NORMAL = new Color(0xDADADD);
public static final Color ATTRIBUTE_HOVER = new Color(0xC9C9CD);
public static final Color ATTRIBUTE_NORMAL = Color.WHITE;
public static final Color ATTRIBUTE_HOVER = new Color(0xF5F5F7);
public static final Color CHECKBOX_HOVER_SELECTED = new Color(0x3394f0);
public static final Color TEXT_FILED_BORDER_SELECTED = new Color(0x3384f0);
public static final Color SHEET_NORMAL = new Color(0xc8c8ca);
@ -100,6 +100,8 @@ public interface UIConstants {
public static final Color RULER_SCALE_COLOR = new Color(0x4e504f);
public static final Color PROPERTY_PANE_BACKGROUND = new Color(0xdadadd);
public static final Color SPLIT_LINE = new Color(201, 198, 184);
public static final Color TITLED_BORDER_COLOR = new Color(0xededee);
public static final Color POP_DIALOG_BORDER = new Color(218, 218, 221);
public static final BufferedImage DRAG_BAR = BaseUtils.readImage("com/fr/design/images/control/bar.png");
@ -154,7 +156,7 @@ public interface UIConstants {
public static final Color BARNOMAL = new Color(232, 232, 233);
public static final Color COMPONENT_BACKGROUND_COLOR = new Color(237,237,238);
public static final int ARC = 0;
public static final int BUTTON_GROUP_ARC = 6;
public static final int BUTTON_GROUP_ARC = 0;
public static final int LARGEARC = 6;
public static final Stroke BS = new BasicStroke(1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 2f, new float[]{3, 1}, 0);
public static final Icon PREVIEW_DOWN = BaseUtils.readIcon("com/fr/design/images/buttonicon/prevew_down_icon.png");

0
designer_form/src/com/fr/design/designer/properties/Decoder.java → designer_base/src/com/fr/design/designer/properties/Decoder.java

0
designer_form/src/com/fr/design/designer/properties/Encoder.java → designer_base/src/com/fr/design/designer/properties/Encoder.java

6
designer_base/src/com/fr/design/gui/controlpane/UIControlPane.java

@ -1,5 +1,6 @@
package com.fr.design.gui.controlpane;
import com.fr.design.constants.UIConstants;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itoolbar.UIToolBarUI;
@ -276,7 +277,10 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
setUndecorated(true);
pane.setBorder(BorderFactory.createEmptyBorder(20, 10, 10, 10));
this.editPane = pane;
this.getContentPane().add(editPane, BorderLayout.CENTER);
JPanel editPaneWrapper = new JPanel(new BorderLayout());
editPaneWrapper.add(editPane, BorderLayout.CENTER);
editPaneWrapper.setBorder(BorderFactory.createLineBorder(UIConstants.POP_DIALOG_BORDER, 1));
this.getContentPane().add(editPaneWrapper, BorderLayout.CENTER);
setSize(WIDTH, HEIGHT);
// pack();
this.setVisible(false);

16
designer_base/src/com/fr/design/gui/frpane/RegPane.java

@ -73,17 +73,13 @@ public class RegPane extends BasicPane {
private void initComponents(){
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel contentPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane();
this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
this.add(contentPane, BorderLayout.NORTH);
contentPane.add(new UILabel(Inter.getLocText("FR-Designer_Input_Rule")));
this.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
regComboBox = new UIComboBox(regType);
regComboBox.setPreferredSize(new Dimension(140, 20));
regComboBox.setRenderer(listCellRender);
UILabel uiLabel = new UILabel();
uiLabel.setPreferredSize(new Dimension(20, 20));
contentPane.add(uiLabel);
contentPane.add(regComboBox);
JPanel contentPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_Input_Rule")), regComboBox}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7);
this.add(contentPane, BorderLayout.NORTH);
regErrorMsgPane = new RegErrorMsgPane();
final JPanel cardPane = FRGUIPaneFactory.createCardLayout_S_Pane();
detailedCardLayout = new CardLayout();
@ -489,7 +485,7 @@ public class RegPane extends BasicPane {
public RegErrorMsgPane(){
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(BorderFactory.createEmptyBorder(5,0,0,0));
this.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
initRegErrorMsgField();
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget_Error_Tip")), regErrorMsgField}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7);
this.add(panel);

15
designer_base/src/com/fr/design/gui/frpane/ReportletParameterViewPane.java

@ -23,6 +23,7 @@ import java.util.List;
/**
* Defin hyperlink.
* in fact,this is a TablEditorPane
*
* @editor zhou
* @since 2012-3-23下午3:48:10
*/
@ -53,6 +54,7 @@ public class ReportletParameterViewPane extends BasicPane {
/**
* 初始化组件
*
* @param actions Chart的热点链接actions
* @param useParaType 类型
*/
@ -63,8 +65,8 @@ public class ReportletParameterViewPane extends BasicPane {
ParameterTableModel model = new ParameterTableModel(valueEditorPane, valueRenderPane, this) {
@Override
public UITableEditAction[] createAction() {
UITableEditAction[] tableEditActions = new UITableEditAction[] { new AddChartParameterAction(), new DeleteAction(this.component),
new MoveUpAction(), new MoveDownAction() };
UITableEditAction[] tableEditActions = new UITableEditAction[]{new AddChartParameterAction(), new DeleteAction(this.component),
new MoveUpAction(), new MoveDownAction()};
return (UITableEditAction[]) ArrayUtils.addAll(tableEditActions, actions);
}
};
@ -84,6 +86,7 @@ public class ReportletParameterViewPane extends BasicPane {
/**
* 增加事件监听
*
* @param l 加的东东
*/
public void addTableEditorListener(TableModelListener l) {
@ -117,8 +120,14 @@ public class ReportletParameterViewPane extends BasicPane {
return editorPane.update();
}
public void update(List list) {
editorPane.update(list);
}
/**
* 更新
*
* @return 数组
*/
public KV[] updateKV() {
@ -128,7 +137,7 @@ public class ReportletParameterViewPane extends BasicPane {
for (int i = 0; i < length; i++) {
kv[i] = new KV();
kv[i].setKey(list.get(i).getName());
kv[i].setValue( list.get(i).getValue());
kv[i].setValue(list.get(i).getValue());
}
return kv;
}

1
designer_base/src/com/fr/design/gui/frpane/TreeSettingPane.java

@ -52,6 +52,7 @@ public class TreeSettingPane extends BasicPane implements DataCreatorUI {
private void initComponents(boolean isEditor) {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel buildWayPanel= FRGUIPaneFactory.createMediumHGapFlowInnerContainer_M_Pane();
buildWayPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
UILabel buildWayLabel = new UILabel(Inter.getLocText("FR-Designer_Build-Way") + " :");
buildWayPanel.add(buildWayLabel);
buildBox = new UIComboBox(buildWay);

3
designer_base/src/com/fr/design/gui/ibutton/UIButtonGroup.java

@ -153,14 +153,13 @@ public class UIButtonGroup<T> extends JPanel implements GlobalNameObserver {
}
protected void initButton(UIToggleButton labelButton) {
labelButton.setRoundBorder(true);
labelButton.setBorderPainted(false);
labelButtonList.add(labelButton);
this.add(labelButton);
}
protected Border getGroupBorder() {
return BorderFactory.createEmptyBorder(1, 1, 1, 1);
return BorderFactory.createEmptyBorder(0, 0, 0, 0);
}
protected LayoutManager getGridLayout(int number) {

20
designer_base/src/com/fr/design/gui/itableeditorpane/UITableEditorPane.java

@ -1,12 +1,12 @@
package com.fr.design.gui.itableeditorpane;
import com.fr.design.constants.UIConstants;
import com.fr.design.border.UIRoundedBorder;
import com.fr.design.constants.UIConstants;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.dialog.BasicPane;
import com.fr.general.Inter;
import javax.swing.*;
@ -49,9 +49,10 @@ public class UITableEditorPane<T> extends BasicPane {
UILabel l = new UILabel(leftLabelName);
editTable = tableModel.createTable();
editTable.getTableHeader().setBackground(UIConstants.DEFAULT_BG_RULER);
UIScrollPane scrollPane = new UIScrollPane(editTable);
scrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC));
scrollPane.setBorder(new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, UIConstants.ARC));
pane.add(scrollPane, BorderLayout.CENTER);
initbuttonPane(action);
JPanel controlPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
@ -65,7 +66,7 @@ public class UITableEditorPane<T> extends BasicPane {
return tableModel;
}
private void initbuttonPane(UITableEditAction[] action){
private void initbuttonPane(UITableEditAction[] action) {
buttonPane = new JPanel();
if (action != null) {
@ -87,6 +88,7 @@ public class UITableEditorPane<T> extends BasicPane {
/**
* 增加事件监听
*
* @param l 加的东东
*/
public void addTableListener(TableModelListener l) {
@ -95,6 +97,7 @@ public class UITableEditorPane<T> extends BasicPane {
/**
* 移除事件监听
*
* @param l 去的东东
*/
public void removeTableListener(TableModelListener l) {
@ -108,7 +111,7 @@ public class UITableEditorPane<T> extends BasicPane {
public void populate(T[] objs) {
tableModel.clear();
if(objs==null){
if (objs == null) {
return;
}
for (T obj : objs) {
@ -126,6 +129,11 @@ public class UITableEditorPane<T> extends BasicPane {
return tableModel.getList();
}
public void update(List list) {
tableModel.stopCellEditing();
tableModel.setList(list);
}
public int getSelectedRow() {
return this.editTable.getSelectedRow();
}
@ -134,7 +142,7 @@ public class UITableEditorPane<T> extends BasicPane {
return this.editTable.getSelectedColumn();
}
public JPanel getbuttonPane(){
public JPanel getbuttonPane() {
return buttonPane;
}

13
designer_base/src/com/fr/design/gui/itextfield/UITextField.java

@ -13,6 +13,8 @@ import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
import java.awt.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
/**
* @author Jerry
@ -59,19 +61,14 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs
protected void initListener() {
if (shouldResponseChangeListener()) {
getDocument().addDocumentListener(new DocumentListener() {
addFocusListener(new FocusListener() {
@Override
public void insertUpdate(DocumentEvent e) {
public void focusGained(FocusEvent e) {
attributeChange();
}
@Override
public void removeUpdate(DocumentEvent e) {
attributeChange();
}
@Override
public void changedUpdate(DocumentEvent e) {
public void focusLost(FocusEvent e) {
attributeChange();
}
});

3
designer_base/src/com/fr/design/gui/itextfield/UITextFieldUI.java

@ -51,9 +51,6 @@ public class UITextFieldUI extends BasicTextFieldUI {
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2d.clip(roundShape);
g2d.setColor(backgroundColor);
if(!textField.isEnabled()){
g2d.setColor(UIConstants.NORMAL_BACKGROUND);
}
g2d.fillRoundRect(1, 1, width - 2, height - 2, 0, 0);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
}

42
designer_base/src/com/fr/design/gui/itree/refreshabletree/TreeRootPane.java

@ -9,7 +9,6 @@ import javax.swing.JPanel;
import com.fr.data.impl.TreeAttr;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.dialog.BasicPane;
import com.fr.general.Inter;
@ -18,10 +17,10 @@ public class TreeRootPane extends BasicPane {
// 是否支持多选(checkBoxTree)
//private JCheckBox multipleSelection;
private UIComboBox checkTypeComboBox;
private UICheckBox checkTypeCheckBox;
// richer:加载的方式,支持异步加载和完全加载
private UIComboBox loadTypeComboBox;
private UICheckBox loadTypeCheckBox;
private UICheckBox layerTypeCheckBox;
@ -30,30 +29,25 @@ public class TreeRootPane extends BasicPane {
public TreeRootPane() {
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
JPanel checkTypePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
checkTypePane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
checkTypePane.add(new UILabel(Inter.getLocText("Tree-Mutiple_Selection_Or_Not") + ":"));
checkTypeComboBox = new UIComboBox(new String[] {Inter.getLocText("Yes"), Inter.getLocText("No")});
checkTypePane.add(checkTypeComboBox);
JPanel checkTypePane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane_First0();
checkTypePane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
checkTypeCheckBox = new UICheckBox(Inter.getLocText("Tree-Mutiple_Selection_Or_Not"));
checkTypePane.add(checkTypeCheckBox);
this.add(checkTypePane);
JPanel loadTypePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
loadTypePane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
loadTypePane.add(new UILabel(Inter.getLocText("Widget-Load_Type") + ":"));
loadTypeComboBox = new UIComboBox(new String[]{Inter.getLocText("Widget-Load_By_Async"), Inter.getLocText("Widget-Load_By_Complete")});
loadTypePane.add(loadTypeComboBox);
JPanel loadTypePane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane_First0();
checkTypePane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
loadTypeCheckBox = new UICheckBox(Inter.getLocText("Widget-Load_By_Async"));
loadTypePane.add(loadTypeCheckBox);
this.add(loadTypePane);
JPanel leafSelectPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
leafSelectPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
JPanel leafSelectPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane_First0();
checkTypePane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
leafSelectPane.add(layerTypeCheckBox = new UICheckBox(Inter.getLocText("Tree-Select_Leaf_Only")));
UILabel tips = new UILabel(Inter.getLocText("Tree-Select_Leaf_Only_Tips"));
tips.setForeground(new Color(147, 178, 233));
leafSelectPane.add(tips);
this.add(leafSelectPane);
JPanel returnFullPathPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
returnFullPathPane.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
JPanel returnFullPathPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane_First0();
checkTypePane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
returnFullPathPane.add(returnFullPathCheckBox = new UICheckBox(Inter.getLocText("Tree-Return_Full_Path")));
this.add(returnFullPathPane);
@ -65,16 +59,16 @@ public class TreeRootPane extends BasicPane {
}
public void populate(TreeAttr treeAttr) {
checkTypeComboBox.setSelectedIndex(treeAttr.isMultipleSelection() ? 0 : 1);
loadTypeComboBox.setSelectedIndex(treeAttr.isAjax() ? 0 : 1);
checkTypeCheckBox.setSelected(treeAttr.isMultipleSelection());
loadTypeCheckBox.setSelected(treeAttr.isAjax());
layerTypeCheckBox.setSelected(treeAttr.isSelectLeafOnly());
returnFullPathCheckBox.setSelected(treeAttr.isReturnFullPath());
}
public TreeAttr update() {
TreeAttr treeAttr = new TreeAttr();
treeAttr.setMultipleSelection(checkTypeComboBox.getSelectedIndex() == 0);
treeAttr.setAjax(loadTypeComboBox.getSelectedIndex() == 0);
treeAttr.setMultipleSelection(checkTypeCheckBox.isSelected());
treeAttr.setAjax(loadTypeCheckBox.isSelected());
treeAttr.setSelectLeafOnly(layerTypeCheckBox.isSelected());
treeAttr.setReturnFullPath(returnFullPathCheckBox.isSelected());

6
designer_base/src/com/fr/design/gui/style/FRFontPane.java

@ -300,7 +300,7 @@ public class FRFontPane extends AbstractBasicStylePane implements GlobalNameObse
private JPanel createLeftPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f};
double[] columnSize = {p};
double[] rowSize = {p, p, p};
Component[][] components = new Component[][]{
new Component[]{fontSizeStyleComboBox},
@ -325,8 +325,8 @@ public class FRFontPane extends AbstractBasicStylePane implements GlobalNameObse
private JPanel createPane() {
JPanel createPane = new JPanel(new BorderLayout(3, 5));
createPane.add(fontNameComboBox, BorderLayout.NORTH);
createPane.add(createLeftPane(), BorderLayout.CENTER);
createPane.add(createRightPane(), BorderLayout.EAST);
JPanel jPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{createLeftPane(), createRightPane()}}, TableLayoutHelper.FILL_LASTCOLUMN, 5, 7);
createPane.add(jPanel, BorderLayout.CENTER);
return createPane;
}

BIN
designer_base/src/com/fr/design/images/arrow/arrow_down.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

After

Width:  |  Height:  |  Size: 278 B

BIN
designer_base/src/com/fr/design/images/arrow/arrow_up.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 311 B

BIN
designer_base/src/com/fr/design/images/buttonicon/add.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 160 B

BIN
designer_base/src/com/fr/design/images/buttonicon/add_press.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 306 B

BIN
designer_base/src/com/fr/design/images/buttonicon/addicon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 232 B

BIN
designer_base/src/com/fr/design/images/buttonicon/cube.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 688 B

After

Width:  |  Height:  |  Size: 500 B

BIN
designer_base/src/com/fr/design/images/buttonicon/editp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 675 B

After

Width:  |  Height:  |  Size: 802 B

BIN
designer_base/src/com/fr/design/images/buttonicon/hiden.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
designer_base/src/com/fr/design/images/buttonicon/hidep.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
designer_base/src/com/fr/design/images/buttonicon/minus.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 B

After

Width:  |  Height:  |  Size: 148 B

BIN
designer_base/src/com/fr/design/images/buttonicon/newcpts.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 218 B

BIN
designer_base/src/com/fr/design/images/buttonicon/open.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 356 B

BIN
designer_base/src/com/fr/design/images/buttonicon/pageb24.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 736 B

BIN
designer_base/src/com/fr/design/images/buttonicon/pages.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 482 B

BIN
designer_base/src/com/fr/design/images/buttonicon/plus.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

After

Width:  |  Height:  |  Size: 172 B

BIN
designer_base/src/com/fr/design/images/buttonicon/redo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

After

Width:  |  Height:  |  Size: 421 B

BIN
designer_base/src/com/fr/design/images/buttonicon/refresh.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 530 B

BIN
designer_base/src/com/fr/design/images/buttonicon/run24.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 389 B

BIN
designer_base/src/com/fr/design/images/buttonicon/undo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 450 B

BIN
designer_base/src/com/fr/design/images/buttonicon/writeb24.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

After

Width:  |  Height:  |  Size: 972 B

BIN
designer_base/src/com/fr/design/images/buttonicon/writes.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 541 B

BIN
designer_base/src/com/fr/design/images/chart/ChartStyle.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 314 B

After

Width:  |  Height:  |  Size: 309 B

BIN
designer_base/src/com/fr/design/images/chart/ChartType.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 151 B

BIN
designer_base/src/com/fr/design/images/chart/InterAttr.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 B

After

Width:  |  Height:  |  Size: 555 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save