admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
  }
}