class DataTablesModel {

    private final AvailableColumnsModel nodeAvailableColumnsModel;
    private final AvailableColumnsModel edgeAvailableColumnsModel;
    private final GraphModel graphModel;

    public DataTablesModel(Workspace workspace) {
        graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(workspace);

        nodeAvailableColumnsModel = new AvailableColumnsModel(graphModel.getNodeTable());
        edgeAvailableColumnsModel = new AvailableColumnsModel(graphModel.getEdgeTable());


        //Try to make available all columns at start by default:
        nodeAvailableColumnsModel.syncronizeTableColumns();
        edgeAvailableColumnsModel.syncronizeTableColumns();
    }

    public AvailableColumnsModel getEdgeAvailableColumnsModel() {
        return edgeAvailableColumnsModel;
    }

    public AvailableColumnsModel getNodeAvailableColumnsModel() {
        return nodeAvailableColumnsModel;
    }

    private AvailableColumnsModel getTableAvailableColumnsModel(Table table) {<FILL_FUNCTION_BODY>}
}

        if (graphModel.getNodeTable() == table) {
            return nodeAvailableColumnsModel;
        } else if (graphModel.getEdgeTable() == table) {
            return edgeAvailableColumnsModel;
        } else {
            return null;//Graph table or other table, not supported in data laboratory for now.
        }
    
<no_super_class>