Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
   /*
    * Copyright 2011 JBoss Inc
    * 
    * Licensed under the Apache License, Version 2.0 (the "License"); you may not
    * use this file except in compliance with the License. You may obtain a copy of
    * the License at
    * 
    * http://www.apache.org/licenses/LICENSE-2.0
    * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
   * License for the specific language governing permissions and limitations under
   * the License.
   */
  package org.drools.workbench.screens.guided.dtable.client.widget.table;
  
  import java.util.Arrays;
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
  
An abstract Decision Table and the necessary boiler-plate to convert from DTColumnConfig objects to the DynamicData related classes used by the DecoratedGridWidget
  
  public abstract class AbstractDecisionTableWidget extends Composite
          implements
         InsertRowEvent.Handler,
         DeleteRowEvent.Handler,
         AppendRowEvent.Handler,
         CopyRowsEvent.Handler,
         PasteRowsEvent.Handler,
         DeleteColumnEvent.Handler,
         MoveColumnsEvent.Handler,
         UpdateModelEvent.Handler {
 
     protected GuidedDecisionTableUtils utils;
 
     protected final PackageDataModelOracle oracle;
     protected final GuidedDecisionTable52 model;
     protected final DecisionTableCellFactory cellFactory;
     protected final DecisionTableDropDownManager dropDownManager;
     protected final EventBus eventBus;
     protected final boolean isReadOnly;
     private final BRLRuleModel rm;
 
     //Current user's security context (for audit log)
     private final Identity identity;
 
     //Rows that have been copied in a copy-paste operation
     private List<List<DTCellValue52>> copiedRows = new ArrayList<List<DTCellValue52>>();
 
     protected static final DecisionTableResourcesProvider resources = new DecisionTableResourcesProvider();

    
Constructor
 
                                         PackageDataModelOracle oracle,
                                         Identity identity,
                                         boolean isReadOnly,
                                         EventBus eventBus ) {
 
         if ( model == null ) {
             throw new IllegalArgumentException"model cannot be null" );
         }
         if ( oracle == null ) {
             throw new IllegalArgumentException"oracle cannot be null" );
         }
         if ( identity == null ) {
             throw new IllegalArgumentException"identity cannot be null" );
         }
         if ( eventBus == null ) {
             throw new IllegalArgumentException"eventBus cannot be null" );
         }
         this. = model;
         this. = oracle;
         this. = identity;
         this. = new BRLRuleModelmodel );
         this. = new GuidedDecisionTableUtilsoracle,
                                                    model );
         this. = eventBus;
         this. = isReadOnly;
 
         //Ensure field data-type is set (field did not exist before 5.2)
         for ( CompositeColumn<?> cc : model.getConditions() ) {
             if ( cc instanceof Pattern52 ) {
                 Pattern52 p = (Pattern52cc;
                 for ( ConditionCol52 col : p.getChildColumns() ) {
                     ConditionCol52 c = (ConditionCol52col;
                     c.setFieldTypeoracle.getFieldTypep.getFactType(),
                                                          c.getFactField() ) );
                 }
             }
         }
 
         //Setup the DropDownManager that requires the Model and UI data to determine drop-down lists 
         //for dependent enumerations. This needs to be called before the columns are created.
         this. = new DecisionTableDropDownManagermodel,
                                                                  oracle );
 
         //Factories for new cell elements
         this. = new DecisionTableCellFactorymodel,
                                                          oracle,
                                                          ,
                                                          isReadOnly,
                                                          eventBus );
         this. = new DecisionTableCellValueFactorymodel,
                                                                    oracle );
 
         //Date converter is injected so a GWT compatible one can be used here and another in testing
         DTCellValueUtilities.injectDateConvertor( GWTDateConverter.getInstance() );
 
         //Wire-up the events
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
         eventBus.addHandler.,
                              this );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnActionCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getActionCols().addmodelColumn );
         addColumnmodelColumn,
                    .makeColumnDatamodelColumn ),
                    true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnBRLActionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getActionCols().addmodelColumn );
         addBRLActionVariableColumnsmodelColumn.getChildColumns(),
                                      true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnLimitedEntryBRLActionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getActionCols().addmodelColumn );
         addColumnmodelColumn,
                    .makeColumnDatamodelColumn ),
                    true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnBRLConditionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getConditions().addmodelColumn );
         addBRLConditionVariableColumnsmodelColumn.getChildColumns(),
                                         true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnLimitedEntryBRLConditionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getConditions().addmodelColumn );
         addColumnmodelColumn,
                    .makeColumnDatamodelColumn ),
                    true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnAttributeCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getAttributeCols().addmodelColumn );
         addColumnmodelColumn,
                    .makeColumnDatamodelColumn ),
                    true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
