|
|
|
package com.fanruan.api.design.work.component;
|
|
|
|
|
|
|
|
import com.fanruan.api.cal.ParameterKit;
|
|
|
|
import com.fanruan.api.design.DesignKit;
|
|
|
|
import com.fanruan.api.design.ui.component.UIComboBox;
|
|
|
|
import com.fanruan.api.util.AssistKit;
|
|
|
|
import com.fr.design.DesignModelAdapter;
|
|
|
|
import com.fr.stable.ParameterProvider;
|
|
|
|
|
|
|
|
import javax.swing.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author richie
|
|
|
|
* @version 10.0
|
|
|
|
* Created by richie on 2019/11/1
|
|
|
|
* 参数选择下拉框
|
|
|
|
*/
|
|
|
|
public class ParameterComboBox extends UIComboBox<ParameterProvider> {
|
|
|
|
|
|
|
|
public ParameterComboBox() {
|
|
|
|
this.initComponents();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void initComponents() {
|
|
|
|
this.setRenderer(new DefaultListCellRenderer() {
|
|
|
|
public Component getListCellRendererComponent(JList list,
|
|
|
|
Object value, int index, boolean isSelected, boolean cellHasFocus) {
|
|
|
|
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
|
|
|
|
|
|
|
if (value instanceof ParameterProvider) {
|
|
|
|
this.setText(value.toString());
|
|
|
|
}
|
|
|
|
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
updateParaItems();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void updateParaItems() {
|
|
|
|
|
|
|
|
DesignModelAdapter<?, ?> designModel = DesignKit.getCurrentModelAdapter();
|
|
|
|
|
|
|
|
this.removeAllItems();
|
|
|
|
if (designModel != null) {
|
|
|
|
ParameterProvider[] paras = designModel.getParameters();
|
|
|
|
List<String> paraNameList = new ArrayList<String>();
|
|
|
|
for (int i = 0; i < paras.length; i++) {
|
|
|
|
String paraName = paras[i].getName();
|
|
|
|
if (!paraNameList.contains(paraName)) {
|
|
|
|
paraNameList.add(paraName);
|
|
|
|
this.addItem(paras[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ParameterProvider getSelectedItem() {
|
|
|
|
if (super.getSelectedItem() instanceof ParameterProvider) {
|
|
|
|
return (ParameterProvider) super.getSelectedItem();
|
|
|
|
} else if (super.getSelectedItem() instanceof String && ((String) super.getSelectedItem()).startsWith("$")) {
|
|
|
|
return ParameterKit.newParameter(((String) super.getSelectedItem()).substring(1));
|
|
|
|
}
|
|
|
|
return ParameterKit.newParameter();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSelectedParameter(ParameterProvider parameter) {
|
|
|
|
if (parameter == null) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
for (int i = 0; i < this.getItemCount(); i++) {
|
|
|
|
if (AssistKit.equals(((ParameterProvider) this.getItemAt(i)).getName(), parameter.getName())) {
|
|
|
|
this.setSelectedIndex(i);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this.addItem(parameter);
|
|
|
|
this.setSelectedItem(parameter);
|
|
|
|
}
|
|
|
|
}
|