package kz.cafe.admin;

import java.util.*;
import kz.cafe.admin.constants.AccessConstants.EditMode;
import kz.cafe.admin.panel_extensions.*;
import kz.cafe.admin.panels.*;
import kz.cafe.admin.panels.model.*;
import kz.cafe.db.*;
import kz.cafe.db.model.*;

public class TabPhones extends AbstractTab{
   private static final long serialVersionUID = 6724021400906062671L;







   public TabPhones(AdminMain application, Set<EditMode> setMode){
      super(application, setMode);
   }

   
   
   
   @Override
   public DBListPanel<MPhone> build(){
      CustomDescriptor dscr = new CustomDescriptor();

      CustomField field = new CustomField();
      field.visible = false;
      field.search.mode = CustomField.Search.SEARCH_MODES.NONE;
      field.name = "ID";
      field.db = "ID";
      field.isEditable = false;
      field.style.width = 50;
      field.isSortable = true;
      field.search.row = 0;
      dscr.addField(field);



      CustomFixedComboField ccf = new CustomFixedComboField();
      ccf.visible = true;
      ccf.name = "Город";
      ccf.db = "city";
      ccf.isEditable = true;
      ccf.style.width = 150;
      ccf.isMust = true;
      ccf.search.row = 0;
      dscr.addField(ccf);






      field = new CustomField();
      field.visible = true;
      field.name = "Название";
      field.db = "name";
      field.isEditable = true;
      field.style.width = 200;
      field.isMust = true;
      field.search.mode = CustomField.Search.SEARCH_MODES.LOCALIZED_STRING;
      dscr.addField(field);





      field = new CustomField();
      field.visible = true;
      field.name = "Телефон";
      field.db = "phone";
      field.isEditable = true;
      field.style.width = 200;
      field.isMust = true;
      field.search.mode = CustomField.Search.SEARCH_MODES.STRING;
      dscr.addField(field);





      field = new CustomField();
      field.visible = true;
      field.name = "Описание";
      field.db = "description";
      field.isEditable = true;
      field.style.width = 0;
      field.search.mode = CustomField.Search.SEARCH_MODES.LOCALIZED_STRING;
      field.search.row = 0;
      dscr.addField(field);




      CustomImageField fieldLogo = new CustomImageField();
      fieldLogo.visible = false;
      fieldLogo.name = "Изображение";
      fieldLogo.db = "image";
      fieldLogo.isEditable = true;
      fieldLogo.style.width = 25;
      fieldLogo.style.height = 25;
      fieldLogo.isImageInTable = false;
      dscr.addField(fieldLogo);






      CustomDateField dateField = new CustomDateField();
      dateField.visible = true;
      dateField.name = "Создан";
      dateField.db = "created";
      dateField.isEditable = false;
      dateField.style.width = 120;
      dateField.isSortable = true;
      dateField.search.mode = CustomField.Search.SEARCH_MODES.DATE_RANGE;
      dateField.search.row = 2;
      dscr.addField(dateField);





      dateField = new CustomDateField();
      dateField.visible = true;
      dateField.name = "Обновлен";
      dateField.db = "updated";
      dateField.isEditable = false;
      dateField.style.width = 120;
      dateField.isSortable = true;
      dateField.search.mode = CustomField.Search.SEARCH_MODES.DATE_RANGE;
      dateField.search.row = 2;
      dscr.addField(dateField);







      field = new CustomField();
      field.visible = true;
      field.name = "Опубликовано";
      field.db = "published";
      field.isEditable = true;
      field.style.width = 40;
      field.isSortable = true;
      field.search.mode = CustomField.Search.SEARCH_MODES.BOOLEAN_ONLY_TRUE;
      field.search.row = 0;
      dscr.addField(field);
      
      
      
      field = new CustomField();
      field.visible = true;
      field.search.mode = CustomField.Search.SEARCH_MODES.INTEGER;
      field.name = "Порядок";
      field.db = "order";
      field.isEditable = true;
      field.style.width = 50;
      field.isSortable = true;
      field.style.expandable = false;
      field.search.row = 0;
      dscr.addField(field);
      


      Constraint constraint = new Constraint();

//      if(application.isAdmin){
//      }
//      else{
//         constraint.criteria.add(new Constraint.Criterion(true, MUser.F_OWNER_ID, application.UID));
//      }



      DBListPanel<MPhone> panel = new DBListPanel<MPhone>(application,
                                          MPhone.class,
                                          dscr,
                                          Dimension.getFull(application),
                                          setMode,
                                          constraint);
      panel.addPanel(new ExtraPanelImageUploader(panel, fieldLogo), false);
      panel.addPanel(new ExtraPanelImageViewer(panel, fieldLogo), true);


      return panel;
   }



   
   
   

   @Override
   public DBSingle build(int ID){
      // TODO Auto-generated method stub
      return null;
   }
}