modelColumn The Decision Table column to insert
 
     public void addColumnMetadataCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         .getMetadataCols().addmodelColumn );
         addColumnmodelColumn,
                    .makeColumnDatamodelColumn ),
                    true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Add a column to the table.

Parameters:
pattern The Pattern to which the column will be added
modelColumn The Decision Table column to insert
 
     public void addColumnPattern52 pattern,
                            ConditionCol52 modelColumn ) {
         if ( pattern == null ) {
             throw new IllegalArgumentException"pattern cannot be null." );
         }
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         //Add pattern if it does not already exist
         if ( !.getConditions().containspattern ) ) {
             .getConditions().addpattern );
 
             //Signal patterns changed event
             BoundFactsChangedEvent pce = new BoundFactsChangedEvent.getLHSBoundFacts() );
             .fireEventpce );
         }
 
         //Column needs to be added to pattern first so it can be correctly positioned
         pattern.getChildColumns().addmodelColumn );
         addColumnmodelColumn,
                    .makeColumnDatamodelColumn ),
                    true );
 
         //Log addition of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnActionCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         int index = .getExpandedColumns().indexOfmodelColumn );
         .getActionCols().removemodelColumn );
         deleteColumnindex,
                       true );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnBRLActionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         BRLActionVariableColumn firstColumn = modelColumn.getChildColumns().get( 0 );
         int firstColumnIndex = .getExpandedColumns().indexOffirstColumn );
         int numberOfColumns = modelColumn.getChildColumns().size();
         deleteColumnsfirstColumnIndex,
                        numberOfColumns,
                        true );
         .getActionCols().removemodelColumn );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnLimitedEntryBRLActionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         int index = .getExpandedColumns().indexOfmodelColumn );
         .getActionCols().removemodelColumn );
         deleteColumnindex,
                       true );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnBRLConditionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
         BRLConditionVariableColumn firstColumn = modelColumn.getChildColumns().get( 0 );
         int firstColumnIndex = .getExpandedColumns().indexOffirstColumn );
         int numberOfColumns = modelColumn.getChildColumns().size();
         deleteColumnsfirstColumnIndex,
                        numberOfColumns,
                        true );
         .getConditions().removemodelColumn );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnLimitedEntryBRLConditionColumn modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         int index = .getExpandedColumns().indexOfmodelColumn );
         .getConditions().removemodelColumn );
         deleteColumnindex,
                       true );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnAttributeCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         int index = .getExpandedColumns().indexOfmodelColumn );
         .getAttributeCols().removemodelColumn );
         deleteColumnindex,
                       true );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column

Parameters:
modelColumn
 
     public void deleteColumnMetadataCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         int index = .getExpandedColumns().indexOfmodelColumn );
         .getMetadataCols().removemodelColumn );
         deleteColumnindex,
                       true );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }

    
Delete the given column from the given pattern

Parameters:
modelColumn
 
     public void deleteColumnConditionCol52 modelColumn ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null." );
         }
 
         int index = .getExpandedColumns().indexOfmodelColumn );
         Pattern52 pattern = .getPatternmodelColumn );
         pattern.getChildColumns().removemodelColumn );
 
         //Remove pattern if it contains zero conditions
         if ( pattern.getChildColumns().size() == 0 ) {
             .getConditions().removepattern );
 
             //Signal patterns changed event to Decision Table Widget
             BoundFactsChangedEvent pce = new BoundFactsChangedEvent.getLHSBoundFacts() );
             .fireEventpce );
         }
 
         deleteColumnindex,
                       true );
 
         //Log deletion of column
                                                                 modelColumn ) );
     }
 
     // Delete the column at the given index with optional redraw
     private void deleteColumnint index,
                                boolean redraw ) {
         DeleteColumnEvent dce = new DeleteColumnEventindex,
                                                        redraw );
         .fireEventdce );
     }
 
     // Delete the column at the given index with optional redraw
     private void deleteColumnsint firstColumnIndex,
                                 int numberOfColumns,
                                 boolean redraw ) {
         DeleteColumnEvent dce = new DeleteColumnEventfirstColumnIndex,
                                                        numberOfColumns,
                                                        redraw );
         .fireEventdce );
     }
 
     public void appendRow() {
         AppendRowEvent are = new AppendRowEvent();
         .fireEventare );
     }

    
