package dailyBot.analysis.view;
import java.awt.Dimension;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import dailyBot.analysis.SignalHistoryRecord;
import dailyBot.analysis.Utils;
import dailyBot.model.MultiFilter;
import dailyBot.model.SignalProvider.SignalProviderId;
import dailyBot.model.Strategy.StrategyId;
public class SignalProviderFormat extends JFrame
{
private static final long serialVersionUID = 2552180741753628128L;
public static synchronized List<SignalHistoryRecord> getCurrentRecords(SignalProviderId signalProviderId, boolean allActive)
{
try
{
List<SignalHistoryRecord> all = Utils.getRecords();
MultiFilter filter = Utils.getFilterSignalProvider(signalProviderId.ordinal(), allActive);
ArrayList<SignalHistoryRecord> selected = new ArrayList<SignalHistoryRecord> ();
for(SignalHistoryRecord r : all)
if(signalProviderId != null
&& filter.hasActive(r.id, r.pair, r.buy)
&& Utils.isRelevant(r.openDate)
&& filter.filter(r, false, 0.0))
selected.add(r);
return selected;
}
catch(Exception e)
{
throw new RuntimeException(e);
}
}
public static int getCurrentRecordsSize(SignalProviderId signalProviderId, boolean allActive)
{
List<SignalHistoryRecord> all = Utils.getRecords();
int count = 0;
MultiFilter filter = Utils.getFilterSignalProvider(signalProviderId.ordinal(), allActive);
for(SignalHistoryRecord r : all)
if(signalProviderId != null
&& filter.hasActive(r.id,
r.pair, r.buy) && Utils.isRelevant(r.openDate))
count++;
return count;
}
public SignalProviderFormat(final SignalProviderId signalProviderId)
{
super(signalProviderId.toString());
addWindowListener(new WindowListener()
{
@Override
public void windowOpened(WindowEvent e)
{
}
@Override
public void windowIconified(WindowEvent e)
{
}
@Override
public void windowDeiconified(WindowEvent e)
{
}
@Override
public void windowDeactivated(WindowEvent e)
{
}
@Override
public void windowClosing(WindowEvent e)
{
}
@Override
public void windowClosed(WindowEvent e)
{
RMIClientMain.attemptSave(signalProviderId);
}
@Override
public void windowActivated(WindowEvent e)
{
}
});
boolean allActive = false;
ProgressChart graficaProgreso = new ProgressChart();
graficaProgreso.changeRecords(getCurrentRecords(signalProviderId, allActive), getCurrentRecordsSize(signalProviderId, allActive));
HistoricChart graficaHistorial = new HistoricChart(signalProviderId.toString(), graficaProgreso, signalProviderId, allActive);
graficaHistorial.changeRecords(getCurrentRecords(signalProviderId, allActive));
JTabbedPane jtp = new JTabbedPane();
JCheckBox botonActivo = null;
for(StrategyId id1 : StrategyId.values())
{
PairFormat actual = new PairFormat(signalProviderId, id1, graficaProgreso, graficaHistorial, botonActivo);
if(id1.equals(StrategyId.values()[0]))
botonActivo = (JCheckBox) actual.darBotonActivo();
jtp.addTab(id1.toString(), actual);
}
jtp.setVisible(true);
setMinimumSize(new Dimension(259, 244));
setSize(259, 244);
add(jtp);
pack();
setVisible(true);
}
}