package hu.ppke.itk.itkStock.gui; import org.eclipse.swt.widgets.Composite; import swing2swt.layout.BorderLayout; import org.eclipse.swt.widgets.List; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.ModifyEvent; import java.util.ResourceBundle; public class StockGameComposite extends Composite { private static String money_postfix = " Ft" ; private Text text; private List list ; private Label lblAvailableMoney; private Label lblUnitCost; private Label labelAvailableAmount; private Label lblCost; private Button btnSell; private Button btnBuy; private int getAvailableAmount(int id) { // TODO return 100 ; } private int getUnitPrice(int id) { // TODO return 20 ; } private int getUserMoney() { // TODO return 100000 ; } private void updateUI() { String s = text.getText() ; int amount = 0 ; try { amount = Integer.parseInt(s) ; } catch (Exception e) { // Nem szám btnSell.setEnabled(false) ; btnBuy.setEnabled(false) ; lblCost.setText(""); return ; } int availableAmount = getAvailableAmount(list.getSelectionIndex()) ; labelAvailableAmount.setText(Integer.toString(availableAmount)); labelAvailableAmount.pack(); if (amount > availableAmount) { btnSell.setEnabled(false) ; } else { btnSell.setEnabled(true) ; } int unitPrice = getUnitPrice(list.getSelectionIndex()) ; lblUnitCost.setText(Integer.toString(unitPrice)+money_postfix); lblUnitCost.pack(); int price = amount * unitPrice ; lblCost.setText(Integer.toString(price)+money_postfix); lblCost.pack(); int userMoney = getUserMoney() ; lblAvailableMoney.setText(Integer.toString(unitPrice)+money_postfix); lblAvailableMoney.pack() ; if (price < userMoney) { btnBuy.setEnabled(true) ; } else { btnBuy.setEnabled(false) ; } } public StockGameComposite(Composite parent, int style) { super(parent, style); setLayout(new BorderLayout(0, 0)); list = new List(this, SWT.BORDER); list.setLayoutData(BorderLayout.WEST); Composite composite = new Composite(this, SWT.NONE); composite.setLayoutData(BorderLayout.CENTER); composite.setLayout(new GridLayout(2, false)); Label lblAvailableMoneyTxt = new Label(composite, SWT.NONE); lblAvailableMoneyTxt.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblAvailableMoneyTxt.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.lblAvailableMoneyTxt.text")); //$NON-NLS-1$ //$NON-NLS-2$ lblAvailableMoney = new Label(composite, SWT.NONE); Label lblUnitCostTxt = new Label(composite, SWT.NONE); lblUnitCostTxt.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblUnitCostTxt.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.lblUnitCostTxt.text")); //$NON-NLS-1$ //$NON-NLS-2$ lblUnitCost = new Label(composite, SWT.NONE); Label lblAvailableAmountTxt = new Label(composite, SWT.NONE); lblAvailableAmountTxt.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblAvailableAmountTxt.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.lblAvailableAmountTxt.text")); //$NON-NLS-1$ //$NON-NLS-2$ labelAvailableAmount = new Label(composite, SWT.NONE); Label lblAmountTxt = new Label(composite, SWT.NONE); lblAmountTxt.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblAmountTxt.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.lblAmountTxt.text")); //$NON-NLS-1$ //$NON-NLS-2$ text = new Text(composite, SWT.BORDER); text.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); Label lblCostTxt = new Label(composite, SWT.NONE); lblCostTxt.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblCostTxt.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.lblCostTxt.text")); //$NON-NLS-1$ //$NON-NLS-2$ lblCost = new Label(composite, SWT.NONE); btnSell = new Button(composite, SWT.NONE); btnSell.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); btnSell.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.btnSell.text")); //$NON-NLS-1$ //$NON-NLS-2$ btnBuy = new Button(composite, SWT.NONE); btnBuy.setText(ResourceBundle.getBundle("hu.ppke.itk.itkStock.gui.messages").getString("StockGameComposite.btnBuy.text")); //$NON-NLS-1$ //$NON-NLS-2$ text.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent event) { updateUI() ; } }); updateUI() ; } }