forked from fanruan/finekit
richie
5 years ago
10 changed files with 995 additions and 11 deletions
@ -0,0 +1,14 @@
|
||||
package com.fanruan.api.design.ui.component; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-08-28 |
||||
* 带字典数据的下拉框,显示值和实际值通过字典进行对应 |
||||
*/ |
||||
public class UIDictionaryComboBox<T> extends com.fr.design.gui.icombobox.UIDictionaryComboBox<T> { |
||||
|
||||
public UIDictionaryComboBox(T[] keys, String[] values) { |
||||
super(keys, values); |
||||
} |
||||
} |
@ -0,0 +1,19 @@
|
||||
package com.fanruan.api.design.ui.component; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-08-28 |
||||
* 密码输入控件 |
||||
*/ |
||||
public class UIPasswordField extends com.fr.design.gui.ipasswordfield.UIPassWordField { |
||||
|
||||
public UIPasswordField() { |
||||
super(); |
||||
} |
||||
|
||||
public UIPasswordField(String text) { |
||||
super(text); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,27 @@
|
||||
package com.fanruan.api.design.ui.component; |
||||
|
||||
import com.fr.design.gui.itextfield.PlaceholderTextField; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-08-28 |
||||
* 带占位文本的文本编辑器(当没有输入文本的时候,会显示占位符) |
||||
*/ |
||||
public class UIPlaceholderTextField extends PlaceholderTextField { |
||||
|
||||
public UIPlaceholderTextField() { |
||||
super(); |
||||
} |
||||
|
||||
public UIPlaceholderTextField(String placeHolder) { |
||||
super(); |
||||
setPlaceholder(placeHolder); |
||||
} |
||||
|
||||
public UIPlaceholderTextField(String text, String placeHolder) { |
||||
super(text); |
||||
setPlaceholder(placeHolder); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,20 @@
|
||||
package com.fanruan.api.design.ui.component.table; |
||||
|
||||
|
||||
import com.fanruan.api.design.ui.component.table.model.UITableModelAdapter; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-08-28 |
||||
*/ |
||||
public class UITableEditorPane<T> extends com.fr.design.gui.itableeditorpane.UITableEditorPane<T> { |
||||
|
||||
public UITableEditorPane(UITableModelAdapter<T> adapter) { |
||||
super(adapter); |
||||
} |
||||
|
||||
public UITableEditorPane(UITableModelAdapter<T> adapter, String leftLabelName) { |
||||
super(adapter, leftLabelName); |
||||
} |
||||
} |
@ -1,28 +1,361 @@
|
||||
package com.fanruan.api.design.ui.component.table.model; |
||||
|
||||
|
||||
import com.fanruan.api.cal.ParameterKit; |
||||
import com.fanruan.api.design.ui.component.UILabel; |
||||
import com.fanruan.api.design.ui.component.UITextField; |
||||
import com.fanruan.api.design.ui.component.table.action.UITableEditAction; |
||||
import com.fanruan.api.design.ui.editor.ValueEditorPane; |
||||
import com.fanruan.api.design.ui.editor.ValueEditors; |
||||
import com.fanruan.api.design.util.I18nDesignKit; |
||||
import com.fanruan.api.log.LogKit; |
||||
import com.fanruan.api.util.IOKit; |
||||
import com.fanruan.api.util.StringKit; |
||||
import com.fr.design.mainframe.DesignerContext; |
||||
import com.fr.stable.ParameterProvider; |
||||
|
||||
import javax.swing.*; |
||||
import javax.swing.event.CellEditorListener; |
||||
import javax.swing.event.ChangeEvent; |
||||
import javax.swing.table.DefaultTableCellRenderer; |
||||
import javax.swing.table.TableCellEditor; |
||||
import java.awt.*; |
||||
import java.awt.event.ActionEvent; |
||||
import java.util.Collections; |
||||
|
||||
/** |
||||
* 表格模型 |
||||
*/ |
||||
public class ParameterTableModel extends com.fr.design.gui.itableeditorpane.ParameterTableModel { |
||||
public class ParameterTableModel extends UITableModelAdapter<ParameterProvider> { |
||||
|
||||
public static final int NO_CHART_USE = 0; |
||||
public static final int CHART_NORMAL_USE = 1; |
||||
public static final int FORM_NORMAL_USE = -1; |
||||
|
||||
private static final long serialVersionUID = 1L; |
||||
protected Component component = null; |
||||
|
||||
public ParameterTableModel() { |
||||
super(); |
||||
this(NO_CHART_USE); |
||||
} |
||||
|
||||
public ParameterTableModel(int paraUseType) { |
||||
super(paraUseType); |
||||
super(new String[]{I18nDesignKit.i18nText("Fine-Design_Basic_Parameter"), I18nDesignKit.i18nText("Fine-Design_Basic_Value")}); |
||||
this.setColumnClass(new Class[]{ParameterEditor.class, ParameterValueEditor.class}); |
||||
this.setDefaultEditor(ParameterValueEditor.class, new ParameterValueEditor(paraUseType)); |
||||
this.setDefaultEditor(ParameterEditor.class, new ParameterEditor()); |
||||
this.setDefaultRenderer(ParameterValueEditor.class, new ParameterValueRenderer(paraUseType)); |
||||
} |
||||
|
||||
public ParameterTableModel(int paraUseType, Component component) { |
||||
super(paraUseType, component); |
||||
super(new String[]{I18nDesignKit.i18nText("Fine-Design_Basic_Parameter"), I18nDesignKit.i18nText("Fine-Design_Basic_Value")}); |
||||
this.setColumnClass(new Class[]{ParameterEditor.class, ParameterValueEditor.class}); |
||||
this.setDefaultEditor(ParameterValueEditor.class, new ParameterValueEditor(paraUseType)); |
||||
this.setDefaultEditor(ParameterEditor.class, new ParameterEditor()); |
||||
this.setDefaultRenderer(ParameterValueEditor.class, new ParameterValueRenderer(paraUseType)); |
||||
this.component = component; |
||||
} |
||||
|
||||
public ParameterTableModel(ValueEditorPane valueEditorPane, ValueEditorPane valueRenderPane, Component component) { |
||||
super(valueEditorPane, valueRenderPane, component); |
||||
super(new String[]{I18nDesignKit.i18nText("Fine-Design_Basic_Parameter"), I18nDesignKit.i18nText("Fine-Design_Basic_Value")}); |
||||
this.setColumnClass(new Class[]{ParameterEditor.class, ParameterValueEditor.class}); |
||||
this.setDefaultEditor(ParameterValueEditor.class, new ParameterValueEditor(valueEditorPane)); |
||||
this.setDefaultEditor(ParameterEditor.class, new ParameterEditor()); |
||||
this.setDefaultRenderer(ParameterValueEditor.class, new ParameterValueRenderer(valueRenderPane)); |
||||
this.component = component; |
||||
} |
||||
|
||||
/** |
||||
* 单元格是否可编辑 |
||||
* |
||||
* @param row 行 |
||||
* @param col 列 |
||||
* @return 是否可以编辑 |
||||
*/ |
||||
public boolean isCellEditable(int row, int col) { |
||||
if (col == 1) { |
||||
return this.getList().get(row) != null && StringKit.isNotEmpty(this.getList().get(row).getName()); |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
@Override |
||||
public Object getValueAt(int rowIndex, int columnIndex) { |
||||
ParameterProvider para = this.getList().get(rowIndex); |
||||
switch (columnIndex) { |
||||
case 0: |
||||
return para.getName(); |
||||
case 1: |
||||
return para.getValue(); |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
/** |
||||
* 生成工具栏上的一系列动作按钮 |
||||
* |
||||
* @return 返回table上的action数组. |
||||
*/ |
||||
@Override |
||||
public UITableEditAction[] createAction() { |
||||
return new UITableEditAction[]{new AddParameterAction(), new DeleteAction(), new MoveUpAction(), new MoveDownAction()}; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 生成上移下移按钮 |
||||
* |
||||
* @return UItableEdit数组. |
||||
*/ |
||||
public UITableEditAction[] createDBTableAction() { |
||||
return new UITableEditAction[]{new MoveUpAction(), new MoveDownAction()}; |
||||
} |
||||
|
||||
|
||||
private class AddParameterAction extends AddTableRowAction { |
||||
|
||||
public AddParameterAction() { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
super.actionPerformed(e); |
||||
addParameter(); |
||||
} |
||||
} |
||||
|
||||
private void addParameter() { |
||||
ParameterProvider para = ParameterKit.newParameter(); |
||||
addRow(para); |
||||
fireTableDataChanged(); |
||||
table.getSelectionModel().setSelectionInterval(table.getRowCount() - 1, table.getRowCount() - 1); |
||||
} |
||||
|
||||
protected class DeleteAction extends UITableEditAction { |
||||
|
||||
private Component component = null; |
||||
|
||||
public DeleteAction() { |
||||
this.setName(I18nDesignKit.i18nText("Fine-Design_Report_Delete")); |
||||
this.setSmallIcon(IOKit.readIcon("/com/fr/base/images/cell/control/remove.png")); |
||||
} |
||||
|
||||
public DeleteAction(Component component) { |
||||
this.setName(I18nDesignKit.i18nText("Fine-Design_Report_Delete")); |
||||
this.setSmallIcon(IOKit.readIcon("/com/fr/base/images/cell/control/remove.png")); |
||||
this.component = component; |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
int[] selectedRow = table.getSelectedRows(); |
||||
if (isMultiSelected()) { |
||||
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), I18nDesignKit.i18nText("Fine-Design_Basic_Multiple_Select_Warn_Text")); |
||||
return; |
||||
} |
||||
if (table.getCellEditor() != null) { |
||||
try { |
||||
table.getCellEditor().stopCellEditing(); |
||||
} catch (Exception ee) { |
||||
LogKit.error(ee.getMessage(), ee); |
||||
} |
||||
} |
||||
if (getRowCount() < 1) { |
||||
return; |
||||
} |
||||
|
||||
if (component == null) { |
||||
component = DesignerContext.getDesignerFrame(); |
||||
} |
||||
int val = JOptionPane.showConfirmDialog(component, |
||||
I18nDesignKit.i18nText("Fine-Design_Basic_Utils_Are_You_Sure_To_Remove_The_Selected_Item") + "?", I18nDesignKit.i18nText("Fine-Design_Basic_Remove"), |
||||
JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); |
||||
if (val != JOptionPane.OK_OPTION) { |
||||
return; |
||||
} |
||||
for (int i = 0; i < selectedRow.length; i++) { |
||||
if (selectedRow[i] - i < 0) { |
||||
continue; |
||||
} |
||||
removeRow(selectedRow[i] - i); |
||||
} |
||||
fireTableDataChanged(); |
||||
int selection = selectedRow[0] > table.getRowCount() ? table.getRowCount() - 1 |
||||
: (selectedRow[0] > 1 ? selectedRow[0] - 1 : 0); |
||||
table.getSelectionModel().setSelectionInterval(selection, selection); |
||||
} |
||||
|
||||
private boolean isMultiSelected() { |
||||
int[] selectedRow = table.getSelectedRows(); |
||||
return (selectedRow.length == 1 && (selectedRow[0] > table.getRowCount() - 1 || selectedRow[0] < 0)) || selectedRow.length == 0; |
||||
} |
||||
|
||||
@Override |
||||
public void checkEnabled() { |
||||
setEnabled(!isMultiSelected()); |
||||
} |
||||
} |
||||
|
||||
protected class MoveUpAction extends UITableEditAction { |
||||
|
||||
public MoveUpAction() { |
||||
this.setName(I18nDesignKit.i18nText("Fine-Design_Basic_Utils_Move_Up")); |
||||
this.setSmallIcon(IOKit.readIcon("/com/fr/design/images/control/up.png")); |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
int selectedRow = table.getSelectedRow(); |
||||
stopCellEditing(); |
||||
if (getList().size() < 2 || selectedRow == 0) { |
||||
return; |
||||
} |
||||
Collections.swap(getList(), selectedRow, selectedRow - 1); |
||||
fireTableDataChanged(); |
||||
table.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); |
||||
} |
||||
|
||||
@Override |
||||
public void checkEnabled() { |
||||
} |
||||
} |
||||
|
||||
protected class MoveDownAction extends UITableEditAction { |
||||
|
||||
public MoveDownAction() { |
||||
this.setName(I18nDesignKit.i18nText("Fine-Design_Basic_Utils_Move_Down")); |
||||
this.setSmallIcon(IOKit.readIcon("/com/fr/design/images/control/down.png")); |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
int selectedRow = table.getSelectedRow(); |
||||
stopCellEditing(); |
||||
if (getList().size() < 2 || selectedRow == getRowCount() - 1) { |
||||
return; |
||||
} |
||||
Collections.swap(getList(), selectedRow, selectedRow + 1); |
||||
fireTableDataChanged(); |
||||
table.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); |
||||
} |
||||
|
||||
@Override |
||||
public void checkEnabled() { |
||||
} |
||||
} |
||||
|
||||
public class ParameterEditor extends AbstractCellEditor implements TableCellEditor { |
||||
|
||||
private UITextField textField; |
||||
|
||||
public ParameterEditor() { |
||||
textField = new UITextField(); |
||||
this.addCellEditorListener(new CellEditorListener() { |
||||
|
||||
@Override |
||||
public void editingCanceled(ChangeEvent e) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void editingStopped(ChangeEvent e) { |
||||
if (table.getSelectedRow() == -1) { |
||||
return; |
||||
} |
||||
ParameterProvider para = getList().get(table.getSelectedRow()); |
||||
String value = StringKit.trimToNull(textField.getText()); |
||||
para.setName(value); |
||||
fireTableDataChanged(); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
@Override |
||||
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { |
||||
textField.setText((String) value); |
||||
return textField; |
||||
} |
||||
|
||||
@Override |
||||
public Object getCellEditorValue() { |
||||
return textField.getText(); |
||||
} |
||||
} |
||||
|
||||
private class ParameterValueEditor extends AbstractCellEditor implements TableCellEditor { |
||||
private static final long serialVersionUID = 1L; |
||||
private ValueEditorPane editor; |
||||
|
||||
public ParameterValueEditor(int paraUseType) { |
||||
this(ValueEditors.createValueEditorPaneWithUseType(paraUseType)); |
||||
} |
||||
|
||||
public ParameterValueEditor(ValueEditorPane valueEditorPane) { |
||||
|
||||
editor = valueEditorPane; |
||||
|
||||
this.addCellEditorListener(new CellEditorListener() { |
||||
|
||||
@Override |
||||
public void editingCanceled(ChangeEvent e) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void editingStopped(ChangeEvent e) { |
||||
if (table.getSelectedRow() == -1) { |
||||
return; |
||||
} |
||||
ParameterProvider para = getList().get(table.getSelectedRow()); |
||||
para.setValue(getCellEditorValue()); |
||||
fireTableDataChanged(); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
@Override |
||||
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { |
||||
editor.populate(value == null ? StringKit.EMPTY : value); |
||||
return editor; |
||||
} |
||||
|
||||
@Override |
||||
public Object getCellEditorValue() { |
||||
return editor.update(); |
||||
} |
||||
|
||||
} |
||||
|
||||
private class ParameterValueRenderer extends DefaultTableCellRenderer { |
||||
private static final long serialVersionUID = 1L; |
||||
private ValueEditorPane editor; |
||||
private UILabel disableLabel; |
||||
|
||||
public ParameterValueRenderer(int paraUseType) { |
||||
this(ValueEditors.createValueEditorPaneWithUseType(paraUseType)); |
||||
} |
||||
|
||||
public ParameterValueRenderer(ValueEditorPane valueEditorPane) { |
||||
disableLabel = new UILabel(I18nDesignKit.i18nText("Fine-Design_Basic_Set_Paramete_Name")); |
||||
disableLabel.setForeground(Color.pink); |
||||
disableLabel.setHorizontalAlignment(SwingConstants.CENTER); |
||||
|
||||
editor = valueEditorPane; |
||||
} |
||||
|
||||
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { |
||||
if (table.isCellEditable(row, column)) { |
||||
if (value == null) { |
||||
editor.populate(StringKit.EMPTY); |
||||
} else { |
||||
editor.populate(value); |
||||
} |
||||
return editor; |
||||
} else { |
||||
return disableLabel; |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
@ -0,0 +1,61 @@
|
||||
package com.fanruan.api.design.ui.component.table.model; |
||||
|
||||
import com.fanruan.api.design.ui.component.table.action.UITableEditAction; |
||||
import com.fanruan.api.design.util.I18nDesignKit; |
||||
import com.fanruan.api.util.IOKit; |
||||
import com.fr.design.mainframe.DesignerContext; |
||||
|
||||
import javax.swing.*; |
||||
import java.awt.event.ActionEvent; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-08-28 |
||||
*/ |
||||
public abstract class UITableModelAdapter<T> extends com.fr.design.gui.itableeditorpane.UITableModelAdapter<T> { |
||||
|
||||
protected UITableModelAdapter(String[] strings) { |
||||
super(strings); |
||||
} |
||||
|
||||
public abstract UITableEditAction[] createAction(); |
||||
|
||||
|
||||
protected abstract class AddTableRowAction extends UITableEditAction { |
||||
|
||||
public AddTableRowAction() { |
||||
this.setName(I18nDesignKit.i18nText("Fine-Design_Report_Insert")); |
||||
this.setSmallIcon(IOKit.readIcon("/com/fr/base/images/cell/control/add.png")); |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
stopCellEditing(); |
||||
} |
||||
|
||||
public void checkEnabled() { |
||||
|
||||
} |
||||
} |
||||
|
||||
protected abstract class EditAction extends UITableEditAction { |
||||
|
||||
public EditAction() { |
||||
this.setName(I18nDesignKit.i18nText("Fine-Design_Report_Edit")); |
||||
this.setSmallIcon(IOKit.readIcon("/com/fr/design/images/control/edit.png")); |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent e) { |
||||
final int selectedRow = table.getSelectedRow(); |
||||
if (selectedRow > table.getRowCount() - 1 || selectedRow < 0) { |
||||
JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), I18nDesignKit.i18nText("Fine-Design_Basic_No-Alternatives")); |
||||
return; |
||||
} |
||||
stopCellEditing(); |
||||
|
||||
} |
||||
|
||||
} |
||||
} |
@ -0,0 +1,482 @@
|
||||
package com.fanruan.api.design.ui.editor; |
||||
|
||||
import com.fanruan.api.design.ui.component.table.model.ParameterTableModel; |
||||
import com.fanruan.api.design.util.I18nDesignKit; |
||||
import com.fanruan.api.util.StringKit; |
||||
import com.fr.base.BaseFormula; |
||||
import com.fr.design.editor.editor.BooleanEditor; |
||||
import com.fr.design.editor.editor.ColumnRowEditor; |
||||
import com.fr.design.editor.editor.ColumnRowGroupEditor; |
||||
import com.fr.design.editor.editor.ColumnSelectedEditor; |
||||
import com.fr.design.editor.editor.ConstantsEditor; |
||||
import com.fr.design.editor.editor.CursorEditor; |
||||
import com.fr.design.editor.editor.DateEditor; |
||||
import com.fr.design.editor.editor.DoubleEditor; |
||||
import com.fr.design.editor.editor.Editor; |
||||
import com.fr.design.editor.editor.FormulaEditor; |
||||
import com.fr.design.editor.editor.IntegerEditor; |
||||
import com.fr.design.editor.editor.NoneEditor; |
||||
import com.fr.design.editor.editor.ParameterEditor; |
||||
import com.fr.design.editor.editor.SpinnerIntegerEditor; |
||||
import com.fr.design.editor.editor.TextEditor; |
||||
import com.fr.design.editor.editor.WidgetNameEditor; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.Iterator; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-08-28 |
||||
* 工厂类,创建多种组合编辑器 |
||||
*/ |
||||
public class ValueEditors { |
||||
|
||||
/** |
||||
* 创建带编辑器的ValueEditorPane |
||||
* |
||||
* @param editors 自定义的编辑器 |
||||
* @return 返回pane |
||||
*/ |
||||
public static ValueEditorPane createValueEditorPane(Editor<?>[] editors) { |
||||
return createValueEditorPane(editors, StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建编辑器 名称 弹出的ValueEditorPane |
||||
* |
||||
* @param editors 编辑器 |
||||
* @param popupName 弹出的名字 |
||||
* @param textEditorValue 值 |
||||
* @return 返回pane |
||||
*/ |
||||
public static ValueEditorPane createValueEditorPane(Editor<?>[] editors, String popupName, String textEditorValue) { |
||||
return new ValueEditorPane(editors, popupName, textEditorValue); |
||||
} |
||||
|
||||
/** |
||||
* 创建编辑器 名称 弹出的ValueEditorPane |
||||
* |
||||
* @param editors 编辑器 |
||||
* @param popupName 弹出的名字 |
||||
* @param textEditorValue 值 |
||||
* @param editor_center_width 编辑器主体的宽度 |
||||
* @return 返回pane |
||||
*/ |
||||
public static ValueEditorPane createValueEditorPane(Editor<?>[] editors, String popupName, String textEditorValue, int editor_center_width) { |
||||
return new ValueEditorPane(editors, popupName, textEditorValue, editor_center_width); |
||||
} |
||||
|
||||
/** |
||||
* 创建基本的值编辑器面板 |
||||
* |
||||
* @return 返回值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createBasicValueEditorPane() { |
||||
return createValueEditorPane(basicEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建公式编辑器面板 |
||||
* |
||||
* @return 返回公式编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createFormulaValueEditorPane() { |
||||
return createValueEditorPane(new Editor[]{new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula"))}, |
||||
StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建基本的值编辑器面板 |
||||
* |
||||
* @param editor_center_width 指定值编辑器的主体宽度 |
||||
* @return 返回值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createBasicValueEditorPane(int editor_center_width) { |
||||
return createValueEditorPane(basicEditors(), StringKit.EMPTY, StringKit.EMPTY, editor_center_width); |
||||
} |
||||
|
||||
/** |
||||
* Process用的editorPane |
||||
* |
||||
* @return 值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createFormEditorPane() { |
||||
return createValueEditorPane(formEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* StoreProced用的EditorPane |
||||
* |
||||
* @return 值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createStoreProcedValueEditorPane() { |
||||
return createValueEditorPane(StoreProcedureEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 扩展的ValueEditorPane |
||||
* |
||||
* @return 值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createExtendedValueEditorPane() { |
||||
return createValueEditorPane(extendedEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* URL使用的ValueEditorPane |
||||
* |
||||
* @param popupName 弹出的名字 |
||||
* @param textEditorValue 编辑器值 |
||||
* @return 值编辑器返回 |
||||
*/ |
||||
public static ValueEditorPane createURLValueEditorPane(String popupName, String textEditorValue) { |
||||
return createValueEditorPane(URLEditors(popupName, textEditorValue), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建日期的ValueEditorPane |
||||
* |
||||
* @param popupName 名字 |
||||
* @param textEditorValue 值 |
||||
* @return 值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createDateValueEditorPane(String popupName, String textEditorValue) { |
||||
return createValueEditorPane(dateEditors(popupName, textEditorValue), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 带有所有编辑器的ValueEditorPane |
||||
* |
||||
* @return 值编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createAllValueEditorPane() { |
||||
return createValueEditorPane(allEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建不带公式面板的pane |
||||
* |
||||
* @return 编辑器面板 |
||||
*/ |
||||
public static ValueEditorPane createBasicEditorWithoutFormulaPane() { |
||||
return createValueEditorPane(basicEditorsWithoutFormula(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建NoCRNoColumn |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static ValueEditorPane createNoCRNoColumnValueEditorPane() { |
||||
return createValueEditorPane(noCRnoColumnEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建数值编辑器 |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static ValueEditorPane createNumberValueEditorPane() { |
||||
return createValueEditorPane(numberEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 创建日期编辑器 |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static ValueEditorPane createDateValueEditorPane() { |
||||
return createValueEditorPane(dateEditors(), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 根据参数paraUseType 创建编辑器类型. |
||||
* |
||||
* @param paraUseType 参数类型 |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static ValueEditorPane createValueEditorPaneWithUseType(int paraUseType) { |
||||
return createValueEditorPaneWithUseType(paraUseType, null); |
||||
} |
||||
|
||||
public static ValueEditorPane createValueEditorPaneWithUseType(int paraUseType, HashMap hyperLinkEditorMap) { |
||||
if (paraUseType == ParameterTableModel.NO_CHART_USE) { |
||||
return createBasicValueEditorPane(); |
||||
} else if (paraUseType == ParameterTableModel.FORM_NORMAL_USE) { |
||||
return createFormEditorPane(); |
||||
} else { |
||||
return createChartHotValueEditorPane(hyperLinkEditorMap); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 图表用的参数编辑器的ValueEditorPane |
||||
* |
||||
* @param hyperLinkEditorMap 超链下拉参数类型 |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static ValueEditorPane createChartHotValueEditorPane(HashMap hyperLinkEditorMap) { |
||||
return createValueEditorPane(chartHotEditors(hyperLinkEditorMap), StringKit.EMPTY, StringKit.EMPTY); |
||||
} |
||||
|
||||
/** |
||||
* 基础的一些ValueEditorPane所用到的Editors |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] basicEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new SpinnerIntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 表单的一些编辑器. |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] formEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor, |
||||
new WidgetNameEditor(I18nDesignKit.i18nText("Fine-Design_Report_Widget")) |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 扩展单元格的一些编辑器 |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] extendedEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor, |
||||
new ParameterEditor(), |
||||
new ColumnRowEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Cell")) |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 带单元格组的编辑器 |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] extendedCellGroupEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor, |
||||
new ParameterEditor(), |
||||
new ColumnRowEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Cell")), |
||||
new ColumnRowGroupEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Cell_Group")) |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 只有单元格和单元格组的编辑器 |
||||
* |
||||
* @return 编辑器b |
||||
*/ |
||||
public static Editor<?>[] cellGroupEditor() { |
||||
return new Editor[]{ |
||||
new ColumnRowEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Cell")), |
||||
new ColumnRowGroupEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Cell_Group")) |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* URL的一些编辑器. |
||||
* |
||||
* @param popupName 名字 |
||||
* @param textEditorValue 值 |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] URLEditors(String popupName, String textEditorValue) { |
||||
return new Editor[]{ |
||||
new NoneEditor(textEditorValue, StringKit.isEmpty(popupName) ? I18nDesignKit.i18nText("Fine-Design_Basic_None") : popupName), |
||||
new TextEditor() |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 日期类型的一些编辑器 |
||||
* |
||||
* @param popupName 名字 |
||||
* @param textEditorValue 值 |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] dateEditors(String popupName, String textEditorValue) { |
||||
return new Editor[]{ |
||||
new NoneEditor(textEditorValue, StringKit.isEmpty(popupName) ? I18nDesignKit.i18nText("Fine-Design_Basic_None") : popupName), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")) |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 所有类型的编辑器 |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor<?>[] allEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor, |
||||
new ParameterEditor(), |
||||
new ColumnRowEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Cell")), |
||||
new ColumnSelectedEditor(), |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 不带公式编辑器 |
||||
* |
||||
* @return 编辑器不带公式 |
||||
*/ |
||||
public static Editor<?>[] basicEditorsWithoutFormula() { |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* noCRnoColumn编辑器 |
||||
* |
||||
* @return 编辑器 |
||||
*/ |
||||
public static Editor<?>[] noCRnoColumnEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor, |
||||
new ParameterEditor(), |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 数值编辑器 |
||||
* |
||||
* @return 编辑器 |
||||
*/ |
||||
public static Editor<?>[] numberEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
formulaEditor, |
||||
new ParameterEditor(), |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 日期编辑器 |
||||
* |
||||
* @return 编辑器 |
||||
*/ |
||||
public static Editor<?>[] dateEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
return new Editor[]{ |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
formulaEditor, |
||||
new ParameterEditor(), |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 存储的一些编辑器 |
||||
* |
||||
* @return 存储过程的编辑器 |
||||
*/ |
||||
public static Editor<?>[] StoreProcedureEditors() { |
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
formulaEditor.setEnabled(true); |
||||
return new Editor[]{ |
||||
new CursorEditor(), |
||||
new TextEditor(), |
||||
new IntegerEditor(), |
||||
new DoubleEditor(), |
||||
new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date")), |
||||
new BooleanEditor(), |
||||
formulaEditor |
||||
}; |
||||
} |
||||
|
||||
/** |
||||
* 图表热点的一些编辑器 |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
public static Editor[] chartHotEditors(HashMap hyperLinkEditorMap) { |
||||
List<Editor> list = createEditors4Chart(hyperLinkEditorMap); |
||||
|
||||
list.add(new TextEditor()); |
||||
list.add(new IntegerEditor()); |
||||
list.add(new DoubleEditor()); |
||||
list.add(new DateEditor(true, I18nDesignKit.i18nText("Fine-Design_Basic_Date"))); |
||||
list.add(new BooleanEditor()); |
||||
|
||||
FormulaEditor formulaEditor = new FormulaEditor(I18nDesignKit.i18nText("Fine-Design_Basic_Parameter_Formula")); |
||||
formulaEditor.setEnabled(true); |
||||
list.add(formulaEditor); |
||||
|
||||
return list.toArray(new Editor[0]); |
||||
} |
||||
|
||||
/** |
||||
* 为图表创建编辑器. |
||||
* |
||||
* @return 值编辑器 |
||||
*/ |
||||
private static List<Editor> createEditors4Chart(HashMap hyperLinkEditorMap) { |
||||
List<Editor> lists = new ArrayList<>(); |
||||
if (hyperLinkEditorMap == null) { |
||||
return lists; |
||||
} |
||||
Iterator<Map.Entry<String, BaseFormula>> entries = hyperLinkEditorMap.entrySet().iterator(); |
||||
while (entries.hasNext()) { |
||||
Map.Entry<String, BaseFormula> entry = entries.next(); |
||||
ConstantsEditor editor = new ConstantsEditor(entry.getKey(), entry.getValue()); |
||||
editor.setEnabled(false); |
||||
lists.add(editor); |
||||
} |
||||
return lists; |
||||
} |
||||
} |
Loading…
Reference in new issue