public MonitoringTableModel(MonitoringTable monitoringTable,
      OrderTableModel orderTableModel, AssemblyUsersModel assemblyUsersModel) {
    this.monitoringTable = monitoringTable;
    this.orderTableModel = orderTableModel;
    this.assemblyUsersModel = assemblyUsersModel;
    initializeFilter();
    initializeTableViewer();
    initializeButtons();
    tableViewer.setInput(data);
    for (int index = 0; index < table.getColumnCount(); index++) {
      table.getColumn(index).pack();
      if (!assemblyUsersModel.getLoggedUser().isAdmin()
          && (index == MonitoringTableLabelProvider.EFFECTIVITY_COLUMN_IND
              || index == MonitoringTableLabelProvider.EFFICIENCY_COLUMN_IND
              || index == MonitoringTableLabelProvider.SIGN_COLUMN_IND)) {
        table.getColumn(index).setWidth(0);
        table.getColumn(index).setResizable(false);
      }
    }
    table.pack();
    for (int index = 0; index < table.getColumnCount(); index++) {
      if (table.getColumn(index).getResizable()) {
        Label dummyLabel = new Label(table.getParent(), SWT.BORDER);
        dummyLabel.setText(table.getColumn(index).getText());
        int labelWidth = dummyLabel.computeSize(0, 0).x + 8;
        dummyLabel.dispose();
        if (table.getColumn(index).getWidth() < labelWidth) {
          table.getColumn(index).setWidth(labelWidth);
        }
      }
    }
  }