bool PropertiesDataDescriptor::applyChanges()
{
   DataDescriptorWidget* pDescriptorPage = dynamic_cast<DataDescriptorWidget*>(getWidget());
   VERIFY(pDescriptorPage != NULL);

   return pDescriptorPage->applyChanges();
}
bool PropertiesDataDescriptor::initialize(SessionItem* pSessionItem)
{
   DataDescriptorWidget* pDescriptorPage = dynamic_cast<DataDescriptorWidget*>(getWidget());
   if (pDescriptorPage == NULL)
   {
      return false;
   }

   const DataElement* pElement = dynamic_cast<DataElement*>(pSessionItem);
   if (pElement != NULL)
   {
      const DataDescriptor* pDescriptor = pElement->getDataDescriptor();
      if (pDescriptor != NULL)
      {
         mpDescriptor = DataDescriptorResource<DataDescriptor>(pDescriptor->copy());
         if (mpDescriptor.get() != NULL)
         {
            pDescriptorPage->setDataDescriptor(mpDescriptor.get(), false);    // Only allow the user to edit the units
            return PropertiesShell::initialize(pSessionItem);
         }
      }
   }

   return false;
}
bool PropertiesDataDescriptor::initialize(SessionItem* pSessionItem)
{
   DataDescriptorWidget* pDescriptorPage = dynamic_cast<DataDescriptorWidget*>(getWidget());
   if (pDescriptorPage == NULL)
   {
      return false;
   }

   DataElement* pElement = dynamic_cast<DataElement*>(pSessionItem);
   if (pElement != NULL)
   {
      DataDescriptor* pDescriptor = pElement->getDataDescriptor();
      if (pDescriptor != NULL)
      {
         // turn off full editing of fields
         pDescriptorPage->setDataDescriptor(pDescriptor, false);
         return true;
      }
   }

   return false;
}