package com.dgex.offspring.trader.trades;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import nxt.Asset;
import org.eclipse.e4.core.di.annotations.Optional;
import org.eclipse.e4.ui.di.UIEventTopic;
import org.eclipse.e4.ui.di.UISynchronize;
import org.eclipse.e4.ui.services.IStylingEngine;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import com.dgex.offspring.config.ContactsService;
import com.dgex.offspring.nxtCore.service.INxtService;
import com.dgex.offspring.swt.table.PaginationContainer;
import com.dgex.offspring.trader.api.IAssetExchange;
import com.dgex.offspring.user.service.IUserService;
public class TradesPart {
private Composite mainComposite;
private TradesViewer tradesViewer;
private PaginationContainer paginationContainer;
@PostConstruct
public void postConstruct(Composite parent, INxtService nxt,
final IUserService userService, IStylingEngine engine,
UISynchronize sync) {
mainComposite = new Composite(parent, SWT.NONE);
GridLayoutFactory.fillDefaults().numColumns(1).spacing(5, 2).margins(0, 0)
.applyTo(mainComposite);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
.applyTo(mainComposite);
paginationContainer = new PaginationContainer(mainComposite, SWT.NONE);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, true)
.applyTo(paginationContainer);
tradesViewer = new TradesViewer(paginationContainer.getViewerParent(), nxt,
ContactsService.getInstance(), engine, userService, sync);
paginationContainer.setTableViewer(tradesViewer, 100);
}
@Inject
@Optional
private void onAssetSelected(
@UIEventTopic(IAssetExchange.TOPIC_ASSET_SELECTED) Asset asset) {
if (tradesViewer != null && !tradesViewer.getControl().isDisposed()) {
tradesViewer.setInput(asset.getId());
tradesViewer.refresh();
}
}
}