com.dimdim.conference.ui.layout2.client.ResourceRoster.java Source code

Java tutorial

Introduction

Here is the source code for com.dimdim.conference.ui.layout2.client.ResourceRoster.java

Source

/*
 **************************************************************************
 *                                                                        *
 *               DDDDD   iii             DDDDD   iii                      *
 *               DD  DD      mm mm mmmm  DD  DD      mm mm mmmm           *
 *               DD   DD iii mmm  mm  mm DD   DD iii mmm  mm  mm          *
 *               DD   DD iii mmm  mm  mm DD   DD iii mmm  mm  mm          *
 *               DDDDDD  iii mmm  mm  mm DDDDDD  iii mmm  mm  mm          *
 *                                                                        *
 **************************************************************************
 **************************************************************************
 *                                                                        *
 * Part of the DimDim V 1.0 Codebase (http://www.dimdim.com)             *
 *                                                                        *
 * Copyright (c) 2006 Communiva Inc. All Rights Reserved.                 *
 *                                                                        *
 *                                                                        *
 * This code is licensed under the DimDim License                         *
 * For details please visit http://www.dimdim.com/license                 *
 *                                                                        *
 **************************************************************************
 */

package com.dimdim.conference.ui.layout2.client;

import com.dimdim.conference.ui.common.client.UIConstants;
import com.dimdim.conference.ui.common.client.UIGlobals;
import com.dimdim.conference.ui.common.client.layout.DefaultCommonDialog;
import com.dimdim.conference.ui.common.client.list.ListPanel;
import com.dimdim.conference.ui.common.client.list.SortedListPanel;
import com.dimdim.conference.ui.common.client.resource.ResourceList;
import com.dimdim.conference.ui.common.client.resource.ResourceListPropertiesProvider;
import com.dimdim.conference.ui.common.client.user.UserCallbacks;
import com.dimdim.conference.ui.json.client.UIResourceObject;
import com.dimdim.conference.ui.json.client.UIRosterEntry;
import com.dimdim.conference.ui.managers.client.resource.PresenterResourceList;
import com.dimdim.conference.ui.managers.client.resource.ResourceListControlsProvider;
import com.dimdim.conference.ui.managers.client.resource.ResourceManager;
import com.dimdim.conference.ui.model.client.ClientModel;
import com.dimdim.conference.ui.model.client.ConferenceGlobals;
import com.dimdim.conference.ui.resources.client.EnterURLDialog;
import com.dimdim.conference.ui.resources.client.ResourceControlDialog;
import com.dimdim.conference.ui.resources.client.ResourceTypeList;
import com.dimdim.conference.ui.resources.client.ResourceTypeListPanel;
import com.dimdim.conference.ui.resources.client.ResourceTypePanelsControlsProvider;
import com.dimdim.conference.ui.resources.client.SelectFileDialogue;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.PopupListener;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.Widget;

/**
 * @author Jayant Pandit
 * @email Jayant.Pandit@communiva.com
 * 
 */

public class ResourceRoster extends CommonRoster implements ResourceTypePanelsControlsProvider {
    protected ResourceManager resourceManager;
    protected ResourceList resourceList;
    protected ResourceTypeList resourceTypeList;
    protected ResourceTypeListPanel resourceTypeListPanel;

    protected ResourceListControlsProvider resourceListControlsProvider;
    protected ResourceListPropertiesProvider resourceListPropertiesProvider;
    protected ClickListener shareLinkClickListener = null;
    protected ClickListener allLinkClickListener = null;

    protected UserCallbacks ucb = null;

    public ResourceRoster(UIRosterEntry currentUser, UserCallbacks ucb) {
        super(currentUser);
        this.ucb = ucb;
        this.resourceManager = new ResourceManager(currentUser, ucb);
        this.resourceListControlsProvider = new ResourceListControlsProvider(currentUser, resourceManager);
        this.resourceListPropertiesProvider = new ResourceListPropertiesProvider();
        this.resourceList = new PresenterResourceList(this.resourceListControlsProvider,
                this.resourceListPropertiesProvider, this.resourceManager);
        this.resourceTypeList = new ResourceTypeList(this.resourceList);

        this.resourceManager.getSharingController().setResourceList(this.resourceList);

        this.listPanel = new SortedListPanel(this.resourceList);

        String allLink = UIGlobals
                .getListPanelAllLinkLabel(ClientModel.getClientModel().getRosterModel().getCurrentUser());
        allLinkClickListener = this.getListPanelRhsLinkClickListener();

        String shareLink = UIGlobals
                .getListPanelShareLinkLabel(ClientModel.getClientModel().getRosterModel().getCurrentUser());
        shareLinkClickListener = this.getListPanelLhsLinkClickListener();

        super.createLinks(shareLink, ConferenceGlobals.getTooltip("share_resource_link"), shareLinkClickListener,
                allLink, ConferenceGlobals.getTooltip("manage_resource_link"), allLinkClickListener);

        this.resourceTypeListPanel = new ResourceTypeListPanel(this.resourceTypeList, this);

    }

