#include "HYDROGUI_ColorDlg.h"
#include "HYDROGUI_DataModel.h"
#include "HYDROGUI_Module.h"
-#include "HYDROGUI_Tool.h"
+#include "HYDROGUI_Tool2.h"
#include "HYDROGUI_UpdateFlags.h"
#include <HYDROData_Object.h>
#include <HYDROData_IPolyline.h>
-#include <HYDROData_LandCover.h>
+#include <HYDROData_LandCoverMap.h>
#include <LightApp_Application.h>
#include <LightApp_UpdateFlags.h>
{
}
-bool HYDROGUI_SetColorOp::CanObjectBeColored( const Handle(HYDROData_Entity)& theObject )
+bool HYDROGUI_SetColorOp::CanObjectBeColored( const Handle(HYDROData_Entity)& theObject,
+ HYDROGUI_Module* theModule )
{
if ( theObject.IsNull() )
return false;
- return theObject->IsKind( STANDARD_TYPE(HYDROData_Object) ) ||
- theObject->IsKind( STANDARD_TYPE(HYDROData_IPolyline) ) ||
- theObject->IsKind( STANDARD_TYPE(HYDROData_LandCover) );
+ bool isCanBeColored =
+ theObject->IsKind( STANDARD_TYPE(HYDROData_Object) ) ||
+ theObject->IsKind( STANDARD_TYPE(HYDROData_IPolyline) );
+
+ return isCanBeColored;
}
void HYDROGUI_SetColorOp::startOperation()
// Get the selected object
//myEditedObject = Handle(HYDROData_Object)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
myEditedObject = HYDROGUI_Tool::GetSelectedObject( module() );
- if ( !CanObjectBeColored( myEditedObject ) )
+ if ( !CanObjectBeColored( myEditedObject, module() ) )
{
abort();
return;
Handle(HYDROData_IPolyline) aPolyObject =
Handle(HYDROData_IPolyline)::DownCast( myEditedObject );
- aFirstColor = aPolyObject->GetWireColor();
+ //aFirstColor = aPolyObject->GetWireColor();
+
+ if (aPolyObject->NbSections() > 0)
+ aPolyObject->GetSectionColor(0, aFirstColor);
+ else
+ aFirstColor = aPolyObject->GetWireColor();
anIsOneColor = true;
}
- else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCover) ) )
+ else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) )
{
- Handle(HYDROData_LandCover) aLandCover =
- Handle(HYDROData_LandCover)::DownCast( myEditedObject );
+ Handle(HYDROData_LandCoverMap) aLandCoverMap =
+ Handle(HYDROData_LandCoverMap)::DownCast( myEditedObject );
- aFirstColor = aLandCover->GetFillingColor();
- aSecondColor = aLandCover->GetBorderColor();
+ /* TODO
+ aFirstColor = aLandCoverMap->GetFillingColor();
+ aSecondColor = aLandCoverMap->GetBorderColor();
+ */
}
// Create color dialog
Handle(HYDROData_IPolyline) aPolyObject =
Handle(HYDROData_IPolyline)::DownCast( myEditedObject );
- aPolyObject->SetWireColor( aFirstColor );
+ //aPolyObject->SetWireColor( aFirstColor );
+ int nbSec = aPolyObject->NbSections();
+ if (nbSec > 0)
+ {
+ for (int i = 0; i < nbSec; i++)
+ aPolyObject->SetSectionColor(i, aFirstColor);
+ }
+ else
+ aPolyObject->SetWireColor( aFirstColor );
}
- else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCover) ) )
+ else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) )
{
- Handle(HYDROData_LandCover) aLandCover =
- Handle(HYDROData_LandCover)::DownCast( myEditedObject );
+ Handle(HYDROData_LandCoverMap) aLandCoverMap =
+ Handle(HYDROData_LandCoverMap)::DownCast( myEditedObject );
- aLandCover->SetFillingColor( aFirstColor );
- aLandCover->SetBorderColor( aSecondColor );
+ /* TODO
+ aLandCoverMap->SetFillingColor( aFirstColor );
+ aLandCoverMap->SetBorderColor( aSecondColor );
+ */
}
module()->setIsToUpdate( myEditedObject );