class ColumnFunctionEditor implements IsWidget {

    public void init(DataSetMetadata metadata,
                     GroupFunction groupFunction,
                     ColumnType targetType,
                     String columnTitle,
                     boolean functionsEnabled,
                     boolean canDelete) {

        this.groupFunction = groupFunction;
        this.targetType = targetType;
        this.metadata = metadata;
        this.functionsEnabled = functionsEnabled;

        columnDetailsEditor.init(metadata, this.groupFunction);
        view.setColumnSelectorTitle(columnTitle);
        view.setDeleteOptionEnabled(canDelete);
        initColumnListBox();

        if (functionsEnabled && (targetType == null || isColumnNumeric())) {
            view.setFunctionSelectorEnabled(true);
            initFunctionListBox();
        } else {
            view.setFunctionSelectorEnabled(false);
        }
    }

    @Inject public  ColumnFunctionEditor(View view,
                                ColumnDetailsEditor columnDetailsEditor,
                                Event<GroupFunctionChangedEvent> changeEvent,
                                Event<GroupFunctionDeletedEvent> deleteEvent);

}