    public void setCurrentUser(UIRosterEntry currentUser) {
        this.me = currentUser;
    }

    public ClickListener getAllLinkClickListener() {
        return this.allLinkClickListener;
    }

    public ClickListener getListPanelRhsLinkClickListener() {
        return new ClickListener() {
            public void onClick(Widget sender) {
                if (resourceList.getListSize() == 0) {
                    DefaultCommonDialog dlg = DefaultCommonDialog.createDialog("Show Items", "There are no items");
                    dlg.drawDialog();
                } else {
                    ResourceControlDialog rcd = new ResourceControlDialog(resourceManager, resourceList,
                            me.isHost());
                    rcd.drawDialog();
                }
            }
        };
    }

    public ClickListener getListPanelLhsLinkClickListener() {
        return new ClickListener() {
            public void onClick(Widget sender) {
                if (UIGlobals.isActivePresenter(me)) {
                    SelectFileDialogue safd = new SelectFileDialogue(resourceManager.getSharingController());

                    resourceManager.getSharingController().showFileSelector(safd);
                    safd.addPopupListener(new PopupListener() {
                        public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
                            ClientModel.getClientModel().getRosterModel().resetSessionTimeout();
                            resourceManager.getSharingController().showFileSelector(null);
                        }
                    });
                } else {
                    //                Window.alert("sorry nothing to do here");
                }
            }
        };
    }

    public ClickListener getShareCobClickListener() {
        return new ClickListener() {
            public void onClick(Widget sender) {
                if (UIGlobals.isActivePresenter(me)) {
                    EnterURLDialog urlDialog = new EnterURLDialog(resourceManager.getSharingController());
                    urlDialog.drawDialog();
                } else {
                    Window.alert("sorry nothing to do here");
                }
            }
        };
    }

    public ResourceManager getResourceManager() {
        return this.resourceManager;
    }

    public ResourceList getResourceList() {
        return this.resourceList;
    }

    public ListPanel getResourceListPanel() {
        return this.listPanel;
    }

    public ClickListener getShareLinkClickListener() {
        return shareLinkClickListener;
    }

    public ResourceTypeListPanel getResourceTypeListPanel() {
        return resourceTypeListPanel;
    }

    public ResourceTypePanelsControlsProvider getResourceTypePanelsControlsProvider() {
        return this;
    }

    //   public ClickListener getImage5ClickListner(String typeName)
    //   {
    //      Window.alert("Creating popup panel for: "+typeName);
    //      ClickListener listener = null;
    //      ResourceTypeListEntry typeEntry = this.resourceTypeList.findResourceTypeListEntry(typeName);
    //      if (typeEntry != null && typeEntry.getSlot5Image() != null)
    //      {
    //         listener =   new ClickListener()
    //         {
    //            public   void   onClick(Widget sender)
    //            {
    //               int left = sender.getAbsoluteLeft()+20;
    //               int top = sender.getAbsoluteTop()+20;
    //               ResourceTypeListEntryPopupPanel rtlepp = new
    //                  ResourceTypeListEntryPopupPanel(resourceList,
    //                        getResourceTypePanelsControlsProvider());
    //               DmGlassPanel2 dgp = new DmGlassPanel2(rtlepp);
    //               dgp.show(left, top);
    //               rtlepp.popupVisible();
    //            }
    //         };
    //      }
    //      return listener;
    //   }
    public ClickListener getNameLabelClickListener(final UIResourceObject resource) {
        if (resource != null) {
            return new ClickListener() {
                public void onClick(Widget sender) {
                    resourceManager.getSharingController().toggleSharing(resource);
                }
            };
        } else {
            return null;
        }
    }

    public ClickListener getTypePopupHeaderClickListener(String typeName) {
        //      Window.alert("Getting popup header click listener: "+typeName);
        if (typeName.equals(UIConstants.RESOURCE_TYPE_PRESENTATION)
                || typeName.equals(UIConstants.RESOURCE_TYPE_PDF)) {
            return this.shareLinkClickListener;
        } else if (typeName.equals(UIConstants.RESOURCE_TYPE_COBROWSE)) {
            return this.getShareCobClickListener();
        } else {
            return null;
        }
    }

    public ClickListener getTypePopupFooterClickListener(final String typeName) {
        //      Window.alert("Getting popup footer click listener: "+typeName);
        if (typeName.equals(UIConstants.RESOURCE_TYPE_PRESENTATION)
                || typeName.equals(UIConstants.RESOURCE_TYPE_PDF)
                || typeName.equals(UIConstants.RESOURCE_TYPE_COBROWSE)) {
            //return   this.allLinkClickListener;
            return new ClickListener() {
                public void onClick(Widget sender) {
                    if (resourceList.getListSize() == 0) {
                        DefaultCommonDialog dlg = DefaultCommonDialog.createDialog("Show Items",
                                "There are no items");
                        dlg.drawDialog();
                    } else {
                        ResourceControlDialog rcd = new ResourceControlDialog(resourceManager, resourceList,
                                me.isHost(), typeName);
                        rcd.drawDialog();
                    }
                }
            };
        } else {
            return null;
        }
    }
}