Return the DataModelOracle associated with this Decision Table

Returns:
 
     public PackageDataModelOracle getOracle() {
         return this.;
     }

    
Mark a cell as containing the magical "otherwise" value. The magical "otherwise" value has the meaning of all values other than those explicitly defined for this column.
 
     public void makeOtherwiseCell() {
         Set<CellStateOperationoperations = new HashSet<CellStateOperation>();
         operations.addnew CellStateOperation..,
                                                 .. ) );
         CellStateChangedEvent csce = new CellStateChangedEventoperations );
         .fireEventcsce );
     }
 
     public void setColumnVisibilityDTColumnConfig52 modelColumn,
                                      boolean isVisible ) {
         if ( modelColumn == null ) {
             throw new IllegalArgumentException"modelColumn cannot be null" );
         }
         int index = .getExpandedColumns().indexOfmodelColumn );
         SetColumnVisibilityEvent scve = new SetColumnVisibilityEventindex,
                                                                       isVisible );
         .fireEventscve );
     }

    
Ensure the wrapped DecoratedGridWidget's size is set too
 
     @Override
     public void setPixelSizeint width,
                               int height ) {
         if ( width < 0 ) {
             throw new IllegalArgumentException"width cannot be less than zero" );
         }
         if ( height < 0 ) {
             throw new IllegalArgumentException"height cannot be less than zero" );
         }
         super.setPixelSizewidth,
                             height );
         .setPixelSizewidth,
                              height );
     }

    
Update an ActionSetFieldCol column

Parameters:
origColumn The existing column in the grid
editColumn A copy of the original column containing the modified values
 
     public void updateColumnfinal ActionInsertFactCol52 origColumn,
                               final ActionInsertFactCol52 editColumn ) {
         if ( origColumn == null ) {
             throw new IllegalArgumentException"origColumn cannot be null" );
         }
         if ( editColumn == null ) {
             throw new IllegalArgumentException"editColumn cannot be null" );
         }
 
         boolean bUpdateColumnData = false;
         boolean bUpdateColumnDefinition = false;
         int iCol = .getExpandedColumns().indexOforigColumn );
 
         // Update column's visibility
         if ( origColumn.isHideColumn() != editColumn.isHideColumn() ) {
             setColumnVisibilityorigColumn,
                                  !editColumn.isHideColumn() );
         }
 
         // Change in column's binding forces an update and redraw if FactType or
         // FactField are different; otherwise only need to update and redraw if
         // the FactType or FieldType have changed
         if ( !isEqualOrNullorigColumn.getBoundName(),
                              editColumn.getBoundName() ) ) {
             if ( !isEqualOrNullorigColumn.getFactType(),
                                  editColumn.getFactType() )
                     || !isEqualOrNullorigColumn.getFactField(),
                                        editColumn.getFactField() ) ) {
                 bUpdateColumnData = true;
                 bUpdateColumnDefinition = true;
             }
 
         } else if ( !isEqualOrNullorigColumn.getFactType(),
                                     editColumn.getFactType() )
                 || !isEqualOrNullorigColumn.getFactField(),
                                    editColumn.getFactField() ) ) {
             bUpdateColumnData = true;
             bUpdateColumnDefinition = true;
         }
 
         // Update column's cell content if the Optional Value list has changed
         if ( !isEqualOrNullorigColumn.getValueList(),
                              editColumn.getValueList() ) ) {
             bUpdateColumnDefinition = true;
             bUpdateColumnData = updateCellsForOptionValueListeditColumn,
                                                                origColumn );
         }
 
         // Update column header in Header Widget
         if ( !origColumn.getHeader().equalseditColumn.getHeader() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         // Update LimitedEntryValue in Header Widget
         if ( origColumn instanceof LimitedEntryCol && editColumn instanceof LimitedEntryCol ) {
             LimitedEntryCol lecOrig = (LimitedEntryColorigColumn;
             LimitedEntryCol lecEditing = (LimitedEntryColeditColumn;
             if ( !lecOrig.getValue().equalslecEditing.getValue() ) ) {
                 bUpdateColumnDefinition = true;
             }
         }
 
         //Log change to column definition
         if ( bUpdateColumnDefinition ) {
             .getAuditLog().addnew UpdateColumnAuditLogEntry.getName(),
                                                                     origColumn,
                                                                     editColumn ) );
         }
 
         // Copy new values into original column definition
         populateModelColumnorigColumn,
                              editColumn );
 
         //First remove merging if column data is being changed. This is necessary before we potentially update
         //the column's cell type as removing merging causes a redraw that needs the column's cell to be
         //consistent with the column's data-type
         if ( bUpdateColumnData ) {
             ToggleMergingEvent tme = new ToggleMergingEventfalse );
             .fireEventtme );
         }
 
         //Update Column cell
         if ( bUpdateColumnDefinition ) {
             DecoratedGridCellValueAdaptor<? extends Comparable<?>> cell = .getCellorigColumn );
             UpdateColumnDefinitionEvent updateColumnDefinition = new UpdateColumnDefinitionEventcell,
                                                                                                   iCol );
             .fireEventupdateColumnDefinition );
         }
 
         //Update Column data
         if ( bUpdateColumnData ) {
             UpdateColumnDataEvent updateColumnData = new UpdateColumnDataEventiCol,
                                                                                 getColumnDataorigColumn ) );
             .fireEventupdateColumnData );
         }
 
     }

    
