Package ch.fusun.baron.treasury.ui

Source Code of ch.fusun.baron.treasury.ui.TreasuryContribution

package ch.fusun.baron.treasury.ui;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.menus.WorkbenchWindowControlContribution;

import ch.fusun.baron.core.injection.Inject;
import ch.fusun.baron.core.injection.ReInjector;
import ch.fusun.baron.core.service.UserService;
import ch.fusun.baron.data.DataListener;
import ch.fusun.baron.data.DataUpdate;
import ch.fusun.baron.player.Dynasty;
import ch.fusun.baron.player.api.PlayerService;
import ch.fusun.baron.treasury.api.TreasuryService;

/**
* Shows the treasury of the current player in the task bar
*/
public class TreasuryContribution extends WorkbenchWindowControlContribution
    implements DataListener {

  @Inject
  private transient TreasuryService treasuryService;

  @Inject
  private transient PlayerService playerService;

  @Inject
  private transient UserService userService;

  private transient Label text;

  /**
   *
   */
  public TreasuryContribution() {
  }

  /**
   * @param id
   */
  public TreasuryContribution(String id) {
    super(id);
  }

  @Override
  protected Control createControl(Composite parent) {
    ReInjector.getInstance().reInject(this);
    text = new Label(parent, SWT.NONE);
    text.setText("                  "); //$NON-NLS-1$
    treasuryService.addDataListener(this);
    return text;
  }

  @Override
  public void dataChanged(DataUpdate update) {
    if (!text.isDisposed()) {
      text.getDisplay().asyncExec(new Runnable() {

        @Override
        public void run() {
          Dynasty dynasty = playerService.getDynasty(userService
              .getUser());
          if (dynasty != null) {
            text.setText("" //$NON-NLS-1$
                + treasuryService.getMoney(dynasty));
          }
        }
      });
    }
  }
}
TOP

Related Classes of ch.fusun.baron.treasury.ui.TreasuryContribution

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.