Package com.gadglet.gadgets.discussions.client

Source Code of com.gadglet.gadgets.discussions.client.DiscussionsHomeView$ChangePersonalNotes

/**
* 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.discussions.client;

import java.util.HashMap;

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.ActionLabel;
import com.gadglet.client.gwt.ui.ContentText;
import com.gadglet.client.gwt.ui.DebugDialogBox;
import com.gadglet.client.gwt.ui.HomeViewMainPanel;
import com.gadglet.client.gwt.ui.SimpleDialogBox;
import com.gadglet.client.gwt.ui.UIUtils;
import com.gadglet.gadgets.discussions.shared.Params;
import com.gadglet.params.ProfileFields;
import com.gadglet.params.ReqActionTypes;
import com.gadglet.params.ReqTypes;
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.DisclosurePanel;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.VerticalPanel;

@InjectContent(files = "home.html")
@ContentType(type = "html", views = { "home", "default" })
public class DiscussionsHomeView extends ContentSection<DiscussionsGadget> {

  private DebugDialogBox debug = null;
  /**
   *  Query object use to create a request for personal notes
   *  The definition "ReqTypes.BIZLET_SIGNED" will create requests to the
   *  Bizlets Servlet domainSignedRequest
   *  @see com.gadglet.servlets.domainSignedRequest
   */
  final GadgletQuery viewDiscussionsQry = new GadgletQuery(ReqTypes.BIZLET_SIGNED);
 
  /**
   * Request object used to send and a request to the gadget server
   * and process the results
   */
  final ViewBookMarks viewDiscussionsRequest = new ViewBookMarks(
      viewDiscussionsQry);


  /**
   * Query object used to build "add",  and "delete" requests
   * The definition "ReqTypes.BIZLET_SIGNED" will create requests to the
   *  Bizlets Servlet
   */
  final GadgletQuery changeDiscussionQry = new GadgletQuery(
      ReqTypes.BIZLET_SIGNED);
 
  final GadgletRequest changeDiscussionRequest = new ChangePersonalNotes(
      changeDiscussionQry);

  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(DiscussionsGadget gadget) {

    debug = DebugDialogBox.getErrorNotifier();

    prevButton.setText(prefsUtils.getMsg("gadgetLabelPrevious"));
    nextButton.setText(prefsUtils.getMsg("gadgetLabelNext"));
   
    try {
      GadgetNativeUtils.setTitle(prefsUtils.getMsg("gadgetTitleDiscussions"));
    } catch (Exception e) {

    }
   

    final HomeViewMainPanel mainPanel = new HomeViewMainPanel();

    final HorizontalPanel addItemPanel = new HorizontalPanel();
    final DisclosurePanel addDisclosurePanel = new DisclosurePanel();
   
   
    final VerticalPanel bookMark = new VerticalPanel();
   
    final TextArea DiscussionText = new TextArea();
    DiscussionText.setWidth("200px");
 
   
    bookMark.add(DiscussionText);
 

    final Button saveButton = new Button(
        prefsUtils.getMsg("gadgetLabelSave"));


    addItemPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
    addItemPanel.add(bookMark);
   
    //addItemPanel.add(new HTML("&nbsp;"));
    //addItemPanel.add(bookMarkType);
 
    addItemPanel.add(new HTML("&nbsp;"));
    addItemPanel.add(saveButton);

    addDisclosurePanel.add(addItemPanel);
   
    ActionLabel add = new ActionLabel(prefsUtils.getMsg("gadgetLabelAdd"));
    add.setTitle(prefsUtils.getMsg("gadgetLabelAdd"));
    add.setStyleName("gadglet-ActionLabel");
   
    addDisclosurePanel.setHeader(add);

    mainPanel.add(addDisclosurePanel);

    mainPanel.add(results);

    RootPanel.get().add(mainPanel.getGadgetPanel());

    saveButton.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        changeDiscussionQry.setRequestAction(ReqActionTypes.ADD);
        changeDiscussionQry.clearParamList();
       
       
        changeDiscussionQry.addParam(Params.DISCUSSION_TEXT.getParamName(),
            DiscussionText.getValue());
     
        changeDiscussionRequest.makeRequest();
        DiscussionText.setValue("");
     

      }
    });

    viewDiscussionsQry.setRequestAction(ReqActionTypes.VIEW);
   
    viewDiscussionsQry.setStartItemsFrom(0);
    viewDiscussionsQry.setItemsNum(15);
    viewDiscussionsRequest.makeRequest();

    prevButton.setVisible(false);
    prevButton.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
        viewDiscussionsQry.setStartItemsFrom(viewDiscussionsQry
            .getStartFrom() - viewDiscussionsQry.getItemNum());
        viewDiscussionsRequest.makeRequest();

      }

    });
    paging.add(prevButton);

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

      }

    });
    paging.add(nextButton);

  }

  public class ViewBookMarks extends GadgletRequest {
    GadgletResponse jResponse;

    ViewBookMarks(GadgletQuery req) {
      super(req);

    }

    @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++) {

       
         
          ContentText text = new ContentText(data.getStringItemValue(
              Params.DISCUSSION_TEXT.getParamName(), index));
         
          final String discussionId = jResponse.getItemKeyValue(index);
         
          results.setWidget(
              index,
              0,text);
         
          final String title = data.getStringItemValue(
              Params.DISCUSSION_TEXT.getParamName(), index);
         
          final ActionLabel viewLabel = new ActionLabel(prefsUtils.getMsg("gadgetLabelView"));

          viewLabel.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
             
             
              HashMap <String,String> params = new HashMap <String,String> ();
              params.put(Params.DISCUSSION_ID.getParamName(), discussionId);
             
              params.put(Params.DISCUSSION_TEXT.getParamName(), title);
             
              GadgetNativeUtils.requestNavigateToCanvas(GadgetUtils.createJsonParamList(params));
             
             
             
            }

          });
         
          results.setWidget(
              index,
              1,viewLabel);
         

          if (!data.isDeletePermitted(index)) {

            String nick = data.getStringItemValue(ProfileFields.PROFILE_NICKNAME.getParamName(),index);
           
            HorizontalPanel profile = new HorizontalPanel();
            if(nick!=null){
              profile.add(new HTML(prefsUtils.getMsg("gadgetLabelSharedBy")+":"));
              profile.add(UIUtils.getSpace());
              profile.add(new Label(nick));

            }
                     
            results.setWidget(index, 2, profile);
           
          }
          results.resize(index + 3, 4);

        }

        if (viewDiscussionsQry.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());
      }

    }
  }

  public class ChangePersonalNotes extends GadgletRequest {
    ChangePersonalNotes(GadgletQuery req) {
      super(req);
    }

    @Override
    protected void processResults(GadgletResponse data) {
      GadgletResponse jResponse = data;

      if (jResponse.isSuccessful()) {
        // reffresh
        viewDiscussionsRequest.makeRequest();
      } else {

        serverMessage
            .showError(prefsUtils.getMsg(jResponse.getError()));
      }

    }
  }

}
TOP

Related Classes of com.gadglet.gadgets.discussions.client.DiscussionsHomeView$ChangePersonalNotes

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.