bool PropertiesClassification::initialize(SessionItem* pSessionItem)
{
   ClassificationWidget* pClassificationPage = dynamic_cast<ClassificationWidget*>(getWidget());
   if (pClassificationPage == NULL)
   {
      return false;
   }

   DataElement* pElement = dynamic_cast<DataElement*>(pSessionItem);
   if (pElement != NULL)
   {
      mpClassification->setClassification(pElement->getClassification());
   }
   else
   {
      View* pView = dynamic_cast<View*>(pSessionItem);
      if (pView != NULL)
      {
         mpClassification->setClassification(pView->getClassification());
      }
      else
      {
         PlotWidget* pPlotWidget = dynamic_cast<PlotWidget*>(pSessionItem);
         if (pPlotWidget != NULL)
         {
            mpClassification->setClassification(pPlotWidget->getClassification());
         }
         else
         {
            return false;
         }
      }
   }

   pClassificationPage->setClassification(mpClassification.get());
   return PropertiesShell::initialize(pSessionItem);
}