richie
5 years ago
3 changed files with 283 additions and 0 deletions
@ -0,0 +1,86 @@ |
|||||||
|
package com.fanruan.api.design.ui.editor; |
||||||
|
|
||||||
|
import com.fanruan.api.util.StringKit; |
||||||
|
import com.fr.design.gui.columnrow.ColumnRowPane; |
||||||
|
import com.fr.stable.ColumnRow; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019/11/4 |
||||||
|
* 用于编辑和展示单元格坐标的编辑器 |
||||||
|
*/ |
||||||
|
public class TypeColumnRowEditor extends BaseEditor<ColumnRow> { |
||||||
|
|
||||||
|
private ColumnRowPane crPane; |
||||||
|
|
||||||
|
public TypeColumnRowEditor() { |
||||||
|
this(StringKit.EMPTY); |
||||||
|
} |
||||||
|
|
||||||
|
public TypeColumnRowEditor(String name) { |
||||||
|
this(null, name); |
||||||
|
} |
||||||
|
|
||||||
|
public TypeColumnRowEditor(ColumnRow value) { |
||||||
|
this(value, StringKit.EMPTY); |
||||||
|
} |
||||||
|
|
||||||
|
public TypeColumnRowEditor(ColumnRow value, String name) { |
||||||
|
this.setLayout(new BorderLayout()); |
||||||
|
crPane = new ColumnRowPane(); |
||||||
|
this.add(crPane, BorderLayout.CENTER); |
||||||
|
this.setValue(value); |
||||||
|
this.setName(name); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JComponent getSwingComponent() { |
||||||
|
return crPane; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ColumnRow getValue() { |
||||||
|
return this.crPane.update(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setValue(ColumnRow value) { |
||||||
|
if (value == null) { |
||||||
|
value = ColumnRow.valueOf(0, 0); |
||||||
|
} |
||||||
|
|
||||||
|
this.crPane.populate(value); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setEnabled(boolean enabled) { |
||||||
|
super.setEnabled(enabled); |
||||||
|
|
||||||
|
this.crPane.setEnabled(enabled); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void requestFocus() { |
||||||
|
this.crPane.requestFocus(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getIconName() { |
||||||
|
return "cell"; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean accept(Object object) { |
||||||
|
return object instanceof ColumnRow; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void clearData() { |
||||||
|
super.clearData(); |
||||||
|
this.setValue(null); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,86 @@ |
|||||||
|
package com.fanruan.api.design.ui.editor; |
||||||
|
|
||||||
|
import com.fanruan.api.design.ui.component.UITextField; |
||||||
|
import com.fanruan.api.util.StringKit; |
||||||
|
import com.fr.stable.ColumnRowGroup; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019/11/4 |
||||||
|
* 用于编辑和展示行列集合的编辑器 |
||||||
|
*/ |
||||||
|
public class TypeColumnRowGroupEditor extends BaseEditor<ColumnRowGroup> { |
||||||
|
|
||||||
|
private UITextField crEditor; |
||||||
|
|
||||||
|
public TypeColumnRowGroupEditor() { |
||||||
|
this(StringKit.EMPTY); |
||||||
|
} |
||||||
|
|
||||||
|
public TypeColumnRowGroupEditor(String name) { |
||||||
|
this(null, name); |
||||||
|
} |
||||||
|
|
||||||
|
public TypeColumnRowGroupEditor(ColumnRowGroup value) { |
||||||
|
this(value, StringKit.EMPTY); |
||||||
|
} |
||||||
|
|
||||||
|
public TypeColumnRowGroupEditor(ColumnRowGroup value, String name) { |
||||||
|
this.setLayout(new BorderLayout()); |
||||||
|
crEditor = new UITextField(); |
||||||
|
this.add(crEditor, BorderLayout.CENTER); |
||||||
|
this.setValue(value); |
||||||
|
this.setName(name); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JComponent getSwingComponent() { |
||||||
|
return crEditor; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 是否接收/支持这个对象 |
||||||
|
* |
||||||
|
* @param object 检测对象 |
||||||
|
* @return 是否支持 |
||||||
|
*/ |
||||||
|
public boolean accept(Object object) { |
||||||
|
return object instanceof ColumnRowGroup; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ColumnRowGroup getValue() { |
||||||
|
return new ColumnRowGroup(this.crEditor.getText()); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setValue(ColumnRowGroup value) { |
||||||
|
if (value == null) { |
||||||
|
this.crEditor.setText(StringKit.EMPTY); |
||||||
|
} else { |
||||||
|
this.crEditor.setText(value.toString()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setEnabled(boolean enabled) { |
||||||
|
super.setEnabled(enabled); |
||||||
|
|
||||||
|
this.crEditor.setEnabled(enabled); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取焦点 |
||||||
|
*/ |
||||||
|
public void requestFocus() { |
||||||
|
this.crEditor.requestFocus(); |
||||||
|
} |
||||||
|
|
||||||
|
public String getIconName() { |
||||||
|
return "cell_group"; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,111 @@ |
|||||||
|
package com.fanruan.api.design.ui.editor; |
||||||
|
|
||||||
|
import com.fanruan.api.design.DesignKit; |
||||||
|
import com.fanruan.api.design.ui.component.UIComboBox; |
||||||
|
import com.fanruan.api.util.StringKit; |
||||||
|
import com.fr.data.SimpleDSColumn; |
||||||
|
import com.fr.design.data.DesignTableDataManager; |
||||||
|
import com.fr.design.data.datapane.TableDataComboBox; |
||||||
|
import com.fr.design.data.tabledata.wrapper.TableDataWrapper; |
||||||
|
import com.fr.general.data.TableDataColumn; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
import java.awt.event.ItemEvent; |
||||||
|
import java.awt.event.ItemListener; |
||||||
|
import java.util.List; |
||||||
|
import java.util.regex.Pattern; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019/11/4 |
||||||
|
* 用于编辑和展示数据集列的编辑器 |
||||||
|
*/ |
||||||
|
public class TypeColumnTableDataEditor extends BaseEditor<SimpleDSColumn> { |
||||||
|
private TableDataComboBox tableDataComboBox; |
||||||
|
private UIComboBox columnNameComboBox; |
||||||
|
private String[] columnNames; |
||||||
|
|
||||||
|
public TypeColumnTableDataEditor() { |
||||||
|
this.setName(DesignKit.i18nText("Fine-Design_Basic_DS_Column")); |
||||||
|
this.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); |
||||||
|
tableDataComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource()); |
||||||
|
columnNames = new String[0]; |
||||||
|
tableDataComboBox.addItemListener(new ItemListener() { |
||||||
|
@Override |
||||||
|
public void itemStateChanged(ItemEvent e) { |
||||||
|
if (tableDataComboBox.getSelectedItem() == null) { |
||||||
|
return; |
||||||
|
} |
||||||
|
List<String> nameList = tableDataComboBox.getSelectedItem().calculateColumnNameList(); |
||||||
|
columnNames = new String[nameList.size()]; |
||||||
|
columnNames = tableDataComboBox.getSelectedItem().calculateColumnNameList().toArray(columnNames); |
||||||
|
columnNameComboBox.removeAllItems(); |
||||||
|
for (int i = 0; i < columnNames.length; i++) { |
||||||
|
columnNameComboBox.addItem(columnNames[i]); |
||||||
|
} |
||||||
|
columnNameComboBox.validate(); |
||||||
|
} |
||||||
|
}); |
||||||
|
columnNameComboBox = new UIComboBox(); |
||||||
|
tableDataComboBox.setPreferredSize(new Dimension(82, 20)); |
||||||
|
this.add(tableDataComboBox); |
||||||
|
columnNameComboBox.setPreferredSize(new Dimension(82, 20)); |
||||||
|
this.add(columnNameComboBox); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public JComponent getSwingComponent() { |
||||||
|
return columnNameComboBox; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public SimpleDSColumn getValue() { |
||||||
|
if (this.tableDataComboBox.getSelectedItem() == null || this.columnNameComboBox.getSelectedItem() == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
SimpleDSColumn dsColumn = new SimpleDSColumn(); |
||||||
|
TableDataWrapper item = this.tableDataComboBox.getSelectedItem(); |
||||||
|
dsColumn.setDsName(item.getTableDataName()); |
||||||
|
TableDataColumn column; |
||||||
|
String columnExp = (String) this.columnNameComboBox.getSelectedItem(); |
||||||
|
if (StringKit.isNotBlank(columnExp) && (columnExp.length() > 0 && columnExp.charAt(0) == '#') && !columnExp.endsWith("#")) { |
||||||
|
String number = columnExp.substring(1); |
||||||
|
Pattern pattern = Pattern.compile("[^\\d]"); |
||||||
|
if (pattern.matcher(number).find()) { |
||||||
|
column = TableDataColumn.createColumn(columnExp); |
||||||
|
} else { |
||||||
|
int serialNumber = Integer.parseInt(columnExp.substring(1)); |
||||||
|
column = TableDataColumn.createColumn(serialNumber); |
||||||
|
} |
||||||
|
} else { |
||||||
|
column = TableDataColumn.createColumn(columnExp); |
||||||
|
} |
||||||
|
dsColumn.setColumn(column); |
||||||
|
return dsColumn; |
||||||
|
} |
||||||
|
|
||||||
|
public String getIconName() { |
||||||
|
return "ds_column"; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean accept(Object object) { |
||||||
|
return object instanceof SimpleDSColumn; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setValue(SimpleDSColumn value) { |
||||||
|
if (value != null) { |
||||||
|
tableDataComboBox.setSelectedTableDataByName(value.getDsName()); |
||||||
|
columnNameComboBox.setSelectedItem(TableDataColumn.getColumnName(value.getColumn())); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void clearData() { |
||||||
|
tableDataComboBox.setSelectedItem(null); |
||||||
|
columnNameComboBox.setSelectedItem(null); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue