-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// Copyright (C) 2014-2015 EDF-R&D
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#include <HYDROData_Object.h>
#include <HYDROData_IPolyline.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) ) ||
+ bool isCanBeColored = false;
+ if ( theObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) ) {
+ size_t anActiveViewId = HYDROGUI_Tool::GetActiveOCCViewId( theModule );
+ isCanBeColored = !theModule->isLandCoversScalarMapModeOn( anActiveViewId );
+ }
+
+ return isCanBeColored ||
+ theObject->IsKind( STANDARD_TYPE(HYDROData_Object) ) ||
theObject->IsKind( STANDARD_TYPE(HYDROData_IPolyline) );
}
// 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;
anIsOneColor = true;
}
+ else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) )
+ {
+ Handle(HYDROData_LandCoverMap) aLandCoverMap =
+ Handle(HYDROData_LandCoverMap)::DownCast( myEditedObject );
+
+ /* TODO
+ aFirstColor = aLandCoverMap->GetFillingColor();
+ aSecondColor = aLandCoverMap->GetBorderColor();
+ */
+ }
// Create color dialog
myColorDlg = new HYDROGUI_ColorDlg( module()->getApp()->desktop(), anIsOneColor );
}
bool HYDROGUI_SetColorOp::processApply( int& theUpdateFlags,
- QString& theErrorMsg )
+ QString& theErrorMsg,
+ QStringList& theBrowseObjectsEntries )
{
if ( !myColorDlg || myEditedObject.IsNull() )
return false;
aPolyObject->SetWireColor( aFirstColor );
}
+ else if ( myEditedObject->IsKind( STANDARD_TYPE(HYDROData_LandCoverMap) ) )
+ {
+ Handle(HYDROData_LandCoverMap) aLandCoverMap =
+ Handle(HYDROData_LandCoverMap)::DownCast( myEditedObject );
+
+ /* TODO
+ aLandCoverMap->SetFillingColor( aFirstColor );
+ aLandCoverMap->SetBorderColor( aSecondColor );
+ */
+ }
+
+ module()->setIsToUpdate( myEditedObject );
- theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced;
+ theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced | UF_VTKViewer;
return true;
}