package de.open4me.depot.gui.control;
import java.rmi.RemoteException;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import de.open4me.depot.Settings;
import de.open4me.depot.gui.action.AddWertpapierAction;
import de.open4me.depot.gui.action.OrderList;
import de.open4me.depot.gui.action.WertpapiereAktualisierenAction;
import de.open4me.depot.gui.menu.WertpapierMenu;
import de.open4me.depot.sql.GenericObjectSQL;
import de.open4me.depot.sql.SQLQueries;
import de.willuhn.jameica.gui.parts.Button;
import de.willuhn.jameica.gui.parts.ButtonArea;
import de.willuhn.jameica.gui.parts.TablePart;
public class WertpapiereTableControl
{
private TablePart orderList;
private WertpapiereControl controller;
public WertpapiereTableControl() {
}
private TablePart getTable() {
if (orderList != null) {
return orderList;
}
List<GenericObjectSQL> list = SQLQueries.getWertpapiereMitKursdatum();
orderList = new TablePart(list,new OrderList());
orderList.setRememberColWidths(true);
orderList.setRememberOrder(true);
orderList.addColumn(Settings.i18n().tr("WKN"),"wkn");
orderList.addColumn(Settings.i18n().tr("ISIN"),"isin");
orderList.addColumn(Settings.i18n().tr("Name"),"wertpapiername");
orderList.addColumn(Settings.i18n().tr("Letzter Kurs"),"kursdatum");
orderList.addSelectionListener(new Listener() {
@Override
public void handleEvent(Event event) {
GenericObjectSQL[] d = getSelection();
if (d == null) {
return;
}
controller.aktualisieren(d);
}
});
orderList.setMulti(true);
orderList.setContextMenu(new WertpapierMenu(controller));
return orderList;
}
public GenericObjectSQL[] getSelection() {
if (orderList.getSelection() == null) {
return null;
}
GenericObjectSQL[] d;
if (orderList.getSelection() instanceof Object[]) {
d = ((GenericObjectSQL[]) orderList.getSelection());
} else {
d = new GenericObjectSQL[] {(GenericObjectSQL) orderList.getSelection()};
}
return d;
}
public Composite getWepierControl(Composite comp) throws RemoteException
{
Composite rest = new Composite(comp ,SWT.BORDER);
GridLayout grid1 = new GridLayout();
grid1.numColumns = 1;
rest.setLayout(grid1);
getTable().paint(rest);
ButtonArea buttons = new ButtonArea();
buttons.addButton(new Button("Hinzufügen", new AddWertpapierAction()));
buttons.addButton(new Button("Aktualisieren", new WertpapiereAktualisierenAction(getTable())));
buttons.paint(rest);
return rest;
}
public void setController(WertpapiereControl controller) {
this.controller = controller;
}
public void aktualisiere() throws RemoteException {
getTable().removeAll();
for (GenericObjectSQL x : SQLQueries.getWertpapiereMitKursdatum()) {
getTable().addItem(x);
}
}
}