package org.ripple.power.ui;
import java.awt.Dimension;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.json.JSONArray;
import org.ripple.power.config.LSystem;
import org.ripple.power.config.Session;
import org.ripple.power.helper.HelperWindow;
import org.ripple.power.txns.Currencies;
import org.ripple.power.txns.Gateway;
import org.ripple.power.ui.view.ABaseDialog;
import org.ripple.power.ui.view.RPLabel;
import org.ripple.power.ui.view.RPList;
import org.ripple.power.ui.view.RPTextBox;
import org.ripple.power.ui.view.log.ErrorLog;
import org.ripple.power.utils.GraphicsUtils;
public class RPDefineTradingDialog extends ABaseDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private RPCButton _scriptButton;
private RPCButton _addDataButton1;
private RPCButton _addDataButton2;
private RPLabel _dstCurLabel;
private RPList _dstCurList;
private RPLabel _dstGatewayLabel;
private RPList _dstGatewayList;
private RPLabel _existCurLabel;
private RPList _existCurList;
private RPLabel _existGatewayLabel;
private RPList _existGatewayList;
private RPLabel _finalSetLabel;
private RPList _finalSetList;
private RPComboBox _gatewayAndCurComboBox;
private RPLabel _gatewayAndCurLabel;
private RPLabel _intervalTimeLabel;
private RPTextBox _intervalTimeTexture;
private RPCButton _moveCurButton;
private RPCButton _moveGatewayButton;
private RPCButton _saveDataButton;
private RPComboBox _typeSelectComboBox;
private RPComboBox _typeSelectComboBox1;
private RPComboBox _typeSelectComboBox2;
private RPComboBox _typeSelectComboBox3;
private RPComboBox _typeSelectComboBox4;
private RPComboBox _typeSelectComboBox5;
private RPComboBox _typeSelectComboBox6;
private RPLabel _parameterLabel;
private RPLabel _xrpPriceLabel1;
private RPLabel _xrpPriceLabel2;
private RPLabel _stopLabel;
private RPLabel _swapLabel;
private RPLabel _sellCurLabel;
private RPLabel _startLabel;
private RPLabel _tacticsLabel;
private RPTextBox _xrpPriceText;
private RPTextBox _xrpPriceText1;
private RPTextBox _xrpPriceText2;
private RPTextBox _xrpPriceText3;
private RPLabel _xrpFlagLabel;
private RPLabel _msLabel;
private RPCButton _moveDelCurButton;
private RPCButton _moveDelGatewayButton;
private javax.swing.JScrollPane scrollPanelOne;
private javax.swing.JScrollPane scrollPanelTwo;
private javax.swing.JScrollPane scrollPanelThree;
private javax.swing.JScrollPane scrollPanelFour;
private javax.swing.JScrollPane scrollPanelFive;
private ArrayList<String> curlist = new ArrayList<String>();
private ArrayList<String> gatewaylist = new ArrayList<String>();
private ArrayList<String> curSelectlist = new ArrayList<String>();
private ArrayList<String> gatewaySelectlist = new ArrayList<String>();
private ArrayList<String> finallist = new ArrayList<String>();
public static void showDialog(String text, Window parent) {
try {
RPDefineTradingDialog dialog = new RPDefineTradingDialog(text,
parent);
dialog.pack();
dialog.setLocationRelativeTo(parent);
dialog.setVisible(true);
} catch (Exception exc) {
ErrorLog.get().logException("RPDefineTradingDialog Exception", exc);
}
}
public RPDefineTradingDialog(String text, Window parent) {
super(parent, text, ModalityType.DOCUMENT_MODAL);
this.addWindowListener(HelperWindow.get());
this.setIconImage(UIRes.getIcon());
this.setResizable(false);
Dimension dim = new Dimension(665, 700);
this.setPreferredSize(dim);
this.setSize(dim);
this.initComponents();
}
private void init() {
final List<String> curstrings = Gateway.currencies();
curlist.addAll(curstrings);
_dstCurList.setModel(new javax.swing.AbstractListModel<Object>() {
private static final long serialVersionUID = 1L;
public int getSize() {
return curSelectlist.size();
}
public Object getElementAt(int i) {
String result = Currencies.name(curSelectlist.get(i));
return result != null ? result : curSelectlist.get(i);
}
});
_existCurList.setModel(new javax.swing.AbstractListModel<Object>() {
private static final long serialVersionUID = 1L;
public int getSize() {
return curlist.size();
}
public Object getElementAt(int i) {
String result = Currencies.name(curlist.get(i));
return result != null ? result : curlist.get(i);
}
});
_dstGatewayList.setModel(new javax.swing.AbstractListModel<Object>() {
/**
*
*/
private static final long serialVersionUID = 1L;
public int getSize() {
return gatewaySelectlist.size();
}
public Object getElementAt(int i) {
return gatewaySelectlist.get(i);
}
});
final ArrayList<String> gatewaystrings = Gateway.gatewayList();
gatewaylist.addAll(gatewaystrings);
_existGatewayList.setModel(new javax.swing.AbstractListModel<Object>() {
/**
*
*/
private static final long serialVersionUID = 1L;
public int getSize() {
return gatewaylist.size();
}
public Object getElementAt(int i) {
return gatewaylist.get(i);
}
});
Session session = LSystem.session("check_price");
String result = session.get("warn");
if (result != null) {
JSONArray json = new JSONArray(result);
for (int i = 0; i < json.length(); i++) {
finallist.add(json.getString(i));
}
}
_finalSetList.setModel(new javax.swing.AbstractListModel<Object>() {
private static final long serialVersionUID = 1L;
public int getSize() {
return finallist.size();
}
public Object getElementAt(int i) {
return finallist.get(i);
}
});
}
private void updateData() {
if (curSelectlist.size() > 0 && gatewaySelectlist.size() > 0) {
ArrayList<String> list = new ArrayList<String>(20);
for (String gateway : gatewaySelectlist) {
for (String cur : curSelectlist) {
list.add(gateway + "/" + cur);
}
}
if (list.size() > 0) {
_gatewayAndCurComboBox.setItemModel(list.toArray());
}
}
}
private void initComponents() {
_intervalTimeLabel = new RPLabel();
scrollPanelOne = new javax.swing.JScrollPane();
_existCurList = new RPList();
_finalSetLabel = new RPLabel();
scrollPanelTwo = new javax.swing.JScrollPane();
_dstCurList = new RPList();
_moveCurButton = new RPCButton();
scrollPanelThree = new javax.swing.JScrollPane();
_existGatewayList = new RPList();
_existGatewayLabel = new RPLabel();
_dstGatewayLabel = new RPLabel();
scrollPanelFour = new javax.swing.JScrollPane();
_dstGatewayList = new RPList();
_moveGatewayButton = new RPCButton();
_existCurLabel = new RPLabel();
_intervalTimeTexture = new RPTextBox();
_gatewayAndCurLabel = new RPLabel();
_xrpPriceText = new RPTextBox();
_gatewayAndCurComboBox = new RPComboBox();
scrollPanelFive = new javax.swing.JScrollPane();
_finalSetList = new RPList();
_dstCurLabel = new RPLabel();
_msLabel = new RPLabel();
_parameterLabel = new RPLabel();
_xrpFlagLabel = new RPLabel();
_saveDataButton = new RPCButton();
_scriptButton = new RPCButton();
_typeSelectComboBox = new RPComboBox();
_xrpPriceLabel1 = new RPLabel();
_typeSelectComboBox1 = new RPComboBox();
_xrpPriceLabel2 = new RPLabel();
_xrpPriceText1 = new RPTextBox();
_typeSelectComboBox2 = new RPComboBox();
_stopLabel = new RPLabel();
_swapLabel = new RPLabel();
_typeSelectComboBox3 = new RPComboBox();
_sellCurLabel = new RPLabel();
_xrpPriceText2 = new RPTextBox();
_addDataButton1 = new RPCButton();
_addDataButton2 = new RPCButton();
_moveDelCurButton = new RPCButton();
_moveDelGatewayButton = new RPCButton();
_startLabel = new RPLabel();
_typeSelectComboBox4 = new RPComboBox();
_xrpPriceText3 = new RPTextBox();
_typeSelectComboBox5 = new RPComboBox();
_tacticsLabel = new RPLabel();
_typeSelectComboBox6 = new RPComboBox();
getContentPane().setLayout(null);
this.init();
_intervalTimeLabel.setFont(UIRes.getFont()); // NOI18N
_intervalTimeLabel.setText("刷新间隔");
getContentPane().add(_intervalTimeLabel);
_intervalTimeLabel.setBounds(20, 460, 80, 30);
scrollPanelOne.setViewportView(_existCurList);
getContentPane().add(scrollPanelOne);
scrollPanelOne.setBounds(20, 150, 260, 100);
_finalSetLabel.setFont(UIRes.getFont()); // NOI18N
_finalSetLabel.setText("最终设置");
getContentPane().add(_finalSetLabel);
_finalSetLabel.setBounds(20, 510, 70, 30);
scrollPanelTwo.setViewportView(_dstCurList);
getContentPane().add(scrollPanelTwo);
scrollPanelTwo.setBounds(370, 150, 270, 100);
_moveCurButton.setText(">>");
getContentPane().add(_moveCurButton);
_moveCurButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (_existCurList.getSelectedIndex() != -1) {
String result = (String) _existCurList.getSelectedValue();
if (!curSelectlist.contains(result)) {
curSelectlist.add(result);
Collections.sort(curSelectlist);
_dstCurList.updateUI();
curlist.remove(_existCurList.getSelectedIndex());
_existCurList.updateUI();
updateData();
}
}
}
});
_moveCurButton.setBounds(300, 150, 50, 30);
_moveDelCurButton.setText("<<");
_moveDelCurButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (_dstCurList.getSelectedIndex() != -1) {
String result = (String) _dstCurList.getSelectedValue();
if (!curlist.contains(result)) {
curlist.add(result);
Collections.sort(curlist);
_existCurList.updateUI();
curSelectlist.remove(_dstCurList.getSelectedIndex());
_dstCurList.updateUI();
updateData();
}
}
}
});
getContentPane().add(_moveDelCurButton);
_moveDelCurButton.setBounds(300, 200, 50, 30);
scrollPanelThree.setViewportView(_existGatewayList);
getContentPane().add(scrollPanelThree);
scrollPanelThree.setBounds(20, 40, 260, 80);
_existGatewayLabel.setFont(UIRes.getFont()); // NOI18N
_existGatewayLabel.setText("已有网关");
getContentPane().add(_existGatewayLabel);
_existGatewayLabel.setBounds(20, 10, 70, 30);
_dstGatewayLabel.setFont(UIRes.getFont()); // NOI18N
_dstGatewayLabel.setText("目标网关");
getContentPane().add(_dstGatewayLabel);
_dstGatewayLabel.setBounds(370, 10, 70, 30);
scrollPanelFour.setViewportView(_dstGatewayList);
getContentPane().add(scrollPanelFour);
scrollPanelFour.setBounds(370, 40, 270, 80);
_moveGatewayButton.setText(">>");
_moveGatewayButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (_existGatewayList.getSelectedIndex() != -1) {
String result = (String) _existGatewayList
.getSelectedValue();
if (!gatewaySelectlist.contains(result)) {
gatewaySelectlist.add(result);
Collections.sort(gatewaySelectlist);
_dstGatewayList.updateUI();
gatewaylist.remove(_existGatewayList.getSelectedIndex());
_existGatewayList.updateUI();
updateData();
}
}
}
});
getContentPane().add(_moveGatewayButton);
_moveGatewayButton.setBounds(300, 40, 50, 30);
_moveDelGatewayButton.setText("<<");
_moveDelGatewayButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (_dstGatewayList.getSelectedIndex() != -1) {
String result = (String) _dstGatewayList.getSelectedValue();
if (!gatewaylist.contains(result)) {
gatewaylist.add(result);
Collections.sort(gatewaylist);
_existGatewayList.updateUI();
gatewaySelectlist.remove(_dstGatewayList
.getSelectedIndex());
_dstGatewayList.updateUI();
updateData();
}
}
}
});
getContentPane().add(_moveDelGatewayButton);
_moveDelGatewayButton.setBounds(300, 90, 50, 30);
_existCurLabel.setFont(UIRes.getFont()); // NOI18N
_existCurLabel.setText("已有币种");
getContentPane().add(_existCurLabel);
_existCurLabel.setBounds(20, 120, 70, 30);
_intervalTimeTexture.setFont(UIRes.getFont()); // NOI18N
getContentPane().add(_intervalTimeTexture);
_intervalTimeTexture.setBounds(100, 460, 200, 30);
_gatewayAndCurLabel.setFont(UIRes.getFont()); // NOI18N
_gatewayAndCurLabel.setText("网关/币种");
getContentPane().add(_gatewayAndCurLabel);
_gatewayAndCurLabel.setBounds(20, 260, 260, 30);
_xrpPriceText.setFont(UIRes.getFont()); // NOI18N
getContentPane().add(_xrpPriceText);
_xrpPriceText.setBounds(420, 410, 190, 30);
_gatewayAndCurComboBox.setFont(GraphicsUtils.getFont(12)); // NOI18N
getContentPane().add(_gatewayAndCurComboBox);
_gatewayAndCurComboBox.setItemModel(new Object[] { "Emprt" });
_gatewayAndCurComboBox.setBounds(100, 260, 240, 30);
scrollPanelFive.setViewportView(_finalSetList);
getContentPane().add(scrollPanelFive);
scrollPanelFive.setBounds(100, 510, 540, 80);
_dstCurLabel.setFont(UIRes.getFont()); // NOI18N
_dstCurLabel.setText("目标币种");
getContentPane().add(_dstCurLabel);
_dstCurLabel.setBounds(370, 120, 70, 30);
_msLabel.setFont(UIRes.getFont()); // NOI18N
_msLabel.setText("MS");
getContentPane().add(_msLabel);
_msLabel.setBounds(310, 460, 30, 30);
_parameterLabel.setFont(UIRes.getFont()); // NOI18N
_parameterLabel.setText("参数");
getContentPane().add(_parameterLabel);
_parameterLabel.setBounds(360, 410, 60, 30);
_xrpFlagLabel.setFont(UIRes.getFont()); // NOI18N
_xrpFlagLabel.setText("XRP");
getContentPane().add(_xrpFlagLabel);
_xrpFlagLabel.setBounds(620, 260, 30, 30);
_typeSelectComboBox.setItemModel(new Object[] { "UP ?% DOWN ?%" });
getContentPane().add(_typeSelectComboBox);
_typeSelectComboBox.setBounds(420, 310, 230, 30);
_xrpPriceLabel1.setFont(UIRes.getFont()); // NOI18N
_xrpPriceLabel1.setText("币种");
getContentPane().add(_xrpPriceLabel1);
_xrpPriceLabel1.setBounds(220, 310, 50, 30);
_typeSelectComboBox1.setItemModel(new Object[] { ">", ">=", "<", "<=",
"==" });
getContentPane().add(_typeSelectComboBox1);
_typeSelectComboBox1.setBounds(420, 260, 60, 30);
_xrpPriceLabel2.setFont(UIRes.getFont()); // NOI18N
_xrpPriceLabel2.setText("价格");
getContentPane().add(_xrpPriceLabel2);
_xrpPriceLabel2.setBounds(360, 260, 60, 30);
_xrpPriceText1.setFont(UIRes.getFont()); // NOI18N
getContentPane().add(_xrpPriceText1);
_xrpPriceText1.setBounds(490, 260, 120, 30);
_typeSelectComboBox2.setItemModel(new Object[] { "? > ?" });
getContentPane().add(_typeSelectComboBox2);
_typeSelectComboBox2.setBounds(100, 410, 240, 30);
_saveDataButton.setText("保存");
_saveDataButton.setFont(UIRes.getFont());
getContentPane().add(_saveDataButton);
_saveDataButton.setBounds(560, 610, 81, 40);
_scriptButton.setText("高级策略(脚本编辑)");
_scriptButton.setFont(UIRes.getFont());
getContentPane().add(_scriptButton);
_scriptButton.setBounds(20, 610, 230, 40);
_stopLabel.setFont(UIRes.getFont()); // NOI18N
_stopLabel.setText("停止条件");
getContentPane().add(_stopLabel);
_stopLabel.setBounds(20, 410, 80, 30);
_swapLabel.setFont(UIRes.getFont()); // NOI18N
_swapLabel.setText("交换");
getContentPane().add(_swapLabel);
_swapLabel.setBounds(360, 360, 60, 30);
_typeSelectComboBox3.setItemModel(new Object[] { "SELL", "BUY" });
getContentPane().add(_typeSelectComboBox3);
_typeSelectComboBox3.setBounds(100, 310, 110, 30);
_sellCurLabel.setFont(UIRes.getFont()); // NOI18N
_sellCurLabel.setText("使用货币");
getContentPane().add(_sellCurLabel);
_sellCurLabel.setBounds(20, 360, 70, 30);
_xrpPriceText2.setFont(UIRes.getFont()); // NOI18N
getContentPane().add(_xrpPriceText2);
_xrpPriceText2.setBounds(420, 360, 140, 30);
_addDataButton1.setText("添加");
_addDataButton1.setFont(UIRes.getFont());
getContentPane().add(_addDataButton1);
_addDataButton1.setBounds(460, 610, 81, 40);
_addDataButton2.setText("删除");
_addDataButton2.setFont(UIRes.getFont());
getContentPane().add(_addDataButton2);
_addDataButton2.setBounds(360, 610, 81, 40);
_startLabel.setFont(UIRes.getFont()); // NOI18N
_startLabel.setText("条件");
getContentPane().add(_startLabel);
_startLabel.setBounds(360, 310, 60, 30);
_typeSelectComboBox4.setItemModel(new Object[] { "USD" });
getContentPane().add(_typeSelectComboBox4);
_typeSelectComboBox4.setBounds(270, 310, 70, 30);
_xrpPriceText3.setFont(UIRes.getFont()); // NOI18N
getContentPane().add(_xrpPriceText3);
_xrpPriceText3.setBounds(100, 360, 160, 30);
_typeSelectComboBox5.setItemModel(new Object[] { "USD" });
getContentPane().add(_typeSelectComboBox5);
_typeSelectComboBox5.setBounds(270, 360, 70, 30);
_tacticsLabel.setFont(UIRes.getFont()); // NOI18N
_tacticsLabel.setText("交易策略");
getContentPane().add(_tacticsLabel);
_tacticsLabel.setBounds(20, 310, 80, 30);
_typeSelectComboBox6.setItemModel(new Object[] { "USD" });
getContentPane().add(_typeSelectComboBox6);
_typeSelectComboBox6.setBounds(570, 360, 80, 30);
getContentPane().setBackground(UIConfig.dialogbackground);
pack();
}
}