Package ch.fusun.baron.basic.clientui.coa

Source Code of ch.fusun.baron.basic.clientui.coa.CoatOfArmsContribution

package ch.fusun.baron.basic.clientui.coa;

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;

/**
* Shows the dynasty name of the current player
*/
public class CoatOfArmsContribution extends WorkbenchWindowControlContribution
    implements DataListener {

  @Inject
  private transient UserService userService;

  @Inject
  private transient PlayerService playerService;

  private transient Label text;

  /**
   *
   */
  public CoatOfArmsContribution() {
  }

  /**
   * @param id
   *            The id
   */
  public CoatOfArmsContribution(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$
    playerService.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(dynasty.getName());
          }
        }
      });
    }
  }
}
TOP

Related Classes of ch.fusun.baron.basic.clientui.coa.CoatOfArmsContribution

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.