Update an ActionSetFieldCol column

Parameters:
origColumn The existing column in the grid
editColumn A copy of the original column containing the modified values
 
     public void updateColumnfinal ActionSetFieldCol52 origColumn,
                               final ActionSetFieldCol52 editColumn ) {
         if ( origColumn == null ) {
             throw new IllegalArgumentException"origColumn cannot be null" );
         }
         if ( editColumn == null ) {
             throw new IllegalArgumentException"editColumn cannot be null" );
         }
 
         boolean bUpdateColumnData = false;
         boolean bUpdateColumnDefinition = false;
         int iCol = .getExpandedColumns().indexOforigColumn );
 
         // Update column's visibility
         if ( origColumn.isHideColumn() != editColumn.isHideColumn() ) {
             setColumnVisibilityorigColumn,
                                  !editColumn.isHideColumn() );
         }
 
         // Change in column's binding forces an update and redraw if FactField
         // is different; otherwise only need to update and redraw if the
         // FieldType has changed
         if ( !isEqualOrNullorigColumn.getBoundName(),
                              editColumn.getBoundName() ) ) {
             if ( !isEqualOrNullorigColumn.getFactField(),
                                  editColumn.getFactField() ) ) {
                 bUpdateColumnData = true;
                 bUpdateColumnDefinition = true;
             }
 
         } else if ( !isEqualOrNullorigColumn.getFactField(),
                                     editColumn.getFactField() ) ) {
             bUpdateColumnData = true;
             bUpdateColumnDefinition = true;
         }
 
         // Update column's cell content if the Optional Value list has changed
         if ( !isEqualOrNullorigColumn.getValueList(),
                              editColumn.getValueList() ) ) {
             bUpdateColumnDefinition = true;
             bUpdateColumnData = updateCellsForOptionValueListeditColumn,
                                                                origColumn );
         }
 
         // Update column header in Header Widget
         if ( !origColumn.getHeader().equalseditColumn.getHeader() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         // Update column field in Header Widget
         if ( origColumn.getFactField() != null && !origColumn.getFactField().equalseditColumn.getFactField() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         // Update LimitedEntryValue in Header Widget
         if ( origColumn instanceof LimitedEntryCol && editColumn instanceof LimitedEntryCol ) {
             LimitedEntryCol lecOrig = (LimitedEntryColorigColumn;
             LimitedEntryCol lecEditing = (LimitedEntryColeditColumn;
             if ( !lecOrig.getValue().equalslecEditing.getValue() ) ) {
                 bUpdateColumnDefinition = true;
             }
         }
 
         //Log change to column definition
         if ( bUpdateColumnDefinition ) {
             .getAuditLog().addnew UpdateColumnAuditLogEntry.getName(),
                                                                     origColumn,
                                                                     editColumn ) );
         }
 
         // Copy new values into original column definition
         populateModelColumnorigColumn,
                              editColumn );
 
         //First remove merging if column data is being changed. This is necessary before we potentially update
         //the column's cell type as removing merging causes a redraw that needs the column's cell to be
         //consistent with the column's data-type
         if ( bUpdateColumnData ) {
             ToggleMergingEvent tme = new ToggleMergingEventfalse );
             .fireEventtme );
         }
 
         //Update Column cell
         if ( bUpdateColumnDefinition ) {
             DecoratedGridCellValueAdaptor<? extends Comparable<?>> cell = .getCellorigColumn );
             UpdateColumnDefinitionEvent updateColumnDefinition = new UpdateColumnDefinitionEventcell,
                                                                                                   iCol );
             .fireEventupdateColumnDefinition );
         }
 
         //Update Column data
         if ( bUpdateColumnData ) {
             UpdateColumnDataEvent updateColumnData = new UpdateColumnDataEventiCol,
                                                                                 getColumnDataorigColumn ) );
             .fireEventupdateColumnData );
         }
 
     }

    
