| Quintiq file version 2.0 | 
| #parent: MatrixEditorTransportCapacities | 
| Response OnCheckEditability ( | 
|   UnitPeriodTransportQuantity cell, | 
|   Real value | 
| ) id:Response_MatrixEditorTransportCapacities_OnCheckEditability | 
| { | 
|   #keys: '[139394.1.30062984]' | 
|   CanBindMultiple: false | 
|   DefinitionID: 'Responsedef_WebMatrixEditor_OnCheckEditability' | 
|   QuillAction | 
|   { | 
|     Body: | 
|     [* | 
|       // Update the cell editability, min max | 
|       feedback := ''; | 
|       unitperiods := construct( UnitPeriods ); | 
|       unitperiods.Add( cell ); | 
|       canEdit := UnitPeriod::CanEdit( unitperiods, feedback ) | 
|                  and cell.CanEditAttribute( feedback, focusedattribute ); | 
|        | 
|       if( canEdit ) | 
|       { | 
|         // We are supposed to use the method attribute(  ).Name(), but that | 
|         // doesn't translate to focusedattribute, so for now hardcode  | 
|         if( focusedattribute = attribute( UnitPeriodTransportQuantity, MaxCapacityPerTimeUnit ).Name() ) | 
|         { | 
|           // cannot be smaller than min capacity | 
|           editinfo.MinValue( cell.MinCapacityPerTimeUnit() ); | 
|         } | 
|         // Minimum capacity | 
|         else if( focusedattribute = attribute( UnitPeriodTransportQuantity, MinCapacityPerTimeUnit ).Name() ) | 
|         { | 
|           // cannot be larger than max capacity | 
|           editinfo.MaxValue( cell.MaxCapacityPerTimeUnit() ); | 
|           // cannot be smaller than 0 | 
|           editinfo.MinValue( 0.0 ); | 
|         } | 
|         // 2nd max capacity | 
|         else if( focusedattribute = typeof( TransportCapacity ).Name() + '.' + attribute( TransportCapacity, SecondaryMaximumCapacity ).Name() ) | 
|         { | 
|           // cannot be smaller than 2nd min capacity | 
|           editinfo.MinValue( cell.TransportCapacity().SecondaryMinimumCapacity() ); | 
|         } | 
|         // 2nd min capacity | 
|         else if( focusedattribute = typeof( TransportCapacity ).Name() + '.' + attribute( TransportCapacity, SecondaryMinimumCapacity ).Name() ) | 
|         { | 
|           // cannot be larger than 2nd max capacity | 
|           editinfo.MaxValue( cell.TransportCapacity().SecondaryMaximumCapacity() ); | 
|           // cannot be smaller than 0 | 
|           editinfo.MinValue( 0.0 ); | 
|         } | 
|       } | 
|        | 
|       editinfo.CanEdit( canEdit ); | 
|       editinfo.UserHint( feedback ); | 
|     *] | 
|     GroupServerCalls: false | 
|   } | 
| } |