Package com.gadglet.gadgets.personalNotes.client

Source Code of com.gadglet.gadgets.personalNotes.client.PersonalNotesProfileView$ViewPersonalNotes

/**
* Copyright (C)  Gadglet .
*
* This file is part of Gadglet
*
* Gadglet is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Gadglet is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Gadglet. If not, see <http://www.gnu.org/licenses/>.
*/

package com.gadglet.gadgets.personalNotes.client;

import com.gadglet.client.gwt.GadgetNativeUtils;
import com.gadglet.client.gwt.GadgetUtils;
import com.gadglet.client.gwt.core.GadgletQuery;
import com.gadglet.client.gwt.core.GadgletRequest;
import com.gadglet.client.gwt.core.GadgletResponse;
import com.gadglet.client.gwt.ui.DebugDialogBox;
import com.gadglet.client.gwt.ui.ProfileViewMainPanel;
import com.gadglet.client.gwt.ui.SimpleDialogBox;
import com.gadglet.gadgets.personalNotes.shared.Params;
import com.gadglet.params.ReqActionTypes;
import com.gadglet.params.ReqTypes;
import com.gadglet.params.SortTypes;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.gadgets.client.ContentSection;
import com.google.gwt.gadgets.client.Gadget.ContentType;
import com.google.gwt.gadgets.client.Gadget.InjectContent;
import com.google.gwt.gadgets.client.PreferencesFeature;
import com.google.gwt.gadgets.client.PreferencesProvider;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;

/**
* The Gadget Profile view
* <br>
* This view is used in Gmail Side bar and enables to :
* <li> view items
* <li> Navigate to Canvas view
*
*/
@InjectContent(files = "home.html")
@ContentType(type = "html", views = {"profile"})
public class PersonalNotesProfileView extends ContentSection<PersonalNotesGadget>{

 
  private DebugDialogBox debug = null;

  final GadgletQuery viewPersonalNotesQry = new GadgletQuery(
      ReqTypes.MINGLET);
 
  final ViewPersonalNotes viewPersonalNotesRequest = new ViewPersonalNotes(
      viewPersonalNotesQry);
 
 
   
  final Grid results = new Grid();
  protected final HorizontalPanel paging = new HorizontalPanel();
 
 
  final Button prevButton = new Button();
  final Button nextButton = new Button();
  final PreferencesFeature  prefsUtils = PreferencesProvider.get();
  final SimpleDialogBox serverMessage = SimpleDialogBox.getMesseageDialogBox();
 
 

  @Override
  public  void init(PersonalNotesGadget gadget ) {
     
 
       
    Image expand = new Image(GadgetUtils.getIconURL("expand",
        null, false));
    expand.setTitle(prefsUtils.getMsg("gadgetLabelgadgetLabelExpand"));
    expand.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
     
        try {
          GadgetNativeUtils.requestNavigateToCanvas("");
        } catch (Exception e) {
          serverMessage.showError( e.getMessage());
        }
       
      }
    });
   
    debug = DebugDialogBox.getErrorNotifier();
       
    prevButton.setText(prefsUtils.getMsg("gadgetLabelPrevious"));
    nextButton.setText(prefsUtils.getMsg("gadgetLabelNext"));
   
    final ProfileViewMainPanel mainPanel = new ProfileViewMainPanel();
   
    mainPanel.getHeader().add(expand);
   
       
    final VerticalPanel priority= new VerticalPanel();
    final RadioButton highPriority = new RadioButton("priorityFilter",prefsUtils.getMsg("gadgetLabelHigh"));
    final RadioButton medPriority =  new RadioButton("priorityFilter",prefsUtils.getMsg("gadgetLabelMedium"));
    final RadioButton lowPriority =  new RadioButton("priorityFilter",prefsUtils.getMsg("gadgetLabelLow"));
    lowPriority.setValue(true);
    priority.add(highPriority);
    priority.add(medPriority);
    priority.add(lowPriority);
   
     
    final PrioritySelection selection = new PrioritySelection(viewPersonalNotesQry,viewPersonalNotesRequest);
       
    mainPanel.add(selection.getPanel());
       
    mainPanel.add(results);
   
    RootPanel.get().add(mainPanel.getGadgetPanel());
         
   
    viewPersonalNotesQry.setRequestAction(ReqActionTypes.VIEW);
    viewPersonalNotesQry.addSortBy("gadgetCreation", SortTypes.ASC);
    viewPersonalNotesQry
        .setReturnField("personalNotesMessage,gadgetCreation");
    viewPersonalNotesQry.setStartItemsFrom(0);
    viewPersonalNotesQry.setItemsNum(5);
    viewPersonalNotesRequest.makeRequest();
   
    prevButton.setVisible(false);
    prevButton.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        viewPersonalNotesQry.setStartItemsFrom(viewPersonalNotesQry
            .getStartFrom()
            - viewPersonalNotesQry.getItemNum());
        viewPersonalNotesRequest.makeRequest();

      }

    });
    paging.add(prevButton);

   
    nextButton.setVisible(false);
    nextButton.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        viewPersonalNotesQry.setStartItemsFrom(viewPersonalNotesQry
            .getStartFrom()
            + viewPersonalNotesQry.getItemNum());
        viewPersonalNotesRequest.makeRequest();

      }

    });
    paging.add(nextButton);


  }

  public class ViewPersonalNotes extends GadgletRequest {
    GadgletResponse jResponse;
    ViewPersonalNotes(GadgletQuery req) {
      super(req);
 
    }

    /*
     * Process the results and add to UI
     */
    @Override
    protected void processResults(GadgletResponse data) {
       jResponse = data;
      
      if (jResponse.isSuccessful()) {
       
        results.resize(1, 4);
        results.clear();
        int index;
        for (index = 0; index < jResponse.getRootItemsNum(); index++){
       
           
          results.setWidget(index, 0, new Image(GadgetUtils.getGadgetIconURL(jResponse.getStringItemValue(
              Params.PRIORITY.getParamName(), index), null, false)));
          results.setWidget(index, 1, new HTML(jResponse.getStringItemValue(
              Params.MESSAGE.getParamName(), index)));
         
          results.resize(index+3, 4);
         
        }

        if (viewPersonalNotesQry.getStartFrom() > 0)
          prevButton.setVisible(true);
        else
          prevButton.setVisible(false);

        if (jResponse.hasMoreItems())
          nextButton.setVisible(true);
        else
          nextButton.setVisible(false);
       
        results.setWidget(index, 0, paging);
     
      }

      else {
        debug.showError(1, jResponse.getError());
      }

    }
  }
 
}
TOP

Related Classes of com.gadglet.gadgets.personalNotes.client.PersonalNotesProfileView$ViewPersonalNotes

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.