ChangeStatusEditor.java :  » GWT » g-mvc » com » mclub » client » forms » changeStatus » Java Open Source

Java Open Source » GWT » g mvc 
g mvc » com » mclub » client » forms » changeStatus » ChangeStatusEditor.java
/*
 * Copyleft 2010 Mustafa DUMLUPINAR
 *
 * Distributable under GPL license.
 * See terms of license at gnu.org.
 * http://www.gnu.org/licenses/gpl.html
 *
 * dumlupinar01@gmail.com
 * http://mdpinar.blogspot.com/
 *
 */
package com.mclub.client.forms.changeStatus;

import com.extjs.gxt.ui.client.data.BeanModel;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.util.Size;
import com.extjs.gxt.ui.client.widget.form.ComboBox;
import com.extjs.gxt.ui.client.widget.form.Field;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.extjs.gxt.ui.client.widget.layout.RowData;
import com.gmvc.client.base.AbstractEditor;
import com.gmvc.client.base.IController;
import com.gmvc.client.meta.Event;
import com.gmvc.client.meta.ImageItem;
import com.gmvc.client.util.Tags;
import com.mclub.client.app.SpecialEvent;
import com.mclub.client.enums.FilmStatus;
import com.mclub.client.model.ChangeStatusDTO;
import com.mclub.client.model.ChangeStatusDetailDTO;
import com.mclub.client.model.MovieDTO;
import com.mclub.client.util.GUIHelper;

/**
 * Durumu degisen filmler, Editor sinifi
 * 
 * @see AbstractEditor
 * 
 * @author mdpinar
 * 
 */
public class ChangeStatusEditor extends AbstractEditor<ChangeStatusDTO> {

  /**
   * Eklenmis filmleri duzenleyen mini kontrolor
   * 
   */
  private IController<ChangeStatusDetailDTO> miniController;
  
  /**
   * Aciklama alani
   * 
   */
  private TextField<String> descText;
  
  /**
   * Film secme combosu
   * 
   */
  private ComboBox<BeanModel> movieCombo;
  
  /**
   * Yeni durum combosu
   * 
   */
  private ComboBox<ImageItem> statusCombo;
  
  public ChangeStatusEditor(IController<ChangeStatusDTO> controller) {
    super(controller);
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public ChangeStatusDTO getNewModel() {
    return new ChangeStatusDTO();
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public Size getSize() {
    return new Size(450, 350);
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public String isValid() {
    return null;
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public String getTitle() {
    return Tags.get("changeStatus");
  }
  
  /**
   * {@inheritDoc}
   */
  @Override
  public Field<?> getFirstField() {
    return descText;
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public void pushFields() {
    model.setDescription(descText.getValue());
    miniController.fireEvent(new Event(SpecialEvent.MiniDoUpdates));
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public void popFields() {
    descText.setValue(model.getDescription());
    
    miniController.fireEvent(
      new Event(SpecialEvent.MiniSetModels)
        .addParam("modelList", model.getDetails())
    );
  }

  /**
   * {@inheritDoc}
   */
  @Override
  public void init() {
    miniController = new ChangeStatusMiniController(getController());
    addWidgetToPanel(buildAddMoviePanel(), new RowData(1, 1));
  }

  /**
   * Film ekleme panelini bina eder
   * 
   */
  private FormPanel buildAddMoviePanel() {
    FormData formData = new FormData("-10");
    FormPanel moviePanel = new FormPanel();
    moviePanel.setHeaderVisible(false);
    moviePanel.setLabelAlign(LabelAlign.RIGHT);
    moviePanel.setLabelWidth(100);
    moviePanel.setFrame(true);
    moviePanel.setHeight(200);
    moviePanel.setHeaderVisible(false);

    descText = new TextField<String>();
    descText.setFieldLabel(Tags.get("description"));
    descText.setName("desc");
    moviePanel.add(descText, formData);
    
    statusCombo = GUIHelper.getComboFilmStatus(null);
    moviePanel.add(statusCombo, formData);
    
    movieCombo = GUIHelper.getMovieSuggestCombo(null);
    movieCombo.addSelectionChangedListener(new SelectionChangedListener<BeanModel>() {

      @Override
      public void selectionChanged(SelectionChangedEvent<BeanModel> se) {
        if (se != null && se.getSelectedItem() != null) {
          FilmStatus status = null;
          MovieDTO movie = se.getSelectedItem().getBean();

          if (statusCombo.getValue() != null) status = (FilmStatus) statusCombo.getValue().getEnumVal();
          
          if (movie != null && status != null) {
            ChangeStatusDetailDTO detail = new ChangeStatusDetailDTO();
            detail.setStatus(status);
            detail.setMovie(movie);
            miniController.fireEvent(new Event(SpecialEvent.AddNewModel, detail));
            miniController.fireEvent(new Event(SpecialEvent.Refresh));
            
            movieCombo.setValue(null);
          }
        }
      }
      
    });
    moviePanel.add(movieCombo, formData);
     
    miniController.getBrowser().getGrid().setHeight(170);
    moviePanel.add(miniController.getBrowser().getGrid());
    
    return moviePanel;
  }
  
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.