public class PageUtils {
public static String getResultByName(String text, Object object) {
int index = 0;
int indexend = 0;
while ((index = text.indexOf("{", indexend)) >= 0 && text.length() > 3) {
indexend = text.indexOf("}", index + 1);
if (indexend > index) {
String replace = text.substring(index, indexend + 1);
String classmtd = replace.substring(1, replace.length() - 1);
int classindex = classmtd.indexOf(".");
if (classindex > 0) {
String classname = classmtd.substring(0, classindex);
String method = classmtd.substring(classindex + 1);
try {
Field[] field = object.getClass().getDeclaredFields();
for (Field f : field) {
if (f.getName().equals(classname)) {
if (!f.isAccessible()) {
f.setAccessible(true);
}
Object obj = f.get(object);
Method[] methods = obj.getClass().getMethods();
for (Method m : methods) {
if (m.getName().equals(method)) {
Object instead = m.invoke(obj);
if(instead==null){
instead = "";
}
text = instead.toString();
indexend = 0;
break;
}
}
break;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
return text;
}
public static void setSpinnerLayout(List<AutoSpinnerItem> list, JPanel panel,
Object object) {
panel.setLayout(new java.awt.BorderLayout());
int index = 2;
if (list.size() % 2 == 0) {
index = list.size() / 2;
} else {
index = list.size() / 2 + 1;
}
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
// 左边面板
GroupLayout layout = new GroupLayout(leftPanel);
leftPanel.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
GroupLayout.ParallelGroup p1 = layout
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p2 = layout
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p3 = layout
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p4 = layout
.createParallelGroup(Alignment.LEADING);
// 第一列
for (int i = 0; i < index; i++) {
AALabel caption1 = new AALabel();
double minValue1 = VolUtil.parseDouble(PageUtils.getResultByName(list.get(i).getMinValue(),object));
double maxValue1 = VolUtil.parseDouble(PageUtils.getResultByName(list.get(i).getMaxValue(),object));
double step1 = VolUtil.parseDouble(list.get(i).getStep());
double nvalue1 = VolUtil.parseDouble(PageUtils.getResultByName(list.get(i).getValue(),object));
AALabel unit1 = new AALabel();
final AAButton button1 = new AAButton();
button1.setEnabled(list.get(i).isEnable());
final JSpinner value1 = ComponentFactory.createNumberSpinner(minValue1,maxValue1, step1,nvalue1);
value1.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
button1.setEnabled(true);
}
});
caption1.setText(list.get(i).getCaption());
unit1.setText(list.get(i).getUnit());
button1.setText("message.apply");
button1.setName(list.get(i).getButtonName());
button1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(!SolarPowerTray.isLogin){
new LoginJDialog(new Frame(),true);
return;
}
AbstractProcessor currentProcessor = GlobalProcessors.getCurrentProcessor();
if(currentProcessor!=null){
button1.setEnabled(false);
String name = button1.getName();
boolean result = false;
String value = value1.getValue().toString();
if(name.equals("GridOutputLowV")){
result = currentProcessor.executeControl("setGOLV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridOutputHighV")){
result = currentProcessor.executeControl("setGOHV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridOutputLowF")){
result = currentProcessor.executeControl("setGOLF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridOutputHighF")){
result = currentProcessor.executeControl("setGOHF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("MaxOutputPower")){
result = currentProcessor.executeControl("setOPMP", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("MPPPVN")){
result = currentProcessor.executeControl("setPVN", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("WaitingTime")){
result = currentProcessor.executeControl("setGridWaittime", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("LowestLimtInputV")){
result = currentProcessor.executeControl("setPVIPLV", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("UpperLimitInputV")){
result = currentProcessor.executeControl("setPVIPHV", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("LowVoltage")){
result = currentProcessor.executeControl("setMPPTLV", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("HighVoltage")){
result = currentProcessor.executeControl("setMPPTHV", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("GridInputAverageHighV")){
result = currentProcessor.executeControl("setGILTHV", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("GridInputHighV")){
result = currentProcessor.executeControl("setPHV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridInputLowV")){
result = currentProcessor.executeControl("setPLV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridInputHighF")){
result = currentProcessor.executeControl("setPGF", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("GridInputLowF")){
result = currentProcessor.executeControl("setPSF", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("ACInputLowV")){
result = currentProcessor.executeControl("setGOLV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("ACInputHighV")){
result = currentProcessor.executeControl("setGOHV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("ACInputLowF")){
result = currentProcessor.executeControl("setGOLF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("ACInputHighF")){
result = currentProcessor.executeControl("setGOHF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("MaxChargingCurrent")){
result = currentProcessor.executeControl("setMaxChargingCurrent", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("MaxChargingVoltage")){
result = currentProcessor.executeControl("setMaxChargingVoltage", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}
if(result){
DisplayMessage.showInfoDialog("message.setTrue");
}else{
DisplayMessage.showErrorDialog("message.setFalse");
}
button1.setEnabled(true);
}
}
});
p1.addComponent(caption1);
p2.addComponent(value1,60,60,60);
p3.addComponent(unit1);
p4.addComponent(button1);
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(caption1).addComponent(value1).addComponent(
unit1).addComponent(button1));
vGroup.addGap(15, 15, 15);
}
//lcd time start
AALabel caption = new AALabel();
caption.setText("message.setLCD[:]");
AALabel unit = new AALabel();
unit.setText("message.seconds");
final AAButton button = new AAButton();
final AAComboBox comboBox = new AAComboBox();
comboBox.setModel(new String[]{"None","30","60","300","600"});
comboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setEnabled(true);
}
});
AbstractProcessor currentProcessor = GlobalProcessors.getCurrentProcessor();
if(currentProcessor!=null){
ConfigData configdata = (ConfigData) currentProcessor.getBeanBag().getBean(
Constants.BEAN_CONFIGDATA);
String selectIndex = configdata.getLcdSleepTime();
if(selectIndex.equals("00")){
comboBox.setSelectedIndex(0);
}else if(selectIndex.equals("01")){
comboBox.setSelectedIndex(1);
}else if(selectIndex.equals("02")){
comboBox.setSelectedIndex(2);
}else if(selectIndex.equals("10")){
comboBox.setSelectedIndex(3);
}else if(selectIndex.equals("20")){
comboBox.setSelectedIndex(4);
}
}
button.setText("message.apply");
button.setEnabled(false);
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(!SolarPowerTray.isLogin){
new LoginJDialog(new Frame(),true);
return;
}
AbstractProcessor currentProcessor = GlobalProcessors.getCurrentProcessor();
if(currentProcessor!=null){
button.setEnabled(false);
int index = comboBox.getSelectedIndex();
String values = "02";
if(index==0){
values = "00";
}else if(index==1){
values = "01";
}else if(index==2){
values = "02";
}else if(index==3){
values = "10";
}else if(index==4){
values = "20";
}
boolean result = currentProcessor.executeControl("setLCD", new String[]{values});
if(result){
DisplayMessage.showInfoDialog("message.setTrue");
}else{
DisplayMessage.showErrorDialog("message.setFalse");
}
button.setEnabled(true);
}
}
});
p1.addComponent(caption);
p2.addComponent(comboBox,60,60,60);
p3.addComponent(unit);
p4.addComponent(button);
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(caption).addComponent(comboBox).addComponent(
unit).addComponent(button));
vGroup.addGap(15, 15, 15);
//end
hGroup.addGap(40, 40, 40);
hGroup.addGroup(p1);
hGroup.addGroup(p2);
hGroup.addGroup(p3);
hGroup.addGroup(p4);
hGroup.addGap(20, 20, 20);
layout.setHorizontalGroup(hGroup);
layout.setVerticalGroup(vGroup);
// 右边面板
GroupLayout layout2 = new GroupLayout(rightPanel);
rightPanel.setLayout(layout2);
layout2.setAutoCreateGaps(true);
layout2.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup2 = layout2.createSequentialGroup();
GroupLayout.SequentialGroup vGroup2 = layout2.createSequentialGroup();
GroupLayout.ParallelGroup p5 = layout2
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p6 = layout2
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p7 = layout2
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p8 = layout2
.createParallelGroup(Alignment.LEADING);
// 第二列
for (int j = index; j < list.size(); j++) {
AALabel caption2 = new AALabel();
double minValue2 = VolUtil.parseDouble(PageUtils.getResultByName(list.get(j).getMinValue(),object));
double maxValue2 = VolUtil.parseDouble(PageUtils.getResultByName(list.get(j).getMaxValue(),object));
double step2 = VolUtil.parseDouble(list.get(j).getStep());
double nvalue2 = VolUtil.parseDouble(PageUtils.getResultByName(list.get(j).getValue(),object));
AALabel unit2 = new AALabel();
final AAButton button2 = new AAButton();
button2.setEnabled(list.get(j).isEnable());
final JSpinner value2 = ComponentFactory.createNumberSpinner(minValue2,maxValue2, step2,nvalue2);
value2.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
button2.setEnabled(true);
}
});
caption2.setText(list.get(j).getCaption());
unit2.setText(list.get(j).getUnit());
button2.setText("message.apply");
button2.setName(list.get(j).getButtonName());
button2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(!SolarPowerTray.isLogin){
new LoginJDialog(new Frame(),true);
return;
}
AbstractProcessor currentProcessor = GlobalProcessors.getCurrentProcessor();
if(currentProcessor!=null){
button2.setEnabled(false);
String name = button2.getName();
boolean result = false;
String value = value2.getValue().toString();
if(name.equals("GridOutputLowV")){
result = currentProcessor.executeControl("setGOLV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridOutputHighV")){
result = currentProcessor.executeControl("setGOHV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridOutputLowF")){
result = currentProcessor.executeControl("setGOLF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridOutputHighF")){
result = currentProcessor.executeControl("setGOHF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("MaxOutputPower")){
result = currentProcessor.executeControl("setOPMP", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("MPPPVN")){
result = currentProcessor.executeControl("setPVN", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("WaitingTime")){
result = currentProcessor.executeControl("setGridWaittime", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("LowestLimtInputV")){
result = currentProcessor.executeControl("setPVIPLV", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("UpperLimitInputV")){
result = currentProcessor.executeControl("setPVIPHV", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("LowVoltage")){
result = currentProcessor.executeControl("setMPPTLV", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("HighVoltage")){
result = currentProcessor.executeControl("setMPPTHV", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("GridInputAverageHighV")){
result = currentProcessor.executeControl("setGILTHV", new Object[]{currentProcessor.getProtocol().getSerialNo(),Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("GridInputHighV")){
result = currentProcessor.executeControl("setPHV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridInputLowV")){
result = currentProcessor.executeControl("setPLV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("GridInputHighF")){
result = currentProcessor.executeControl("setPGF", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("GridInputLowF")){
result = currentProcessor.executeControl("setPSF", new Object[]{Math.round(VolUtil.parseFloat(value))});
}else if(name.equals("ACInputLowV")){
result = currentProcessor.executeControl("setGOLV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("ACInputHighV")){
result = currentProcessor.executeControl("setGOHV", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("ACInputLowF")){
result = currentProcessor.executeControl("setGOLF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("ACInputHighF")){
result = currentProcessor.executeControl("setGOHF", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("MaxChargingCurrent")){
result = currentProcessor.executeControl("setMaxChargingCurrent", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}else if(name.equals("MaxChargingVoltage")){
result = currentProcessor.executeControl("setMaxChargingVoltage", new Object[]{VolUtil.round(VolUtil.parseDouble(value),3)});
}
if(result){
DisplayMessage.showInfoDialog("message.setTrue");
}else{
DisplayMessage.showErrorDialog("message.setFalse");
}
button2.setEnabled(true);
}
}
});
p5.addComponent(caption2);
p6.addComponent(value2,60,60,60);
p7.addComponent(unit2);
p8.addComponent(button2);
vGroup2.addGroup(layout2.createParallelGroup(Alignment.BASELINE)
.addComponent(caption2).addComponent(value2).addComponent(
unit2).addComponent(button2));
vGroup2.addGap(15, 15, 15);
}
hGroup2.addGap(20, 20, 20);
hGroup2.addGroup(p5);
hGroup2.addGroup(p6);
hGroup2.addGroup(p7);
hGroup2.addGroup(p8);
hGroup2.addGap(40, 40, 40);
layout2.setHorizontalGroup(hGroup2);
layout2.setVerticalGroup(vGroup2);
panel.add(leftPanel, java.awt.BorderLayout.CENTER);
panel.add(rightPanel, java.awt.BorderLayout.EAST);
}
protected AbstractButton valueLabel4;
public static void setRadioLayout(List<AutoRadioItem> list, JPanel panel,
Object object) {
panel.setLayout(new java.awt.BorderLayout());
int index = 2;
if (list.size() % 2 == 0) {
index = list.size() / 2;
} else {
index = list.size() / 2 + 1;
}
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
// 左边面板
GroupLayout layout = new GroupLayout(leftPanel);
leftPanel.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
GroupLayout.ParallelGroup p1 = layout
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p2 = layout
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p3 = layout
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p4 = layout
.createParallelGroup(Alignment.LEADING);
// 第一列
for (int i = 0; i < index; i++) {
AALabel caption1 = new AALabel();
final AARadioButton valueLabel1 = new AARadioButton();
final AARadioButton valueLabel2 = new AARadioButton();
final AAButton button1 = new AAButton();
button1.setEnabled(list.get(i).isEnable());
caption1.setText(list.get(i).getCaption());
valueLabel1.setText(list.get(i).getRadioLabel1());
valueLabel2.setText(list.get(i).getRadioLabel2());
boolean value1 = VolUtil.parseBoolean(PageUtils.getResultByName(list.get(i).getValue(),
object));
if(value1){
valueLabel1.setSelected(true);
valueLabel2.setSelected(false);
}else{
valueLabel1.setSelected(false);
valueLabel2.setSelected(true);
}
valueLabel1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
valueLabel1.setSelected(true);
valueLabel2.setSelected(false);
button1.setEnabled(true);
}
});
valueLabel2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
valueLabel1.setSelected(false);
valueLabel2.setSelected(true);
button1.setEnabled(true);
}
});
button1.setText("message.apply");
button1.setName(list.get(i).getButtonName());
button1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(!SolarPowerTray.isLogin){
new LoginJDialog(new Frame(),true);
return;
}
AbstractProcessor currentProcessor = GlobalProcessors.getCurrentProcessor();
if(currentProcessor!=null){
button1.setEnabled(false);
String name = button1.getName();
boolean result = false;
if(name.equals("CapableA")){
if(valueLabel1.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"A",true});
}else if(valueLabel2.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"A",false});
}
}else if(name.equals("CapableB")){
if(valueLabel1.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"B",true});
}else if(valueLabel2.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"B",false});
}
}else if(name.equals("CapableP")){
if(valueLabel1.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"P",true});
}else if(valueLabel2.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"P",false});
}
}
if(result){
DisplayMessage.showInfoDialog("message.setTrue");
}else{
DisplayMessage.showErrorDialog("message.setFalse");
}
button1.setEnabled(true);
}
}
});
p1.addComponent(caption1);
p2.addComponent(valueLabel1);
p3.addComponent(valueLabel2);
p4.addComponent(button1);
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(caption1).addComponent(valueLabel1).addComponent(
valueLabel2).addComponent(button1));
vGroup.addGap(15, 15, 15);
}
hGroup.addGap(40, 40, 40);
hGroup.addGroup(p1);
hGroup.addGroup(p2);
hGroup.addGroup(p3);
hGroup.addGroup(p4);
hGroup.addGap(20, 20, 20);
layout.setHorizontalGroup(hGroup);
layout.setVerticalGroup(vGroup);
// 右边面板
GroupLayout layout2 = new GroupLayout(rightPanel);
rightPanel.setLayout(layout2);
layout2.setAutoCreateGaps(true);
layout2.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup2 = layout2.createSequentialGroup();
GroupLayout.SequentialGroup vGroup2 = layout2.createSequentialGroup();
GroupLayout.ParallelGroup p5 = layout2
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p6 = layout2
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p7 = layout2
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p8 = layout2
.createParallelGroup(Alignment.LEADING);
// 第二列
for (int j = index; j < list.size(); j++) {
AALabel caption2 = new AALabel();
final AARadioButton valueLabel3 = new AARadioButton();
final AARadioButton valueLabel4 = new AARadioButton();
final AAButton button2 = new AAButton();
button2.setEnabled(list.get(j).isEnable());
caption2.setText(list.get(j).getCaption());
valueLabel3.setText(list.get(j).getRadioLabel1());
valueLabel4.setText(list.get(j).getRadioLabel2());
boolean value2 = VolUtil.parseBoolean(PageUtils.getResultByName(list.get(j).getValue(),
object));
if(value2){
valueLabel3.setSelected(true);
valueLabel4.setSelected(false);
}else{
valueLabel3.setSelected(false);
valueLabel4.setSelected(true);
}
valueLabel3.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
valueLabel3.setSelected(true);
valueLabel4.setSelected(false);
button2.setEnabled(true);
}
});
valueLabel4.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
valueLabel3.setSelected(false);
valueLabel4.setSelected(true);
button2.setEnabled(true);
}
});
button2.setText("message.apply");
button2.setName(list.get(j).getButtonName());
button2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(!SolarPowerTray.isLogin){
new LoginJDialog(new Frame(),true);
return;
}
AbstractProcessor currentProcessor = GlobalProcessors.getCurrentProcessor();
if(currentProcessor!=null){
button2.setEnabled(false);
String name = button2.getName();
boolean result = false;
if(name.equals("CapableA")){
if(valueLabel3.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"A",true});
}else if(valueLabel4.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"A",false});
}
}else if(name.equals("CapableB")){
if(valueLabel3.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"B",true});
}else if(valueLabel4.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"B",false});
}
}else if(name.equals("CapableP")){
if(valueLabel3.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"P",true});
}else if(valueLabel4.isSelected()){
result = currentProcessor.executeControl("setCapability", new Object[]{"P",false});
}
}
if(result){
DisplayMessage.showInfoDialog("message.setTrue");
}else{
DisplayMessage.showErrorDialog("message.setFalse");
}
button2.setEnabled(true);
}
}
});
p5.addComponent(caption2);
p6.addComponent(valueLabel3);
p7.addComponent(valueLabel4);
p8.addComponent(button2);
vGroup2.addGroup(layout2.createParallelGroup(Alignment.BASELINE)
.addComponent(caption2).addComponent(valueLabel3).addComponent(valueLabel4).addComponent(
button2));
vGroup2.addGap(15, 15, 15);
}
hGroup2.addGap(20, 20, 20);
hGroup2.addGroup(p5);
hGroup2.addGroup(p6);
hGroup2.addGroup(p7);
hGroup2.addGroup(p8);
hGroup2.addGap(40, 40, 40);
layout2.setHorizontalGroup(hGroup2);
layout2.setVerticalGroup(vGroup2);
panel.add(leftPanel, java.awt.BorderLayout.CENTER);
panel.add(rightPanel, java.awt.BorderLayout.EAST);
}
public static void setInfoLayout(List<AutoLabelItem> list, JPanel panel,
Object object) {
panel.setLayout(new java.awt.BorderLayout());
int index = 2;
if (list.size() % 2 == 0) {
index = list.size() / 2;
} else {
index = list.size() / 2 + 1;
}
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
// 左边面板
GroupLayout layout = new GroupLayout(leftPanel);
leftPanel.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
GroupLayout.ParallelGroup p1 = layout
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p2 = layout
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p3 = layout
.createParallelGroup(Alignment.LEADING);
// 第一列
for (int i = 0; i < index; i++) {
AALabel caption1 = new AALabel();
AALabel value1 = new AALabel();
AALabel unit1 = new AALabel();
caption1.setText(list.get(i).getCaption());
value1.setText(PageUtils.getResultByName(list.get(i).getValue(),
object));
unit1.setText(list.get(i).getUnit());
p1.addComponent(caption1);
p2.addComponent(value1);
p3.addComponent(unit1);
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(caption1).addComponent(value1).addComponent(
unit1));
vGroup.addGap(15, 15, 15);
}
hGroup.addGap(40, 40, 40);
hGroup.addGroup(p1);
hGroup.addGroup(p2);
hGroup.addGroup(p3);
hGroup.addGap(20, 20, 20);
layout.setHorizontalGroup(hGroup);
layout.setVerticalGroup(vGroup);
// 右边面板
GroupLayout layout2 = new GroupLayout(rightPanel);
rightPanel.setLayout(layout2);
layout2.setAutoCreateGaps(true);
layout2.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup2 = layout2.createSequentialGroup();
GroupLayout.SequentialGroup vGroup2 = layout2.createSequentialGroup();
GroupLayout.ParallelGroup p4 = layout2
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p5 = layout2
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p6 = layout2
.createParallelGroup(Alignment.LEADING);
// 第二列
for (int j = index; j < list.size(); j++) {
AALabel caption2 = new AALabel();
AALabel value2 = new AALabel();
AALabel unit2 = new AALabel();
caption2.setText(list.get(j).getCaption());
value2.setText(PageUtils.getResultByName(list.get(j).getValue(),
object));
unit2.setText(list.get(j).getUnit());
p4.addComponent(caption2);
p5.addComponent(value2);
p6.addComponent(unit2);
vGroup2.addGroup(layout2.createParallelGroup(Alignment.BASELINE)
.addComponent(caption2).addComponent(value2).addComponent(
unit2));
vGroup2.addGap(15, 15, 15);
}
hGroup2.addGap(20, 20, 20);
hGroup2.addGroup(p4);
hGroup2.addGroup(p5);
hGroup2.addGroup(p6);
hGroup2.addGap(40, 40, 40);
layout2.setHorizontalGroup(hGroup2);
layout2.setVerticalGroup(vGroup2);
panel.add(leftPanel, java.awt.BorderLayout.CENTER);
panel.add(rightPanel, java.awt.BorderLayout.EAST);
}
public static void setTextLayout(List<AutoLabelItem> list, JPanel panel,
Object object) {
panel.setLayout(new java.awt.BorderLayout());
int index = 2;
if (list.size() % 2 == 0) {
index = list.size() / 2;
} else {
index = list.size() / 2 + 1;
}
JPanel leftPanel = new JPanel();
JPanel rightPanel = new JPanel();
// 左边面板
GroupLayout layout = new GroupLayout(leftPanel);
leftPanel.setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
GroupLayout.ParallelGroup p1 = layout
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p2 = layout
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p3 = layout
.createParallelGroup(Alignment.LEADING);
// 第一列
for (int i = 0; i < index; i++) {
AALabel caption1 = new AALabel();
AATextField value1 = new AATextField();
AALabel unit1 = new AALabel();
caption1.setText(list.get(i).getCaption());
value1.setText(PageUtils.getResultByName(list.get(i).getValue(),
object));
unit1.setText(list.get(i).getUnit());
p1.addComponent(caption1);
p2.addComponent(value1,50,50,50);
p3.addComponent(unit1);
vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE)
.addComponent(caption1).addComponent(value1).addComponent(
unit1));
vGroup.addGap(15, 15, 15);
}
hGroup.addGap(40, 40, 40);
hGroup.addGroup(p1);
hGroup.addGroup(p2);
hGroup.addGroup(p3);
hGroup.addGap(20, 20, 20);
layout.setHorizontalGroup(hGroup);
layout.setVerticalGroup(vGroup);
// 右边面板
GroupLayout layout2 = new GroupLayout(rightPanel);
rightPanel.setLayout(layout2);
layout2.setAutoCreateGaps(true);
layout2.setAutoCreateContainerGaps(true);
GroupLayout.SequentialGroup hGroup2 = layout2.createSequentialGroup();
GroupLayout.SequentialGroup vGroup2 = layout2.createSequentialGroup();
GroupLayout.ParallelGroup p4 = layout2
.createParallelGroup(Alignment.TRAILING);
GroupLayout.ParallelGroup p5 = layout2
.createParallelGroup(Alignment.LEADING);
GroupLayout.ParallelGroup p6 = layout2
.createParallelGroup(Alignment.LEADING);
// 第二列
for (int j = index; j < list.size(); j++) {
AALabel caption2 = new AALabel();
AATextField value2 = new AATextField();
AALabel unit2 = new AALabel();
caption2.setText(list.get(j).getCaption());
value2.setText(PageUtils.getResultByName(list.get(j).getValue(),
object));
unit2.setText(list.get(j).getUnit());
p4.addComponent(caption2);
p5.addComponent(value2,50,50,50);
p6.addComponent(unit2);
vGroup2.addGroup(layout2.createParallelGroup(Alignment.BASELINE)
.addComponent(caption2).addComponent(value2).addComponent(
unit2));
vGroup2.addGap(15, 15, 15);
}
hGroup2.addGap(20, 20, 20);
hGroup2.addGroup(p4);
hGroup2.addGroup(p5);
hGroup2.addGroup(p6);
hGroup2.addGap(40, 40, 40);
layout2.setHorizontalGroup(hGroup2);
layout2.setVerticalGroup(vGroup2);
panel.add(leftPanel, java.awt.BorderLayout.CENTER);
panel.add(rightPanel, java.awt.BorderLayout.EAST);
}
}
//不懂请留言。