Update an ActionWorkItemSetFieldCol52 column

Parameters:
origColumn The existing column in the grid
editColumn A copy of the original column containing the modified values
 
     public void updateColumnfinal ActionWorkItemSetFieldCol52 origColumn,
                               final ActionWorkItemSetFieldCol52 editColumn ) {
         if ( origColumn == null ) {
             throw new IllegalArgumentException"origColumn cannot be null" );
         }
         if ( editColumn == null ) {
             throw new IllegalArgumentException"editColumn cannot be null" );
         }
 
         boolean bUpdateColumnDefinition = false;
         int iCol = .getExpandedColumns().indexOforigColumn );
 
         // Update column's visibility
         if ( origColumn.isHideColumn() != editColumn.isHideColumn() ) {
             setColumnVisibilityorigColumn,
                                  !editColumn.isHideColumn() );
         }
 
         // Change in column's binding forces an update and redraw if FactField
         // is different; otherwise only need to update and redraw if the
         // FieldType has changed
         if ( !isEqualOrNullorigColumn.getBoundName(),
                              editColumn.getBoundName() ) ) {
             if ( !isEqualOrNullorigColumn.getFactField(),
                                  editColumn.getFactField() ) ) {
                 bUpdateColumnDefinition = true;
             }
 
         } else if ( !isEqualOrNullorigColumn.getFactField(),
                                     editColumn.getFactField() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         // Update column header in Header Widget
         if ( !origColumn.getHeader().equalseditColumn.getHeader() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         //Log change to column definition
         if ( bUpdateColumnDefinition ) {
             .getAuditLog().addnew UpdateColumnAuditLogEntry.getName(),
                                                                     origColumn,
                                                                     editColumn ) );
         }
 
         // Copy new values into original column definition
         populateModelColumnorigColumn,
                              editColumn );
 
         //Update Column cell
         if ( bUpdateColumnDefinition ) {
             DecoratedGridCellValueAdaptor<? extends Comparable<?>> cell = .getCellorigColumn );
             UpdateColumnDefinitionEvent updateColumnDefinition = new UpdateColumnDefinitionEventcell,
                                                                                                   iCol );
             .fireEventupdateColumnDefinition );
         }
 
     }

    
Update an ActionRetractFactCol52 column

Parameters:
origColumn The existing column in the grid
editColumn A copy of the original column containing the modified values
 
     public void updateColumnfinal ActionRetractFactCol52 origColumn,
                               final ActionRetractFactCol52 editColumn ) {
         if ( origColumn == null ) {
             throw new IllegalArgumentException"origColumn cannot be null" );
         }
         if ( editColumn == null ) {
             throw new IllegalArgumentException"editColumn cannot be null" );
         }
 
         boolean bUpdateColumnDefinition = false;
         int iCol = .getExpandedColumns().indexOforigColumn );
 
         // Update column's visibility
         if ( origColumn.isHideColumn() != editColumn.isHideColumn() ) {
             setColumnVisibilityorigColumn,
                                  !editColumn.isHideColumn() );
         }
 
         // Update column header in Header Widget
         if ( !origColumn.getHeader().equalseditColumn.getHeader() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         // Update LimitedEntryValue in Header Widget
         if ( origColumn instanceof LimitedEntryCol && editColumn instanceof LimitedEntryCol ) {
             LimitedEntryCol lecOrig = (LimitedEntryColorigColumn;
             LimitedEntryCol lecEditing = (LimitedEntryColeditColumn;
             if ( !lecOrig.getValue().equalslecEditing.getValue() ) ) {
                 bUpdateColumnDefinition = true;
             }
         }
 
         //Log change to column definition
         if ( bUpdateColumnDefinition ) {
             .getAuditLog().addnew UpdateColumnAuditLogEntry.getName(),
                                                                     origColumn,
                                                                     editColumn ) );
         }
 
         // Copy new values into original column definition
         populateModelColumnorigColumn,
                              editColumn );
 
         //Update Column cell
         if ( bUpdateColumnDefinition ) {
             DecoratedGridCellValueAdaptor<? extends Comparable<?>> cell = .getCellorigColumn );
             UpdateColumnDefinitionEvent updateColumnDefinition = new UpdateColumnDefinitionEventcell,
                                                                                                   iCol );
             .fireEventupdateColumnDefinition );
         }
 
     }

    
