Package ar.com.AmberSoft.iEvenTask.client

Source Code of ar.com.AmberSoft.iEvenTask.client.CommentWindows

package ar.com.AmberSoft.iEvenTask.client;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import ar.com.AmberSoft.iEvenTask.shared.DispatcherUtil;
import ar.com.AmberSoft.iEvenTask.shared.ParamsConst;
import ar.com.AmberSoft.iEvenTask.shared.ServiceNameConst;

import com.extjs.gxt.ui.client.Style;
import com.extjs.gxt.ui.client.Style.Orientation;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.VerticalPanel;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.HtmlEditor;
import com.extjs.gxt.ui.client.widget.layout.RowData;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.extjs.gxt.ui.client.widget.ContentPanel;

public class CommentWindows extends Window {

  public static final Integer WINDOW_WIDTH = 515;
  public static final Integer WINDOW_HEIGTH = 380;
 
  public static final Integer FIELD_WIDTH = WINDOW_WIDTH - 10;
  public static final Integer LABEL_WIDTH = 400;
 
  public static final Integer DETAILS_HEIGTH = 72;
 
  private Integer id;
 
  final Button save = new SaveButton(this);
  final Button cancel = new CancelButton(this);
  HtmlEditor htmlEditor = new HtmlEditor();
 
  public CommentWindows(Integer id, String name) {
    super();

    this.id = id;
   
    initialize(name);

    addToolBar();
   
    ContentPanel cntntpnlNewContentpanel = new ContentPanel();
    cntntpnlNewContentpanel.setHeaderVisible(false);
   
    cntntpnlNewContentpanel.add(htmlEditor);
    add(cntntpnlNewContentpanel, new RowData(Style.DEFAULT, 300.0, new Margins()));
   
  }

  /**
   * Inicializa la ventana actual
   */
  private void initialize(String name) {
    setInitialWidth(WINDOW_WIDTH);
    setHeight(362);
    setTitleCollapse(true);
    setHeading("Comentario para la tarea " + name);
    setLayout(new RowLayout(Orientation.VERTICAL));
  }

  /**
   * Agrega la bara de botones
   * @return
   */
  private void addToolBar() {
    ToolBar toolBar = new ToolBar();
    toolBar.add(save);
    toolBar.add(cancel);
    add(toolBar);
  }

  @Override
  public void onDelete() {
  }

  @Override
  public void onSave() {
    maskAvaiable();
    if (isValid()) {
      Map params = new HashMap<String, String>();
      params.put(ParamsConst.ID, id);
      params.put(ParamsConst.COMMENT, htmlEditor.getValue());
      params.put(ServiceNameConst.SERVICIO,
            ServiceNameConst.ADD_COMMENT);
      DispatcherUtil.getDispatcher().execute(params,
          new AsyncCallback() {

            @Override
            public void onFailure(Throwable caught) {
              DialogError dialogError = new DialogError("No fue posible guardar el comentario.");
              maskDisable();
            }

            @Override
            public void onSuccess(Object result) {
              //FIXME: Tambien se deberia guardar el nuevo comentario en la tarea que esta almacenada en la grilla
              // de lo contrario luego de guardar un comentario al ir y volver entre tareas da la impresion de que el comentario se pierde
              // aunque lo almacena correctamente
              Context.getInstance().addComment(
                  id,
                  htmlEditor.getValue(),
                  new Date(),
                  Context.getInstance().getUserName());
             
              clear();
              maskDisable();
              close();
            }

          });

    } else {
      DialogError dialogError = new DialogError("El comentario no puede estar vacio.");
      maskDisable();
    }
  }
 
 
  protected Boolean isValid() {
    return (htmlEditor.getValue()!=null) && !"".equals(htmlEditor.getValue().trim());
  }

  @Override
  public void onModify() {
  }

  /**
   * Se invoca cuando se presiona el boton cancelar
   */
  public void onCancel(){
    htmlEditor.setValue("");
    this.setVisible(Boolean.FALSE);
  }

  @Override
  public void beforeUpdate(BaseModel baseModel) {
  }

}
TOP

Related Classes of ar.com.AmberSoft.iEvenTask.client.CommentWindows

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.