133 lines
4.0 KiB
Java
133 lines
4.0 KiB
Java
/*
|
|
* Copyright (c) 2017, 7u83 <7u83@mail.ru>
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* * Redistributions of source code must retain the above copyright notice, this
|
|
* list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
package traders.ManTrader;
|
|
|
|
import gui.Globals;
|
|
import gui.OpenOrdersList;
|
|
import javax.swing.JDialog;
|
|
import org.json.JSONObject;
|
|
|
|
import sesim.AutoTraderBase;
|
|
|
|
//import sesim.AutoTraderConfig;
|
|
import sesim.AutoTraderGui;
|
|
import sesim.AutoTraderInterface;
|
|
import sesim.Exchange;
|
|
import sesim.Exchange.AccountListener;
|
|
import sesim.Order.OrderStatus;
|
|
import sesim.Order;
|
|
import sesim.Account;
|
|
|
|
/**
|
|
*
|
|
* @author 7u83 <7u83@mail.ru>
|
|
*/
|
|
public class ManTrader extends AutoTraderBase implements AccountListener, AutoTraderInterface{
|
|
|
|
// public ManTrader(Exchange se, long id, String name, double money, double shares, AutoTraderConfig config) {
|
|
// // super(se, id, name, money, shares, null);
|
|
// super();
|
|
// }
|
|
|
|
public ManTrader() {
|
|
super();
|
|
|
|
}
|
|
|
|
@Override
|
|
public void init(Exchange se, long id, String name, double money, double shares, JSONObject cfg) {
|
|
super.init(se, id, name, money, shares, cfg);
|
|
getAccount().setListener(this);
|
|
}
|
|
ManTraderConsoleDialog consoleDialog;
|
|
|
|
@Override
|
|
public void start() {
|
|
se.timer.startTimerTask(this, 0);
|
|
consoleDialog = new ManTraderConsoleDialog(Globals.frame, false, this.getAccount());
|
|
this.consoleDialog.getBalancePanel().updateBalance(this.getAccount());
|
|
// consoleDialog. rdersList1.account=trader.getAccount();
|
|
|
|
// consoleDialog.getConsole().trader=this;
|
|
consoleDialog.setVisible(true);
|
|
|
|
}
|
|
|
|
@Override
|
|
public long timerTask() {
|
|
|
|
// OpenOrdersList ol = this.consoleDialog.getConsole().getOrderListPanel();
|
|
// ol.updateModel();
|
|
return 1000;
|
|
}
|
|
|
|
@Override
|
|
public String getDisplayName() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public AutoTraderGui getGui() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public JSONObject getConfig() {
|
|
System.out.printf("return new json object\n");
|
|
return new JSONObject();
|
|
}
|
|
|
|
@Override
|
|
public void putConfig(JSONObject cfg) {
|
|
return;
|
|
}
|
|
|
|
@Override
|
|
public boolean getDevelStatus() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public JDialog getGuiConsole() {
|
|
return this.consoleDialog;
|
|
}
|
|
|
|
@Override
|
|
public void accountUpdated(Account a, Order o) {
|
|
//this.consoleDialog.cons
|
|
//System.out.printf("AccountListener called\n");
|
|
|
|
//System.out.printf("%d %s\n", o.getID(), o.getOrderStatus().toString());
|
|
|
|
if (o.getOrderStatus()==OrderStatus.CLOSED){
|
|
o.getAccount().getOrders().put(o.getID(), o);
|
|
}
|
|
this.consoleDialog.getOrderList().updateModel();
|
|
this.consoleDialog.getBalancePanel().updateBalance(o.getAccount());
|
|
}
|
|
|
|
}
|