Update an ActionWorkItemCol52 column

Parameters:
origColumn The existing column in the grid
editColumn A copy of the original column containing the modified values
 
     public void updateColumnfinal ActionWorkItemCol52 origColumn,
                               final ActionWorkItemCol52 editColumn ) {
         if ( origColumn == null ) {
             throw new IllegalArgumentException"origColumn cannot be null" );
         }
         if ( editColumn == null ) {
             throw new IllegalArgumentException"editColumn cannot be null" );
         }
 
         boolean bUpdateColumnDefinition = false;
         int iCol = .getExpandedColumns().indexOforigColumn );
 
         // Update column's visibility
         if ( origColumn.isHideColumn() != editColumn.isHideColumn() ) {
             setColumnVisibilityorigColumn,
                                  !editColumn.isHideColumn() );
         }
 
         // Update column header in Header Widget
         if ( !origColumn.getHeader().equalseditColumn.getHeader() ) ) {
             bUpdateColumnDefinition = true;
         }
 
         //Log change to column definition
         if ( bUpdateColumnDefinition ) {
             .getAuditLog().addnew UpdateColumnAuditLogEntry.getName(),
                                                                     origColumn,
                                                                     editColumn ) );
         }
 
         // Copy new values into original column definition
         populateModelColumnorigColumn,
                              editColumn );
 
         //Update Column cell
         if ( bUpdateColumnDefinition ) {
             DecoratedGridCellValueAdaptor<? extends Comparable<?>> cell = .getCellorigColumn );
             UpdateColumnDefinitionEvent updateColumnDefinition = new UpdateColumnDefinitionEventcell,
                                                                                                   iCol );
             .fireEventupdateColumnDefinition );
         }
 
     }

    
Update a BRLActionColumn column

Parameters:
origColumn The existing column in the grid
editColumn A copy of the original column containing the modified values
 
     public void updateColumnfinal BRLActionColumn origColumn,
                               final BRLActionColumn editColumn ) {
         if ( origColumn == null ) {
             throw new IllegalArgumentException"origColumn cannot be null" );
         }
         if ( editColumn == null ) {
            throw new IllegalArgumentException"editColumn cannot be null" );
        }
        boolean bUpdateColumnDefinition = false;
        // Update column header in Header Widget
        if ( !origColumn.getHeader().equalseditColumn.getHeader() ) ) {
            bUpdateColumnDefinition = true;
        }
        //Copy existing data for re-use if applicable
        Map<StringList<DTCellValue52>> origColumnVariables = new HashMap<StringList<DTCellValue52>>();
        for ( BRLActionVariableColumn variable : origColumn.getChildColumns() ) {
            int iCol = .getExpandedColumns().indexOfvariable );
            List<DTCellValue52columnData = new ArrayList<DTCellValue52>();
            String key = getUpdateBRLActionColumnKeyvariable );
            for ( List<DTCellValue52row : .getData() ) {
                columnData.addrow.getiCol ) );
            }
            origColumnVariables.putkey,
                                     columnData );
        }
        //Insert new variable columns setting data from that above, if applicable. Column visibility is handled here too.
        .getActionCols().add.getActionCols().indexOforigColumn ),
                                   editColumn );
        final int index = .getExpandedColumns().indexOfeditColumn.getChildColumns().get( 0 ) );
        final List<BaseColumncolumns = new ArrayList<BaseColumn>();
        final List<List<DTCellValue52>> columnsData = new ArrayList<List<DTCellValue52>>();
        columns.addAlleditColumn.getChildColumns() );
        for ( BaseColumn column : columns ) {
            final BRLActionVariableColumn variable = (BRLActionVariableColumncolumn;
            String key = getUpdateBRLActionColumnKeyvariable );
            List<DTCellValue52columnData = origColumnVariables.getkey );
            if ( columnData == null ) {
                columnData = .makeColumnDatavariable );
            }
            columnsData.addcolumnData );
        }
                                                                                 columnsData,
                                                                                 index,
                                                                                 true );
        .fireEventdce );