[gradebook2-dev] please help with this code problem

Thomas Amsler tpamsler at ucdavis.edu
Fri May 28 08:53:32 PDT 2010


Kim,

You could try to use the HtmlContainer:

http://www.extjs.com/deploy/gxtdocs/com/extjs/gxt/ui/client/widget/HtmlContainer.html

Best,
-- Thomas

On Fri, May 28, 2010 at 7:11 AM, Kim Huang <kimhuang at rci.rutgers.edu> wrote:

> Thomas,
> Thanks for your hint. It does help a lot!
>
> After studying the code(GradeSubmissionDialog.java, web.xml,
> sakai.gradebook2.dispatch-servelt.xml and
> GradebookFinalSubmissionControler.java)Now I understand how to redirect a
> request to a jsp page. I displayed the content from a simple .jsp
> page(basically it is a helloworld.jsp kind of jsp page) when the user click
> on submitting final grade.
>
> I used PopupPanel to display the content from jsp, the problem is it
> doesn't cover the background, please see the attachment.
>
> Do you have any suggestion on the widget I should use to display the jsp
> content.
>
> Thanks, have a great weekend !
>
> -Kim
>
> Thomas Amsler wrote:
>
>> You should be able to look at the current GradeSubmissionDialog.java where
>> we make a server side call using RequestBuilder in the "onButtonPressed"
>> method. You would just point at the JSP url and pass parameters via
>> GET/POST.
>>
>> -- Thomas
>>
>>
>> On Wed, May 26, 2010 at 12:59 PM, Kim Huang <kimhuang at rci.rutgers.edu<mailto:
>> kimhuang at rci.rutgers.edu>> wrote:
>>
>>    Thomas,
>>    The idea about creating  a jsp page to handle the final submission
>>    to registrar is because, in the currrent  RU gradebook, we have
>>    the existing jsp page and the java bean file to hand the
>>    submission. I am thinking of utilizing most  of existing code and
>>    I will call gb2-api to rewrite the backbean. And also I will keep
>>    all the local changes in a one or two files and I don't need to do
>>    too much local merge when we adopt the new release of gb2 each time.
>>
>>    My biggest problem is I don't know how to construct a URL from
>>    client site to send request to my jsp file.
>>
>>    Initially, I want to rewrite the whole display part using GWT
>>    widgets, etc , but I am under pressure to get this part done ASAP.
>>    So probably jsp page approach is faster..
>>
>>    Thanks,
>>
>>    -Kim
>>
>>    Kim Huang wrote:
>>
>>        Thomas,
>>        Thanks for your reply. I finally found out the problem. I am
>>        fine with it now.
>>        Do you have any idea about how to call jsp file from gradebook2 ?
>>
>>        Thanks, Talk to you soon,
>>
>>        -Kim
>>        Thomas Amsler wrote:
>>
>>            I just got back from a conference the other day. I am
>>            sorry for the delay on this. It will probably take a
>>            couple of days for me to catch up on things. Do you still
>>            need help with this?
>>            -- Thomas
>>
>>            On Fri, May 21, 2010 at 12:30 PM, Kim Huang
>>            <kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>            <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>> wrote:
>>
>>               Thomas,
>>
>>               I made some code change to InstructorView.java, I've
>>            attached it
>>               with this email. The problem is InstructorView won't
>>            show with the
>>               code change. I show the "initializing message..", then
>>            blank,
>>               nothing shows.
>>               Please search on RU change to see the change that I
>>            made. The
>>               function- isRosterAttached() never get called, since
>>            the debug
>>               message inside of isRosterAttached() doesn't show in
>>            the log file.
>>               I also tried the other dialog approach, but I don't
>>            know how to
>>               display the panel inside of the dialog.java class.  I
>>            thought that
>>               hiding or showing the menu item in InstructorView is
>>            easier, but
>>               with my code change, nothing shows. :<
>>
>>               Thanks,
>>               Have a great weekend.
>>
>>               -Kim
>>
>>               Thomas Amsler wrote:
>>
>>                   Kim,
>>
>>                   You can reach me at: (530) 754-4984 of if you
>>            prefer, we can
>>                   use Skype: tamsler
>>
>>                   Best,
>>                   -- Thomas
>>
>>                   On Sun, May 16, 2010 at 12:29 PM, Kim Huang
>>                   <kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>            <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>>> wrote:
>>
>>                      Thomas,
>>
>>                      Thank you for your prompt reply.
>>                      Let's do it on Monday 05/17 1:00pm -1:30pm. I
>>            will come a
>>                   list of
>>                      questions before the conference.
>>                      I can call you, please let me know your phone
>>            number.
>>
>>                      Best Regards,
>>                      -Kim
>>
>>                      Thomas Amsler wrote:
>>
>>                          Kim,
>>
>>                          Yes we can setup a conference call. Next
>>            week, I won't have
>>                          much time for a conference calls since I am
>>            attending
>>                   Google
>>                          I/O. But I am available:
>>
>>                          - This afternoon
>>                          - Monday 05/17 1:00PM - 1:30 PM PST
>>                          - Friday 05/21 after 1:00PM
>>                          - Sometime in the week of 05/24 - 05/28
>>                          Please let me know.
>>
>>                          Best,
>>                          -- Thomas
>>
>>                          On Fri, May 14, 2010 at 6:31 AM, Kim Huang
>>                          <kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>>
>>                          <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>
>>                          <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>
>>                   <mailto:kimhuang at rci.rutgers.edu
>>            <mailto:kimhuang at rci.rutgers.edu>>>>> wrote:
>>
>>                             Thomas,
>>
>>                             Can I setup a conference call with you or
>>            other
>>                   programmer in
>>                             gradebook2 group to discuss the problem I
>>            have when
>>                   I develop a
>>                              local implementation of submission to
>>            registrar? I
>>                   am very
>>                          new to
>>                             gxt, gwt.
>>
>>                             Thanks,
>>
>>                             -Kim
>>
>>
>>
>>
>>
>>
>>
>>  /**********************************************************************************
>>
>>                *
>>                * $Id:$
>>                *
>>
>> ***********************************************************************************
>>
>>                *
>>                * Copyright (c) 2008, 2009 The Regents of the
>>            University of
>>               California
>>                *
>>                * Licensed under the
>>                * Educational Community License, Version 2.0 (the
>>            "License"); you may
>>                * not use this file except in compliance with the
>>            License. You may
>>                * obtain a copy of the License at
>>                *
>>                * http://www.osedu.org/licenses/ECL-2.0
>>                *
>>                * Unless required by applicable law or agreed to in
>>            writing,
>>                * software distributed under the License is
>>            distributed on an "AS IS"
>>                * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
>>            either express
>>                * or implied. See the License for the specific
>>            language governing
>>                * permissions and limitations under the License.
>>                *
>>
>> **********************************************************************************/
>>
>>
>>               package org.sakaiproject.gradebook.gwt.client.gxt.view;
>>
>>               import java.util.ArrayList;
>>               import java.util.List;
>>               import java.util.EnumSet;
>>
>>               import org.sakaiproject.gradebook.gwt.client.AppConstants;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.DataTypeConversionUtil;
>>               //RU change
>>               import org.sakaiproject.gradebook.gwt.client.RestBuilder;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.RestBuilder.Method;
>>               import org.sakaiproject.gradebook.gwt.client.RestCallback;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.gxt.JsonTranslater;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.event.NotificationEvent;
>>               //end of RU
>>               import org.sakaiproject.gradebook.gwt.client.ExportDetails;
>>               import org.sakaiproject.gradebook.gwt.client.I18nConstants;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.ExportDetails.ExportType;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.action.UserEntityUpdateAction;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.gxt.a11y.AriaButton;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.gxt.a11y.AriaMenu;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.gxt.a11y.AriaMenuItem;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.event.GradebookEvents;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.gxt.event.ItemUpdate;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.BorderLayoutPanel;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.GradeScalePanel;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.HistoryPanel;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.ItemFormPanel;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.LearnerSummaryPanel;
>>
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.PermissionsPanel;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.StatisticsPanel;
>>               //RU change
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.gxt.view.panel.SubmitToRegistrarPanel;
>>
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.model.key.RUVerificationKey;
>>               import com.google.gwt.core.client.GWT;
>>               import com.google.gwt.http.client.Request;
>>               import com.google.gwt.http.client.RequestBuilder;
>>               import com.google.gwt.http.client.RequestCallback;
>>               import com.google.gwt.http.client.RequestException;
>>               import com.google.gwt.http.client.Response;
>>               //end of RU change
>>               import
>>            org.sakaiproject.gradebook.gwt.client.model.ApplicationSetup;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.model.Gradebook;
>>               import org.sakaiproject.gradebook.gwt.client.model.Item;
>>               import
>>            org.sakaiproject.gradebook.gwt.client.model.type.CategoryType;
>>               import
>>
>>  org.sakaiproject.gradebook.gwt.client.resource.GradebookResources;
>>
>>               import com.extjs.gxt.ui.client.Registry;
>>               import com.extjs.gxt.ui.client.Style.LayoutRegion;
>>               import com.extjs.gxt.ui.client.data.ModelData;
>>               import com.extjs.gxt.ui.client.event.ButtonEvent;
>>               import com.extjs.gxt.ui.client.event.Events;
>>               import com.extjs.gxt.ui.client.event.Listener;
>>               import com.extjs.gxt.ui.client.event.MenuEvent;
>>               import com.extjs.gxt.ui.client.event.SelectionListener;
>>               import com.extjs.gxt.ui.client.mvc.Controller;
>>               import com.extjs.gxt.ui.client.mvc.Dispatcher;
>>               import com.extjs.gxt.ui.client.util.Margins;
>>               import com.extjs.gxt.ui.client.widget.ContentPanel;
>>               import com.extjs.gxt.ui.client.widget.LayoutContainer;
>>               import com.extjs.gxt.ui.client.widget.form.LabelField;
>>               import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
>>               import
>>            com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
>>               import com.extjs.gxt.ui.client.widget.layout.CardLayout;
>>               import com.extjs.gxt.ui.client.widget.menu.Menu;
>>               import com.extjs.gxt.ui.client.widget.menu.MenuItem;
>>               import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
>>               import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
>>               import com.google.gwt.user.client.Element;
>>               import com.google.gwt.user.client.Window;
>>               import
>>            com.google.gwt.user.client.ui.AbstractImagePrototype;
>>
>>               public class InstructorView extends AppView {
>>
>>                      private static final String MENU_SELECTOR_FLAG =
>>               "menuSelector";
>>                      public enum MenuSelector { ADD_CATEGORY,
>>            ADD_ITEM, IMPORT,
>>               EXPORT, EXPORT_DATA, EXPORT_DATA_CSV, EXPORT_STRUCTURE,
>>               EXPORT_STRUCTURE_CSV, EXPORT_DATA_XLS,
>>            EXPORT_STRUCTURE_XLS,
>>               FINAL_GRADE, GRADE_SCALE, SETUP, HISTORY,
>>               GRADER_PERMISSION_SETTINGS, STATISTICS, SUBMIT_REGISTRAR };
>>
>>                      private TreeView treeView;
>>                      private MultigradeView multigradeView;
>>                      private SingleGradeView singleGradeView;
>>                      private PermissionsView permissionsView;
>>
>>                      private ContentPanel borderLayoutContainer;
>>                      private LayoutContainer centerLayoutContainer;
>>                      private ContentPanel eastLayoutContainer;
>>                      private BorderLayout borderLayout;
>>                      private CardLayout centerCardLayout;
>>                      private CardLayout eastCardLayout;
>>                      private LearnerSummaryPanel singleGradeContainer;
>>                      private GradeScalePanel gradeScalePanel;
>>                      private HistoryPanel historyPanel;
>>                      private StatisticsPanel statisticsPanel;
>>                      //RU change
>>                      private SubmitToRegistrarPanel
>>            submitToRegistrarPanel;
>>                      private boolean isCourseWRoster;
>>                      //end of RU
>>
>>                      private List<TabConfig> tabConfigurations;
>>
>>                      private Listener<MenuEvent> menuEventListener;
>>                      private SelectionListener<MenuEvent>
>>            menuSelectionListener;
>>                      private SelectionListener<ButtonEvent>
>>               toolBarSelectionListener;
>>
>>                      private ToolBar toolBar;
>>
>>                      private Menu fileMenu;
>>                      private Menu viewMenu;
>>                      private Menu editMenu;
>>
>>                      private MenuItem addCategoryMenuItem;
>>
>>                      private BorderLayoutData centerData;
>>                      private BorderLayoutData eastData;
>>                      private BorderLayoutData northData;
>>                      private BorderLayoutData westData;
>>
>>                      private GradebookResources resources;
>>                      private I18nConstants i18n;
>>                      private boolean isEditable;
>>
>>                      public InstructorView(Controller controller,
>>            TreeView treeView,
>>                                      MultigradeView multigradeView,
>>               SingleGradeView singleGradeView,
>>                                      PermissionsView permissionsView,
>>            boolean
>>               isEditable, final boolean isNewGradebook) {
>>                              super(controller);
>>                              this.isEditable = isEditable;
>>                              this.tabConfigurations = new
>>            ArrayList<TabConfig>();
>>                              this.treeView = treeView;
>>                              this.multigradeView = multigradeView;
>>                              this.singleGradeView = singleGradeView;
>>                              this.i18n = Registry.get(AppConstants.I18N);
>>                              this.permissionsView = permissionsView;
>>                              this.resources =
>>            Registry.get(AppConstants.RESOURCES);
>>
>>                              initListeners();
>>
>>                              toolBar = new ToolBar();
>>                              borderLayoutContainer = new
>>            BorderLayoutPanel();
>>
>> borderLayoutContainer.setId("borderLayoutContainer");
>>
>> borderLayoutContainer.setHeaderVisible(false);
>>
>> borderLayoutContainer.setTopComponent(toolBar);
>>
>>                              borderLayout = new BorderLayout();
>>
>> borderLayoutContainer.setLayout(borderLayout);
>>
>>                              centerData = new
>>            BorderLayoutData(LayoutRegion.CENTER);
>>                              centerData.setMinSize(100);
>>                              centerData.setMargins(new Margins(5, 0,
>>            5, 0));
>>
>>                              eastData = new
>>            BorderLayoutData(LayoutRegion.EAST,
>>               420);
>>                              eastData.setSplit(true);
>>                              eastData.setCollapsible(true);
>>                              eastData.setFloatable(false);
>>                              eastData.setMargins(new Margins(5));
>>                              eastData.setMaxSize(800);
>>                              eastData.setHidden(true);
>>
>>                              northData = new
>>               BorderLayoutData(LayoutRegion.NORTH, 50);
>>                              northData.setCollapsible(false);
>>                              northData.setHidden(true);
>>
>>                              westData = new
>>            BorderLayoutData(LayoutRegion.WEST,
>>               400, 100, 800);
>>                              westData.setSplit(true);
>>                              westData.setCollapsible(true);
>>                              westData.setMargins(new Margins(5));
>>
>>                              centerLayoutContainer = new
>>            LayoutContainer();
>>                              centerCardLayout = new CardLayout();
>>
>> centerLayoutContainer.setLayout(centerCardLayout);
>>
>>
>>  //centerLayoutContainer.add(multigradeView.getMultiGradeContentPanel());
>>
>> //centerLayoutContainer.add(treeView.getFormPanel());
>>
>>  //centerCardLayout.setActiveItem(multigradeView.getMultiGradeContentPanel());
>>
>>
>>                              eastLayoutContainer = new ContentPanel() {
>>                                      protected void onRender(Element
>>            parent, int
>>               index) {
>>                                              super.onRender(parent,
>>            index);
>>                                      }
>>                              };
>>
>>
>> eastLayoutContainer.setId("cardLayoutContainer");
>>                              eastLayoutContainer.setWidth(400);
>>                              eastLayoutContainer.setBorders(true);
>>                              eastLayoutContainer.setBodyBorder(true);
>>                              eastLayoutContainer.setFrame(true);
>>                              eastCardLayout = new CardLayout();
>>
>> eastLayoutContainer.setLayout(eastCardLayout);
>>
>>                              borderLayoutContainer.add(new
>>            LayoutContainer(),
>>               northData);
>>
>> borderLayoutContainer.add(treeView.getTreePanel(),
>>               westData);
>>
>> borderLayoutContainer.add(centerLayoutContainer,
>>               centerData);
>>
>> borderLayoutContainer.add(eastLayoutContainer,
>>               eastData);
>>
>>                              if (isEditable) {
>>                                      tabConfigurations.add(new
>>               TabConfig(AppConstants.TAB_SETUP, i18n.tabSetupHeader(),
>>               resources.application_edit(), true, MenuSelector.SETUP,
>>               i18n.editMenuGradebookSetupHeading()));
>>                                      tabConfigurations.add(new
>>               TabConfig(AppConstants.TAB_GRADESCALE,
>>            i18n.tabGradeScaleHeader(),
>>               resources.calculator_edit(), true,
>>            MenuSelector.GRADE_SCALE,
>>               i18n.editMenuGradescaleHeading()));
>>                                      tabConfigurations.add(new
>>               TabConfig(AppConstants.TAB_GRADER_PER_SET,
>>               i18n.tabGraderPermissionSettingsHeader(),
>>            resources.table_add(),
>>               true, MenuSelector.GRADER_PERMISSION_SETTINGS,
>>               i18n.editMenuGraderPermissionsHeading()));
>>                                      tabConfigurations.add(new
>>               TabConfig(AppConstants.TAB_HISTORY,
>>            i18n.tabHistoryHeader(),
>>               resources.calendar(), true, MenuSelector.HISTORY,
>>               i18n.viewMenuHistoryHeading()));
>>                              }
>>                              tabConfigurations.add(new
>>               TabConfig(AppConstants.TAB_STATISTICS,
>>            i18n.tabStatisticsHeader(),
>>               resources.chart_curve(), true, MenuSelector.STATISTICS,
>>               i18n.viewMenuStatsHeading()));
>>
>>                              populateToolBar(i18n);
>>
>>                              viewport.add(borderLayoutContainer);
>>
>> viewportLayout.setActiveItem(borderLayoutContainer);
>>                      }
>>
>>                      @Override
>>                      protected void initialize() {
>>                              super.initialize();
>>
>>                      }
>>
>>                      @Override
>>                      protected void initUI(ApplicationSetup model) {
>>                              Gradebook selectedGradebook =
>>               Registry.get(AppConstants.CURRENT);
>>
>>                              if (addCategoryMenuItem != null)
>>
>>  addCategoryMenuItem.setVisible(selectedGradebook.getGradebookItemModel().getCategoryType()
>>
>>               != CategoryType.NO_CATEGORIES);
>>
>>                              if
>>
>>  (DataTypeConversionUtil.checkBoolean(selectedGradebook.isNewGradebook()))
>>
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartEditItem.getEventType(),
>>               selectedGradebook.getGradebookItemModel());
>>
>>
>>  centerLayoutContainer.add(multigradeView.getMultiGradeContentPanel());
>>
>> centerLayoutContainer.add(treeView.getFormPanel());
>>
>>  centerCardLayout.setActiveItem(multigradeView.getMultiGradeContentPanel());
>>
>>
>>                              Boolean isNewGBFromAuth =
>>               Registry.get(AppConstants.IS_NEW_GRADEBOOK);
>>                              Boolean isNewGBFromApp =
>>               selectedGradebook.isNewGradebook();
>>                              boolean isNewGradebook =
>>               DataTypeConversionUtil.checkBoolean(isNewGBFromAuth) ||
>>
>>  DataTypeConversionUtil.checkBoolean(isNewGBFromApp);
>>                              if (isNewGradebook) {
>>                                      onShowSetup();
>>                              }
>>                      }
>>
>>                      @Override
>>                      protected void onCloseNotification() {
>>                      }
>>
>>                      @Override
>>                      protected void onExpandEastPanel(EastCard
>>            activeCard) {
>>
>>                              ItemFormPanel formPanel =
>>            treeView.getFormPanel();
>>
>>                              switch (activeCard) {
>>                                      case GRADE_SCALE:
>>                                      case HELP:
>>                                      case HISTORY:
>>                                      case LEARNER_SUMMARY:
>>                                      case STATISTICS:
>>
>> borderLayout.show(LayoutRegion.EAST);
>>
>> borderLayout.expand(LayoutRegion.EAST);
>>                                              break;
>>                                      default:
>>
>> borderLayout.hide(LayoutRegion.EAST);
>>                                              break;
>>                              }
>>
>>                              switch (activeCard) {
>>                                      case DELETE_CATEGORY:
>>
>>  formPanel.setHeading(i18n.deleteCategoryHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case DELETE_ITEM:
>>
>>  formPanel.setHeading(i18n.deleteItemHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case GRADE_SCALE:
>>
>>  eastLayoutContainer.setHeading(i18n.gradeScaleHeading());
>>
>>  eastCardLayout.setActiveItem(gradeScalePanel);
>>                                              break;
>>                                      case STATISTICS:
>>
>>  //eastLayoutContainer.setHeading(i18n.statisticsHeading());
>>
>>  //eastCardLayout.setActiveItem(statisticsPanel);
>>
>>  viewportLayout.setActiveItem(statisticsPanel);
>>                                              break;
>>                                      //case HELP:
>>                                      //
>>  eastLayoutContainer.setHeading(i18n.helpHeading());
>>                                      //
>>  eastCardLayout.setActiveItem(helpPanel);
>>                                      //      break;
>>                                      case HISTORY:
>>
>>  //eastLayoutContainer.setHeading(i18n.historyHeading());
>>
>>  //eastCardLayout.setActiveItem(historyPanel);
>>
>>  viewportLayout.setActiveItem(historyPanel);
>>                                              break;
>>                                      case NEW_CATEGORY:
>>
>>  formPanel.setHeading(i18n.newCategoryHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case NEW_ITEM:
>>
>>  formPanel.setHeading(i18n.newItemHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case EDIT_CATEGORY:
>>
>>  formPanel.setHeading(i18n.editCategoryHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case EDIT_GRADEBOOK:
>>
>>  formPanel.setHeading(i18n.editGradebookHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case EDIT_ITEM:
>>
>>  formPanel.setHeading(i18n.editItemHeading());
>>
>>  centerCardLayout.setActiveItem(treeView.getFormPanel());
>>
>> multigradeView.deselectAll();
>>                                              break;
>>                                      case LEARNER_SUMMARY:
>>
>>  eastLayoutContainer.setHeading(i18n.learnerSummaryHeading());
>>
>>  eastCardLayout.setActiveItem(singleGradeContainer);
>>                                              break;
>>                              }
>>
>>                      }
>>
>>                      @Override
>>                      protected void onFailedToUpdateItem(ItemUpdate
>>            itemUpdate) {
>>                              if (gradeScalePanel != null) {
>>
>>  gradeScalePanel.onFailedToUpdateItem(itemUpdate);
>>                              }
>>                      }
>>
>>                      @Override
>>                      protected void onGradeTypeUpdated(Gradebook
>>               selectedGradebook) {
>>                              if (singleGradeContainer != null) {
>>
>>  singleGradeContainer.onGradeTypeUpdated(selectedGradebook);
>>                              }
>>                      }
>>
>>                      @Override
>>                      protected void onItemCreated(Item itemModel) {
>>                              onHideEastPanel(Boolean.FALSE);
>>                      }
>>
>>                      @Override
>>                      protected void
>>               onLearnerGradeRecordUpdated(UserEntityUpdateAction
>>            action) {
>>                              if (singleGradeContainer != null &&
>>               singleGradeContainer.isVisible()) {
>>
>>  singleGradeContainer.onLearnerGradeRecordUpdated(action.getModel());
>>                              }
>>
>>                              if (statisticsPanel != null &&
>>               statisticsPanel.isVisible()) {
>>
>>  statisticsPanel.onLearnerGradeRecordUpdated(action.getModel());
>>                              }
>>                      }
>>
>>                      @Override
>>                      protected void onLoadItemTreeModel(Gradebook
>>               selectedGradebook) {
>>
>>                      }
>>
>>                      @Override
>>                      protected void onNewCategory(Item itemModel) {
>>                              onExpandEastPanel(EastCard.NEW_CATEGORY);
>>                      }
>>
>>                      @Override
>>                      protected void onNewItem(Item itemModel) {
>>                              onExpandEastPanel(EastCard.NEW_ITEM);
>>                      }
>>
>>                      @Override
>>                      protected void onOpenNotification() {
>>
>>                      }
>>
>>                      @Override
>>                      protected void onRefreshGradebookItems(Gradebook
>>               gradebookModel) {
>>
>>                      }
>>
>>                      @Override
>>                      protected void onRefreshGradebookSetup(Gradebook
>>               gradebookModel) {
>>                              if (addCategoryMenuItem != null)
>>
>>  addCategoryMenuItem.setVisible(gradebookModel.getGradebookItemModel().getCategoryType()
>>
>>               != CategoryType.NO_CATEGORIES);
>>
>>                              if (singleGradeContainer != null)
>>
>>  singleGradeContainer.onRefreshGradebookSetup(gradebookModel);
>>                      }
>>
>>                      @Override
>>                      protected void onRefreshGradeScale(Gradebook
>>            gradebookModel) {
>>                              if (gradeScalePanel != null)
>>
>>  gradeScalePanel.onRefreshGradeScale(gradebookModel);
>>                      }
>>
>>                      @Override
>>                      protected void onSelectLearner(ModelData learner) {
>>                              if (singleGradeContainer != null &&
>>               singleGradeContainer.isVisible()) {
>>                                      onSingleGrade(learner);
>>                              }
>>                      }
>>
>>                      @Override
>>                      protected void onSingleGrade(final ModelData
>>               learnerGradeRecordCollection) {
>>                              /*GWT.runAsync(new RunAsyncCallback() {
>>                                      public void onFailure(Throwable
>>            caught) {
>>
>>                                      }
>>
>>                                      public void onSuccess() {*/
>>                                              if (singleGradeContainer
>>            == null) {
>>
>> singleGradeContainer = new
>>               LearnerSummaryPanel();
>>
>>  eastLayoutContainer.add(singleGradeContainer);
>>                                              }
>>
>>  singleGradeContainer.onChangeModel(multigradeView.getStore(),
>>               treeView.getTreeStore(), learnerGradeRecordCollection);
>>
>>  onExpandEastPanel(EastCard.LEARNER_SUMMARY);
>>                                      /*}
>>                              });*/
>>                      }
>>
>>                      @Override
>>                      protected void onSingleView(ModelData learner) {
>>                              viewport.add(singleGradeView.getDialog());
>>
>>  viewportLayout.setActiveItem(singleGradeView.getDialog());
>>                      }
>>
>>                      @Override
>>                      protected void onShowGradeScale(Boolean show) {
>>                              /*GWT.runAsync(new RunAsyncCallback() {
>>                                      public void onFailure(Throwable
>>            caught) {
>>
>>                                      }
>>
>>                                      public void onSuccess() {*/
>>                                              if (gradeScalePanel ==
>>            null) {
>>                                                      gradeScalePanel
>>            = new
>>               GradeScalePanel(isEditable, treeView);
>>
>>  eastLayoutContainer.add(gradeScalePanel);
>>                                              }
>>
>>  onExpandEastPanel(EastCard.GRADE_SCALE);
>>                                      /*}
>>                              });*/
>>                      }
>>
>>                      @Override
>>                      protected void onShowHistory(String identifier) {
>>                              /*GWT.runAsync(new RunAsyncCallback() {
>>                                      public void onFailure(Throwable
>>            caught) {
>>
>>                                      }
>>
>>                                      public void onSuccess() {*/
>>                                              if (historyPanel == null) {
>>                                                      historyPanel = new
>>               HistoryPanel(i18n);
>>
>> viewport.add(historyPanel);
>>                                              }
>>
>>  viewportLayout.setActiveItem(historyPanel);
>>                                      /*}
>>                              });*/
>>                      }
>>
>>                      protected void onShowSetup() {
>>                              Gradebook selectedGradebook =
>>               Registry.get(AppConstants.CURRENT);
>>
>>                              if (selectedGradebook != null) {
>>                                      Item itemModel =
>>               selectedGradebook.getGradebookItemModel();
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartEditItem.getEventType(),
>>               itemModel);
>>                              }
>>                      }
>>
>>                      @Override
>>                      protected void onShowStatistics() {
>>                              if (statisticsPanel == null) {
>>                                      statisticsPanel = new
>>            StatisticsPanel(i18n);
>>                                      viewport.add(statisticsPanel);
>>                              }
>>
>> statisticsPanel.onLearnerGradeRecordUpdated(null);
>>
>> viewportLayout.setActiveItem(statisticsPanel);
>>                              //onExpandEastPanel(EastCard.STATISTICS);
>>                      }
>>
>>                      @Override
>>                      protected void onStopStatistics() {
>>
>> viewportLayout.setActiveItem(borderLayoutContainer);
>>                      }
>>
>>                      @Override
>>                      protected void onStartEditItem(Item itemModel) {
>>                              AppView.EastCard activeCard =
>>               AppView.EastCard.EDIT_ITEM;
>>
>>                              if (itemModel != null) {
>>                                      switch (itemModel.getItemType()) {
>>                                              case CATEGORY:
>>                                                      activeCard =
>>               AppView.EastCard.EDIT_CATEGORY;
>>                                                      break;
>>                                              case GRADEBOOK:
>>                                                      activeCard =
>>               AppView.EastCard.EDIT_GRADEBOOK;
>>                                      }
>>                              }
>>                              onExpandEastPanel(activeCard);
>>                      }
>>
>>                      @Override
>>                      protected void onStartImport() {
>>
>>                      }
>>
>>                      @Override
>>                      protected void onStopImport() {
>>
>> viewportLayout.setActiveItem(borderLayoutContainer);
>>                      }
>>
>>                      @Override
>>                      protected void onStartGraderPermissions() {
>>                              PermissionsPanel permissionsPanel =
>>               permissionsView.getPermissionsPanelInstance();
>>                              viewport.add(permissionsPanel);
>>
>> viewportLayout.setActiveItem(permissionsPanel);
>>                      }
>>
>>                      @Override
>>                      protected void onStopGraderPermissions() {
>>
>> viewportLayout.setActiveItem(borderLayoutContainer);
>>                      }
>>
>>                      //RU change
>>
>>                      @Override
>>                      protected void onStartSubmitToRegistrar() {
>>
>>                              if(submitToRegistrarPanel == null) {
>>                                      submitToRegistrarPanel = new
>>               SubmitToRegistrarPanel(i18n);
>>                              }
>>                              viewport.add(submitToRegistrarPanel);
>>
>> viewportLayout.setActiveItem(submitToRegistrarPanel);
>>                      }
>>
>>                      @Override
>>                      protected void onStopSubmitToRegistrar() {
>>
>> viewportLayout.setActiveItem(borderLayoutContainer);
>>                      }
>>
>>                      @Override
>>                      protected void onHideEastPanel(Boolean doCommit) {
>>                              borderLayout.hide(LayoutRegion.EAST);
>>                      }
>>
>>                      protected void onHideFormPanel() {
>>
>>  centerCardLayout.setActiveItem(multigradeView.getMultiGradeContentPanel());
>>
>>                      }
>>
>>                      @Override
>>                      protected void onSwitchGradebook(Gradebook
>>            selectedGradebook) {
>>
>>                              if (addCategoryMenuItem != null)
>>
>>  addCategoryMenuItem.setVisible(selectedGradebook.getGradebookItemModel().getCategoryType()
>>
>>               != CategoryType.NO_CATEGORIES);
>>
>>                      }
>>
>>                      /*
>>                      @SuppressWarnings("unchecked")
>>                      @Override
>>                      protected void onUserChange(UserEntityAction<?>
>>            action) {
>>
>>                              switch (action.getEntityType()) {
>>                                      case GRADEBOOK:
>>                                              switch
>>            (action.getActionType()) {
>>                                                      case UPDATE:
>>
>>  UserEntityUpdateAction<GradebookModel> updateAction =
>>               (UserEntityUpdateAction<GradebookModel>)action;
>>
>> GradebookModel.Key
>>               gradebookModelKey =
>>            GradebookModel.Key.valueOf(updateAction.getKey());
>>                                                              switch
>>               (gradebookModelKey) {
>>                                                                      case
>>               CATEGORYTYPE:
>>
>>                  GradebookModel selectedGradebook =
>>            updateAction.getModel();
>>
>>
>> addCategoryMenuItem.setVisible(selectedGradebook.getGradebookItemModel().getCategoryType()
>>
>>               != CategoryType.NO_CATEGORIES);
>>
>>               break;
>>                                                              }
>>                                                              break;
>>                                              }
>>                                              break;
>>                              }
>>                      }*/
>>
>>                      /*
>>                       * The goal here is to reduce the number of overall
>>               listeners in the application to a minimum
>>                       */
>>                      private void initListeners() {
>>
>>                              menuEventListener = new
>>            Listener<MenuEvent>() {
>>
>>                                      public void
>>            handleEvent(MenuEvent me) {
>>
>>                                              if
>>               (me.getType().equals(Events.Select)) {
>>                                                      MenuItem menuItem =
>>               (MenuItem)me.getItem();
>>                                                      MenuSelector
>>            menuSelector =
>>               menuItem.getData(MENU_SELECTOR_FLAG);
>>
>>                                                      switch
>>            (menuSelector) {
>>                                                              case
>>            GRADE_SCALE:
>>
>>          onShowGradeScale(Boolean.TRUE);
>>
>>       break;
>>                                                              case
>>            HISTORY:
>>
>>          onShowHistory(null);
>>
>>       break;
>>                                                              case
>>               GRADER_PERMISSION_SETTINGS:
>>
>>          onStartGraderPermissions();
>>
>>       break;
>>                                                              case
>>            STATISTICS:
>>
>>          onShowStatistics();
>>
>>       break;
>>                                                              case SETUP:
>>
>>       onShowSetup();
>>
>>       break;
>>                                                              //RU change
>>                                                              case
>>            SUBMIT_REGISTRAR:
>>
>>          onStartSubmitToRegistrar();
>>
>>       break;
>>                                                      }
>>                                              }
>>                                      }
>>
>>                              };
>>
>>                              menuSelectionListener = new
>>               SelectionListener<MenuEvent>() {
>>
>>                                      @Override
>>                                      public void
>>            componentSelected(MenuEvent me) {
>>                                              MenuSelector selector =
>>               me.getItem().getData(MENU_SELECTOR_FLAG);
>>                                              ExportDetails ex;
>>                                              switch (selector) {
>>                                                      case ADD_CATEGORY:
>>
>>  Dispatcher.forwardEvent(GradebookEvents.NewCategory.getEventType());
>>                                                              break;
>>                                                      case ADD_ITEM:
>>
>>  Dispatcher.forwardEvent(GradebookEvents.NewItem.getEventType());
>>                                                              break;
>>                                                      case
>>            EXPORT_DATA_XLS:
>>                                                              ex = new
>>               ExportDetails(ExportType.XLS97, false);
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartExport.getEventType(),
>>               ex);
>>                                                              break;
>>                                                      case
>>            EXPORT_STRUCTURE_XLS:
>>                                                              ex = new
>>               ExportDetails(ExportType.XLS97, true);
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartExport.getEventType(),
>>               ex);
>>                                                              break;
>>                                                      case
>>            EXPORT_DATA_CSV:
>>                                                              ex = new
>>               ExportDetails(ExportType.CSV, false);
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartExport.getEventType(),
>>               ex);
>>                                                              break;
>>                                                      case
>>            EXPORT_STRUCTURE_CSV:
>>                                                              ex = new
>>               ExportDetails(ExportType.CSV, true);
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartExport.getEventType(),
>>               ex);
>>                                                              break;
>>                                                      case IMPORT:
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartImport.getEventType());
>>                                                              break;
>>                                                      case FINAL_GRADE:
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartFinalgrade.getEventType());
>>                                                              break;
>>                                                      //RU change
>>                                                      case
>>            SUBMIT_REGISTRAR:
>>
>>  Dispatcher.forwardEvent(GradebookEvents.StartSubmitRegistrar.getEventType());
>>
>>                                                              break;
>>
>>                                              }
>>                                      }
>>
>>                              };
>>
>>                              toolBarSelectionListener = new
>>               SelectionListener<ButtonEvent>() {
>>
>>                                      @Override
>>                                      public void
>>            componentSelected(ButtonEvent
>>               tbe) {
>>
>>                                              String helpUrl =
>>               Registry.get(AppConstants.HELP_URL);
>>                                              Window.open(helpUrl,
>>            "_blank",
>>
>>  "resizable=yes,scrollbars=yes,outerHeight=600,outerWidth=350");
>>                                      }
>>
>>                              };
>>                      }
>>
>>                      /*
>>                       * Create a top-level toolbar with menu drop downs
>>                       */
>>                      private ToolBar populateToolBar(I18nConstants
>>            i18n) {
>>
>>                              if (isEditable) {
>>                                      AriaButton fileItem = new
>>               AriaButton(i18n.newMenuHeader());
>>                                      fileItem.setMenu(newFileMenu(i18n));
>>                                      toolBar.add(fileItem);
>>                              }
>>
>>                              if (isEditable) {
>>                                      AriaButton editItem = new
>>               AriaButton(i18n.editMenuHeader());
>>                                      editMenu = newEditMenu(i18n);
>>                                      editItem.setMenu(editMenu);
>>                                      toolBar.add(editItem);
>>                              }
>>
>>                              AriaButton viewItem = new
>>               AriaButton(i18n.viewMenuHeader());
>>                              viewMenu = newViewMenu(i18n);
>>                              viewItem.setMenu(viewMenu);
>>
>>                              AriaButton moreItem = new
>>               AriaButton(i18n.moreMenuHeader());
>>                              moreItem.setMenu(newMoreActionsMenu());
>>
>>                              AriaButton helpItem = new
>>               AriaButton(i18n.helpMenuHeader());
>>
>>  helpItem.addSelectionListener(toolBarSelectionListener);
>>
>>                              toolBar.add(viewItem);
>>                              toolBar.add(moreItem);
>>                              toolBar.add(helpItem);
>>
>>                              toolBar.add(new FillToolItem());
>>
>>                              String version =
>>            Registry.get(AppConstants.VERSION);
>>                              LabelField versionLabel = new
>>            LabelField(version);
>>                              toolBar.add(versionLabel);
>>
>>                              return toolBar;
>>                      }
>>
>>                      /*
>>                       * Create a new file menu
>>                       */
>>                      private Menu newFileMenu(I18nConstants i18n) {
>>
>>                              // This should be obvious. Just create
>>            the required
>>               menu object and its menu items
>>                              fileMenu = new AriaMenu();
>>                              addCategoryMenuItem = new
>>               AriaMenuItem(i18n.fileMenuNewCategory(),
>>            menuSelectionListener);
>>
>> addCategoryMenuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.ADD_CATEGORY);
>>
>>  addCategoryMenuItem.setIcon(AbstractImagePrototype.create(resources.folder_add()));
>>
>>
>>  addCategoryMenuItem.setId(AppConstants.ID_ADD_CATEGORY_MENUITEM);
>>                              MenuItem addItem = new
>>               AriaMenuItem(i18n.fileMenuNewItem(),
>>            menuSelectionListener);
>>                              addItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.ADD_ITEM);
>>
>>  addItem.setIcon(AbstractImagePrototype.create(resources.table_add()));
>>
>> addItem.setId(AppConstants.ID_ADD_ITEM_MENUITEM);
>>
>>                              // Attach the items to the menu
>>                              fileMenu.add(addCategoryMenuItem);
>>                              fileMenu.add(addItem);
>>
>>
>>                              return fileMenu;
>>                      }
>>
>>                      private Menu newViewMenu(I18nConstants i18n)
>>                      {
>>                              Menu viewMenu = new AriaMenu();
>>
>>                              for (TabConfig tabConfig :
>>            tabConfigurations) {
>>                                      if
>>               (tabConfig.id.equals(AppConstants.TAB_HISTORY) ||
>>
>>  tabConfig.id.equals(AppConstants.TAB_STATISTICS) )
>>                                      {
>>                                              MenuItem tabBasedMenuItem =
>>               newTabBasedMenuItem(tabConfig);
>>
>> viewMenu.add(tabBasedMenuItem);
>>                                      }
>>                              }
>>                              return viewMenu;
>>                      }
>>                      private Menu newEditMenu(I18nConstants i18n) {
>>                              Menu editMenu = new AriaMenu();
>>
>>                              for (TabConfig tabConfig :
>>            tabConfigurations) {
>>                                      if
>>               (tabConfig.id.equals(AppConstants.TAB_SETUP) ||
>>
>>  tabConfig.id.equals(AppConstants.TAB_GRADER_PER_SET) ||
>>
>>  tabConfig.id.equals(AppConstants.TAB_GRADESCALE))
>>                                      {
>>                                              MenuItem tabBasedMenuItem =
>>               newTabBasedMenuItem(tabConfig);
>>
>> editMenu.add(tabBasedMenuItem);
>>                                      }
>>                              }
>>
>>                              return editMenu;
>>                      }
>>
>>                      private MenuItem newTabBasedMenuItem(TabConfig
>>            tabConfig) {
>>                              String id = new
>>
>>  StringBuilder().append(AppConstants.WINDOW_MENU_ITEM_PREFIX).append(tabConfig.id).toString();
>>
>>                              MenuItem menuItem = new AriaMenuItem();
>>                              menuItem.setText(tabConfig.menuHeader);
>>                              menuItem.setData(MENU_SELECTOR_FLAG,
>>               tabConfig.menuSelector);
>>                              menuItem.setEnabled(tabConfig.isClosable);
>>                              menuItem.setId(id);
>>
>>  menuItem.setIcon(AbstractImagePrototype.create(tabConfig.icon));
>>                              tabConfig.menuItemId = id;
>>
>>                              menuItem.addListener(Events.Select,
>>            menuEventListener);
>>
>>                              return menuItem;
>>                      }
>>
>>
>>                      private Menu newMoreActionsMenu() {
>>                              Menu moreActionsMenu = new AriaMenu();
>>
>>                              MenuItem menuItem = new
>>               AriaMenuItem(i18n.headerExport());
>>                              menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT);
>>
>>  //menuItem.setIconStyle(resources.css().gbExportItemIcon());
>>
>>  menuItem.setIcon(AbstractImagePrototype.create(resources.page_white_put()));
>>
>>                              menuItem.setTitle(i18n.headerExportTitle());
>>                              moreActionsMenu.add(menuItem);
>>
>>                              Menu subMenu = new AriaMenu();
>>                              menuItem.setSubMenu(subMenu);
>>
>>                              Menu typeMenu = subMenu;
>>
>>                              // If we're dealing with an "editable"
>>            instance of
>>               the tool, then make the appropriate submenus for export
>>                              if (isEditable) {
>>                                      menuItem = new
>>               AriaMenuItem(i18n.headerExportData());
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT_DATA);
>>
>>  menuItem.setTitle(i18n.headerExportDataTitle());
>>                                      subMenu.add(menuItem);
>>
>>                                      typeMenu = new AriaMenu();
>>                                      menuItem.setSubMenu(typeMenu);
>>                              }
>>
>>                              menuItem = new
>>            AriaMenuItem(i18n.headerExportCSV(),
>>               menuSelectionListener);
>>                              menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT_DATA_CSV);
>>
>> menuItem.setTitle(i18n.headerExportCSVTitle());
>>                              typeMenu.add(menuItem);
>>
>>                              menuItem = new
>>            AriaMenuItem(i18n.headerExportXLS(),
>>               menuSelectionListener);
>>                              menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT_DATA_XLS);
>>
>> menuItem.setTitle(i18n.headerExportXLSTitle());
>>                              typeMenu.add(menuItem);
>>
>>                              // If we're dealing with an "editable"
>>            instance of
>>               the tool, show the other editing menu items
>>                              if (isEditable) {
>>                                      menuItem = new
>>               AriaMenuItem(i18n.headerExportStructure());
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT_STRUCTURE);
>>
>>  menuItem.setTitle(i18n.headerExportStructureTitle());
>>                                      subMenu.add(menuItem);
>>
>>                                      typeMenu = new AriaMenu();
>>                                      menuItem.setSubMenu(typeMenu);
>>
>>                                      menuItem = new
>>               AriaMenuItem(i18n.headerExportCSV(),
>>            menuSelectionListener);
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT_STRUCTURE_CSV);
>>
>> menuItem.setTitle(i18n.headerExportCSVTitle());
>>                                      typeMenu.add(menuItem);
>>
>>                                      menuItem = new
>>               AriaMenuItem(i18n.headerExportXLS(),
>>            menuSelectionListener);
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.EXPORT_STRUCTURE_XLS);
>>
>> menuItem.setTitle(i18n.headerExportXLSTitle());
>>                                      typeMenu.add(menuItem);
>>
>>                                      menuItem = new
>>               AriaMenuItem(i18n.headerImport(), menuSelectionListener);
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.IMPORT);
>>
>>  //menuItem.setIconStyle(resources.css().gbImportItemIcon());
>>
>>  menuItem.setIcon(AbstractImagePrototype.create(resources.page_white_get()));
>>
>>
>> menuItem.setTitle(i18n.headerImportTitle());
>>                                      moreActionsMenu.add(menuItem);
>>
>>                                      // GRBK-37 : TPA - will remove
>>            by RU change
>>                                      menuItesm = new
>>               AriaMenuItem(i18n.headerFinalGrade(),
>>            menuSelectionListener);
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.FINAL_GRADE);
>>
>>  //menuItem.setIconStyle(resources.css().gbExportItemIcon());
>>
>>  menuItem.setIcon(AbstractImagePrototype.create(resources.page_white_put()));
>>
>>
>>  menuItem.setTitle(i18n.headerFinalGradeTitle());
>>                                      moreActionsMenu.add(menuItem);
>>                                      //RU change
>>                                      //if roster attached, we show
>>            the item
>>                                      //otherwise no
>>                                      if (isRosterAttached())
>>                                      {
>>                                      menuItem = new
>>               AriaMenuItem(i18n.headerSubmitToRegistrar(),
>>            menuSelectionListener);
>>                                      menuItem.setData(MENU_SELECTOR_FLAG,
>>               MenuSelector.SUBMIT_REGISTRAR);
>>
>>  menuItem.setIcon(AbstractImagePrototype.create(resources.page_white_put()));
>>
>>
>>  menuItem.setTitle(i18n.headerSubmitToRegistrar());
>>                                      moreActionsMenu.add(menuItem);
>>                                      }
>>
>>                              }
>>
>>                              return moreActionsMenu;
>>                      }
>>
>>                      private boolean isRosterAttached()
>>                      {
>>                              System.out.print("\nKim
>>               debug:ComponentServiceImpl:isRosterAttached()\n");
>>                              Gradebook selectedGradebook =
>>               Registry.get(AppConstants.CURRENT);
>>                              String gradebookUid =
>>               selectedGradebook.getGradebookUid();
>>                              String gradebookId =
>>               String.valueOf(selectedGradebook.getGradebookId());
>>                              System.out.print("\nKim
>>               debug:ComponentServiceImpl:isRosterAttached()\n");
>>                              RestBuilder builder =
>>               RestBuilder.getInstance(Method.GET,
>>                                      GWT.getModuleBaseURL(),
>>                                      AppConstants.REST_FRAGMENT,
>>
>> AppConstants.RU_ROSTER_VERIFICATION_FRAGMENT,
>>                                      gradebookUid,
>>                                      gradebookId);
>>                              builder.sendRequest(200, 400, null, new
>>               RestCallback() {
>>
>>                                      @Override
>>                                      public void onError(Request request,
>>               Throwable exception) {
>>
>>  System.out.print("sendrequest:error\n");
>>
>>  Dispatcher.forwardEvent(GradebookEvents.Notification.getEventType(),
>>               new NotificationEvent(exception, "Unable to submit
>>            final grades: "));
>>                                              isCourseWRoster=false;
>>                                      }
>>
>>                                      @Override
>>                                      public void onSuccess(Request
>>            request,
>>               Response response) {
>>
>>  System.out.print("sendrequest:error\n");
>>                                              JsonTranslater
>>            translater = new
>>               JsonTranslater(EnumSet.allOf(RUVerificationKey.class));
>>                                              ModelData result =
>>               translater.translate(response.getText());
>>                                            isCourseWRoster =
>>               result.get(RUVerificationKey.IS_ROSTER_ATTACHED.name
>>            <http://RUVerificationKey.IS_ROSTER_ATTACHED.name>
>>               <http://RUVerificationKey.IS_ROSTER_ATTACHED.name>())
>>            != null &&
>>                          ((Boolean)result.get(
>> RUVerificationKey.IS_ROSTER_ATTACHED.name
>>            <http://RUVerificationKey.IS_ROSTER_ATTACHED.name>
>>                          <
>> http://RUVerificationKey.IS_ROSTER_ATTACHED.name>())).booleanValue();
>>
>>                              }
>>                      });
>>                              Boolean myRosterAttached = new
>>               Boolean(isCourseWRoster);
>>                              return (myRosterAttached.booleanValue());
>>
>>                      }
>>               }
>>
>>
>>
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/gradebook2-dev/attachments/20100528/882e7c21/attachment-0001.html 


More information about the gradebook2-dev mailing list