Package net.alteiar.newversion.server.document

Source Code of net.alteiar.newversion.server.document.DocumentClient

package net.alteiar.newversion.server.document;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import net.alteiar.newversion.client.DocumentManager;
import net.alteiar.newversion.shared.bean.BasicBean;
import net.alteiar.newversion.shared.bean.BeanEncapsulator;
import net.alteiar.shared.UniqueID;

public class DocumentClient implements IDocument, PropertyChangeListener {

  private BeanEncapsulator bean;
  private String filename;

  private final DocumentManager listener;

  public DocumentClient(DocumentManager manager) {
    this.listener = manager;
    filename = null;
  }

  @Override
  public void remoteValueChanged(String propertyName, Object newValue,
      Long timestamp) {
    bean.valueChange(propertyName, newValue, timestamp);
  }

  @Override
  public void propertyChange(final PropertyChangeEvent evt) {
    listener.remoteValueChanged(bean.getBean().getId(),
        evt.getPropertyName(), evt.getNewValue());
  }

  @Override
  public UniqueID getId() {
    return bean.getId();
  }

  @Override
  public BeanEncapsulator getBeanEncapsulator() {
    return this.bean;
  }

  @Override
  public String getFilename() {
    return this.filename;
  }

  /**
   * this method is call when the document is close on the server
   */
  @Override
  public final void remoteCloseDocument() {
    this.bean.beanRemoved();
    this.bean.removePropertyChangeListener(this);
  }

  @Override
  public void loadDocument(BasicBean bean) {
    this.filename = DocumentIO.validateFilename(bean.getId().toString());

    this.bean = new BeanEncapsulator(bean);
    this.bean.addPropertyChangeListener(this);
  }

  @Override
  public void save(String path) throws Exception {
    DocumentIO.saveDocument(bean.getBean(), path, getFilename());
  }
}
TOP

Related Classes of net.alteiar.newversion.server.document.DocumentClient

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.