private ColumnModel buildColumnModel() {
    initExpander();
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig name = buildColumnConfig(DeployedComponent.NAME, I18N.DISPLAY.name(), 225);
    name.setMenuDisabled(true);
    name.setSortable(true);

    ColumnConfig version =
        buildColumnConfig(DeployedComponent.VERSION, I18N.DISPLAY.versionColumnHeader(), 100);
    version.setSortable(false);
    version.setMenuDisabled(true);

    ColumnConfig loc = buildColumnConfig(DeployedComponent.LOCATION, I18N.DISPLAY.path(), 250);
    loc.setMenuDisabled(true);
    loc.setSortable(false);

    configs.add(expander);
    configs.add(name);
    configs.add(version);
    configs.add(loc);

    return new ColumnModel(configs);
  }
  /*
   * (non-Javadoc)
   *
   * @see it.geosolutions.geofence.gui.client.widget.GEOFENCEGridWidget#
   * prepareColumnModel()
   */
  @Override
  public ColumnModel prepareColumnModel() {
    List<ColumnConfig> configs = new ArrayList<ColumnConfig>();

    ColumnConfig rulePriorityColumn = new ColumnConfig();
    rulePriorityColumn.setId(BeanKeyValue.PRIORITY.getValue());
    rulePriorityColumn.setWidth(COLUMN_PRIORITY_WIDTH);
    rulePriorityColumn.setMenuDisabled(false);
    rulePriorityColumn.setSortable(true);
    configs.add(rulePriorityColumn);

    ColumnConfig ruleUserColumn = new ColumnConfig();
    ruleUserColumn.setId(BeanKeyValue.USER.getValue());
    ruleUserColumn.setHeader("User");
    ruleUserColumn.setWidth(COLUMN_USER_WIDTH);
    ruleUserColumn.setRenderer(new UserRenderer());
    ruleUserColumn.setMenuDisabled(true);
    ruleUserColumn.setSortable(false);
    configs.add(ruleUserColumn);

    ColumnConfig ruleProfileColumn = new ColumnConfig();
    ruleProfileColumn.setId(BeanKeyValue.PROFILE.getValue());
    ruleProfileColumn.setHeader("Group");
    ruleProfileColumn.setWidth(COLUMN_GROUP_WIDTH);
    ruleProfileColumn.setRenderer(new GroupRenderer());
    ruleProfileColumn.setMenuDisabled(true);
    ruleProfileColumn.setSortable(false);
    configs.add(ruleProfileColumn);

    ColumnConfig ruleInstanceColumn = new ColumnConfig();
    ruleInstanceColumn.setId(BeanKeyValue.INSTANCE.getValue());
    ruleInstanceColumn.setHeader("Instance");
    ruleInstanceColumn.setWidth(COLUMN_INSTANCE_WIDTH);
    ruleInstanceColumn.setRenderer(new InstanceRenderer());
    ruleInstanceColumn.setMenuDisabled(true);
    ruleInstanceColumn.setSortable(false);
    configs.add(ruleInstanceColumn);

    ColumnConfig ipcfg = new ColumnConfig();
    ipcfg.setId(BeanKeyValue.SOURCE_IP_RANGE.getValue());
    ipcfg.setHeader("Src IP addr");
    ipcfg.setWidth(COLUMN_IPRANGE_WIDTH);
    ipcfg.setRenderer(new IPRangeRenderer());
    ipcfg.setMenuDisabled(true);
    ipcfg.setSortable(false);
    configs.add(ipcfg);

    ColumnConfig ruleServiceColumn = new ColumnConfig();
    ruleServiceColumn.setId(BeanKeyValue.SERVICE.getValue());
    ruleServiceColumn.setHeader("Service");
    ruleServiceColumn.setWidth(COLUMN_SERVICE_WIDTH);
    ruleServiceColumn.setRenderer(new ServiceRenderer());
    ruleServiceColumn.setMenuDisabled(true);
    ruleServiceColumn.setSortable(false);
    configs.add(ruleServiceColumn);

    ColumnConfig ruleRequestColumn = new ColumnConfig();
    ruleRequestColumn.setId(BeanKeyValue.REQUEST.getValue());
    ruleRequestColumn.setHeader("Request");
    ruleRequestColumn.setWidth(COLUMN_REQUEST_WIDTH);
    ruleRequestColumn.setRenderer(new RequestRenderer());
    ruleRequestColumn.setMenuDisabled(true);
    ruleRequestColumn.setSortable(false);
    configs.add(ruleRequestColumn);

    ColumnConfig ruleWorkspacesColumn = new ColumnConfig();
    ruleWorkspacesColumn.setId(BeanKeyValue.WORKSPACE.getValue());
    ruleWorkspacesColumn.setHeader("Workspace");
    ruleWorkspacesColumn.setWidth(COLUMN_WORKSPACE_WIDTH);
    ruleWorkspacesColumn.setRenderer(new WorkspaceRenderer());
    ruleWorkspacesColumn.setMenuDisabled(true);
    ruleWorkspacesColumn.setSortable(false);
    configs.add(ruleWorkspacesColumn);

    ColumnConfig ruleLayersColumn = new ColumnConfig();
    ruleLayersColumn.setId(BeanKeyValue.LAYER.getValue());
    ruleLayersColumn.setHeader("Layer");
    ruleLayersColumn.setWidth(COLUMN_LAYER_WIDTH);
    ruleLayersColumn.setRenderer(new LayerRenderer());
    ruleLayersColumn.setMenuDisabled(true);
    ruleLayersColumn.setSortable(false);
    configs.add(ruleLayersColumn);

    ColumnConfig ruleGrantsColumn = new ColumnConfig();
    ruleGrantsColumn.setId(BeanKeyValue.GRANT.getValue());
    ruleGrantsColumn.setHeader("Grant");
    ruleGrantsColumn.setWidth(COLUMN_GRANT_WIDTH);
    ruleGrantsColumn.setRenderer(this.createGrantsCustomField());
    ruleGrantsColumn.setMenuDisabled(true);
    ruleGrantsColumn.setSortable(false);
    configs.add(ruleGrantsColumn);

    ColumnConfig editRuleColumn = new ColumnConfig();
    editRuleColumn.setId("editRuleDetails");
    editRuleColumn.setWidth(COLUMN_EDIT_RULE_WIDTH);
    editRuleColumn.setRenderer(this.editRuleButton());
    editRuleColumn.setMenuDisabled(true);
    editRuleColumn.setSortable(false);
    configs.add(editRuleColumn);

    ColumnConfig detailsActionColumn = new ColumnConfig();
    detailsActionColumn.setId("ruleDetails");
    detailsActionColumn.setWidth(COLUMN_RULE_DETAILS_WIDTH);
    detailsActionColumn.setRenderer(this.createRuleDetailsButton());
    detailsActionColumn.setMenuDisabled(true);
    detailsActionColumn.setSortable(false);
    configs.add(detailsActionColumn);

    ColumnConfig removeActionColumn = new ColumnConfig();
    removeActionColumn.setId("removeRule");
    removeActionColumn.setWidth(COLUMN_REMOVE_RULE_WIDTH);
    removeActionColumn.setRenderer(this.createRuleDeleteButton());
    removeActionColumn.setMenuDisabled(true);
    removeActionColumn.setSortable(false);
    configs.add(removeActionColumn);

    ColumnConfig addActionColumn = new ColumnConfig();
    addActionColumn.setId("addRule");
    addActionColumn.setWidth(COLUMN_ADD_RULE_WIDTH);
    addActionColumn.setRenderer(this.createRuleAddButton());
    addActionColumn.setMenuDisabled(true);
    addActionColumn.setSortable(false);
    configs.add(addActionColumn);

    ColumnConfig priorityUpActionColumn = new ColumnConfig();
    priorityUpActionColumn.setId("rulePriorityUp");
    priorityUpActionColumn.setWidth(COLUMN_UP_RULE_WIDTH);
    priorityUpActionColumn.setRenderer(this.createRulePriorityUpButton());
    priorityUpActionColumn.setMenuDisabled(true);
    priorityUpActionColumn.setSortable(false);
    configs.add(priorityUpActionColumn);

    ColumnConfig priorityDownActionColumn = new ColumnConfig();
    priorityDownActionColumn.setId("rulePriorityDwn");
    priorityDownActionColumn.setWidth(COLUMN_DOWN_RULE_WIDTH);
    priorityDownActionColumn.setRenderer(this.createRulePriorityDownButton());
    priorityDownActionColumn.setMenuDisabled(true);
    priorityDownActionColumn.setSortable(false);
    configs.add(priorityDownActionColumn);

    return new ColumnModel(configs);
  }